JDK-4081023 : Class.isInstance() returns true while null instanceof X is always false
  • Type: Bug
  • Component: core-libs
  • Sub-Component: java.lang:reflect
  • Affected Version: 1.2.0
  • Priority: P3
  • Status: Closed
  • Resolution: Duplicate
  • OS: windows_nt
  • CPU: x86
  • Submitted: 1997-09-23
  • Updated: 2012-09-28
  • Resolved: 1997-10-01
Related Reports
Duplicate :  
Description

Name: sg39081			Date: 09/23/97


Possible regression...

// This program should print out
//
// - instanceof
// - isInstance
//
// as it does under jdk 114. Instead it prints
//
// - instanceof
// + isInstance

public class testinstance {

  public static void main(String[] argv) throws Exception {

    if (null instanceof String) {
      System.out.println("+ instanceof");
    } else {
      System.out.println("- instanceof");
    }

    if (Class.forName("java.lang.String").isInstance(null)) {
      System.out.println("+ isInstance");
    } else {
      System.out.println("- isInstance");
    }
  }
}
======================================================================

Comments
WORK AROUND Name: sg39081 Date: 09/23/97 Check for null before using this method. ======================================================================
11-06-2004

EVALUATION Since the native method in java.lang.Class is now implemented in terms of JNI, this bug is being caused by the bug in JNI -- 4074494. anand.palaniswamy@Eng 1997-10-01
01-10-1997