I just tested that code under JDK 1.5.0_16-b06-275 on Tiger and it works for
me. Incidentally, my rule of thumb is "if you think it's a VM, you're wrong.
it's your fault." This rule of thumb has never failed me.
In a sample java file:
public class Test {
public static void main(String[] args) {
Boolean a = null;
if(a != null)
System.out.println("s");
else
System.out.println("n");
}
}
emerald:~ local$ java -fullversion
java full version "1.5.0_16-b06-275"
emerald:~ local$ javac Test.java
emerald:~ local$ java Test
n
javac that and run it and see if that fails for you.
ms
On Nov 21, 2009, at 7:55 PM, Shravan Kumar. M wrote:
> Hello Mike,
>
> Its the same code I have showed you (except that I changed variable names for
> simplicity), and there is no line of code that is missing. Where "a" is the
> EO property and when I check for it ( if(a != null) JRE throws NPE and when
> I check for if(a == null), JRE enjoys ), its throwing exception as stated. I
> believe this is a bug with JRE, and it seems to be fixed as per David's
> testing in later versions of JRE.
>
> I think fix would be JRE shouldn't have unboxed it if its null... and they
> seems to have realized this mistake in later versions of JRE... But its
> wondering how a null & not null check differs in this world and they are not
> same from JRE perspective!!! If its an error it should have thrown error
> always...
>
> Thank You,
> Shravan Kumar. M
>
> From: Mike Schrag <[email protected]>
> To: Shravan Kumar. M <[email protected]>
> Cc: WO Dev Group <[email protected]>
> Sent: Sat, November 21, 2009 9:26:57 PM
> Subject: Re: [OT] Weird Boolean/ Wrapper class bug
>
> You're not pasting the real code, I don't think. I suspect you're just
> getting screwed by autoboxing in whatever code you're not showing. If you
> have:
>
> Boolean a = null;
> boolean b = a;
>
> That will result in a NPE as auto-unboxing attempts to unbox a into a
> boolean, which throws a NPE. Somewhere in the code you didn't include is an
> unbox into a boolean (little b) of your null Boolean.
>
> So, for instance:
>
> Boolean a = null;
> if (a) {
> }
>
> will NPE. Look more closely at the exact code, specifically the line of code
> that actually failing, and make sure you're not getting an unbox.
>
> ms
>
> On Nov 21, 2009, at 10:23 AM, Shravan Kumar. M wrote:
>
>> Hello Group,
>>
>> Boolean a = null;
>> if(a != null)
>> System.out.println("s");
>> else
>> System.out.println("n");
>>
>> ----------
>> Above code block raises NullPointerException, where as below one runs
>> successfully!!! Same is the case with any wrapper class (Integer, Long, ...).
>> *Its wondering what it makes difference in checking (a != null) and (a ==
>> null)? Its just an Object check rt!*
>>
>> Exact exception: java.lang.NullPointerException at booleanValue()
>> ----------
>>
>> Boolean a = null;
>> if(a == null)
>> System.out.println("s");
>> else
>> System.out.println("n");
>>
>> Thank You,
>> Shravan Kumar. M
>> --------------------------------
>>
>> _______________________________________________
>> Do not post admin requests to the list. They will be ignored.
>> Webobjects-dev mailing list ([email protected])
>> Help/Unsubscribe/Update your Subscription:
>> http://lists.apple.com/mailman/options/webobjects-dev/mschrag%40mdimension.com
>>
>> This email sent to [email protected]
>
>
>
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list ([email protected])
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com
This email sent to [email protected]