1 // PR 83
2 
3 /*
4  * test that caught null pointers exceptions in finalizers work correctly
5  * and that local variables are accessible in null pointer exception handlers.
6  */
7 import java.io.*;
8 
9 public class pr83 {
10 
11     static String s;
12 
main(String[] args)13     public static void main(String[] args) {
14 	System.out.println(tryfinally() + s);
15     }
16 
tryfinally()17     public static String tryfinally() {
18 	String yuck = null;
19 	String local_s = null;
20 
21 	try {
22 	    return "This is ";
23 	} finally {
24 	    try {
25 		local_s = "Perfect";
26 		/* trigger null pointer exception */
27 		String x = yuck.toLowerCase();
28 	    } catch (Exception _) {
29 		/*
30 		 * when the null pointer exception is caught, we must still
31 		 * be able to access local_s.
32 		 * Our return address for the finally clause must also still
33 		 * be intact.
34 		 */
35 		s = local_s;
36 	    }
37 	}
38     }
39 }
40