Details
-
Bug
-
Resolution: Unresolved
-
Major
-
None
-
None
-
None
-
None
Description
When looking up an entity bean, we get a proxy which implements equals() in a broken way:
Here's an example:
// Proxy NPE test:
InitialContext ctx = new InitialContext();
Manager m = (Manager)ctx.lookup("ManagerAction/local");
try {
if(m != null)
System.err.println("What bug ???");
} catch(NullPointerException e)
And the output:
ProxyUtils NPE bug detected.
java.lang.NullPointerException
at org.jboss.ejb3.ProxyUtils.handleCallLocally(ProxyUtils.java:156)
at org.jboss.ejb3.ProxyUtils.handleCallLocally(ProxyUtils.java:137)
at org.jboss.ejb3.stateful.StatefulLocalProxy.invoke(StatefulLocalProxy.java:92)
at $Proxy34.equals(Unknown Source)
at com.alligacom.nett.NetTransferAdminInterface.<init>(NetTransferAdminInterface.java:49)
at com.alligacom.nett.NetTransferAdminInterface.main(NetTransferAdminI nterface.java:87)
The incriminated line (156) in ProxyUtils is:
return new Boolean(ih.toString().equals(args[0].toString()));
and should be:
return new Boolean(args[0] == null ? false : ih.toString().equals(args[0].toString()));