-
Bug
-
Resolution: Not an Issue
-
P4
-
None
-
8u72
-
generic
-
generic
FULL PRODUCT VERSION :
java version "1.8.0_72"
Java(TM) SE Runtime Environment (build 1.8.0_72-b15)
Java HotSpot(TM) 64-Bit Server VM (build 25.72-b15, mixed mode)
ADDITIONAL OS VERSION INFORMATION :
Windows 10 64bit
A DESCRIPTION OF THE PROBLEM :
When calling "java.lang.reflect.Field.getBoolean" is misleading exception is thrown.
STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
Run the testcase
EXPECTED VERSUS ACTUAL BEHAVIOR :
EXPECTED -
IllegalArgumentException: object is not of class A
ACTUAL -
IllegalArgumentException: Can not set boolean field A.f to B
REPRODUCIBILITY :
This bug can be reproduced always.
---------- BEGIN SOURCE ----------
import java.lang.reflect.Field;
public class ReflectionTestCase
{
public static void main( String[] args )
throws Exception
{
Field field = A.class.getDeclaredField( "f" );
field.setAccessible( true );
field.getBoolean( new B() ); // java.lang.IllegalArgumentException: Can not set boolean field A.f to B
}
}
class A
{
boolean f;
}
class B
{}
---------- END SOURCE ----------
CUSTOMER SUBMITTED WORKAROUND :
Ignore the exception message.
java version "1.8.0_72"
Java(TM) SE Runtime Environment (build 1.8.0_72-b15)
Java HotSpot(TM) 64-Bit Server VM (build 25.72-b15, mixed mode)
ADDITIONAL OS VERSION INFORMATION :
Windows 10 64bit
A DESCRIPTION OF THE PROBLEM :
When calling "java.lang.reflect.Field.getBoolean" is misleading exception is thrown.
STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
Run the testcase
EXPECTED VERSUS ACTUAL BEHAVIOR :
EXPECTED -
IllegalArgumentException: object is not of class A
ACTUAL -
IllegalArgumentException: Can not set boolean field A.f to B
REPRODUCIBILITY :
This bug can be reproduced always.
---------- BEGIN SOURCE ----------
import java.lang.reflect.Field;
public class ReflectionTestCase
{
public static void main( String[] args )
throws Exception
{
Field field = A.class.getDeclaredField( "f" );
field.setAccessible( true );
field.getBoolean( new B() ); // java.lang.IllegalArgumentException: Can not set boolean field A.f to B
}
}
class A
{
boolean f;
}
class B
{}
---------- END SOURCE ----------
CUSTOMER SUBMITTED WORKAROUND :
Ignore the exception message.