2 * Test case for PR#625.
4 * Submitted by Feng Qian <fqian@sable.mcgill.ca>.
5 * Different implementation by Edouard G. Parmelan <egp@free.fr>
7 public class NullInvoke {
8 public static class InvokeSpecial {
9 private String getName() {
10 return "InvokeSpecial";
13 public void printName(InvokeSpecial obj) {
14 String s = obj.getName(); // invokespecial with null
15 System.out.println(s);
19 public static class InvokeVirtual {
20 public String getName() {
21 return "InvokeVirtual";
24 public void printName(InvokeVirtual obj) {
25 String s = obj.getName(); // invokevirtual with null
26 System.out.println(s);
30 public static class InvokeFinalVirtual {
31 public final String getName() {
32 return "InvokeFinalVirtual";
35 public void printName(final InvokeFinalVirtual obj) {
36 String s = obj.getName(); // invokespecial with null
37 System.out.println(s);
41 public static interface Interface {
42 public String getName();
45 public static class InvokeInterface
48 public String getName() {
49 return "InvokeInterface";
52 public void printName(Interface obj) {
53 String s = obj.getName(); // invokeinterface with null
54 System.out.println(s);
58 public static void main (String[] args) {
60 new InvokeSpecial().printName(null);
61 System.out.println ("FAIL");
63 catch (NullPointerException npe) {
64 System.out.println ("PASS");
68 new InvokeVirtual().printName(null);
69 System.out.println ("FAIL");
71 catch (NullPointerException npe) {
72 System.out.println ("PASS");
76 new InvokeFinalVirtual().printName(null);
77 System.out.println ("FAIL");
79 catch (NullPointerException npe) {
80 System.out.println ("PASS");
84 new InvokeInterface().printName(null);
85 System.out.println ("FAIL");
87 catch (NullPointerException npe) {
88 System.out.println ("PASS");