I thought Java had short circuit evaluation, yet this line is still throwing a null pointer exception:
if( (perfectAgent != null) && (perfectAgent.getAddress().equals(entry.getKey())) ) {
In this case perfectAgent
is null
, so I just want the whole expression to return false
, but my app is still crashing on this line with a NullPointerException.
EDIT, general response:
Since perfectAgent
is null
, nothing to the right of the &&
should be executed, as it is impossible for the expression to be true. More to the point, it is impossible to execute perfectAgent.getAddress()
since perfectAgent
does not contain a valid reference (it being null and all). I'm trying to use short circuit evaluation to not have to check for null in a seperate statement as that makes the logic more sloppy.
EDIT 2 (or, I'm an idiot): Yeah, like many things in life you figure out the answer right after announcing to the world that you're a moron. In this case, I had turned off Eclipse's autobuild while doing something else and not turned it back on, so I was debugging class files that didn't match up with my source.
perfectAgent
isnull
then indeed the rest of that line shouldn't be executed. Don't see any problem with it as it is now :/ – RevileprevAccountName
isnull
:if ((prevAccountName == null) | !prevAccountName.equals(accountName))) { ... }
Almost posted it as a question. – Bigg