I think this is a compiler bug.
javap gives next code:
...........
 26:  getfield        #2; //Field subject:Ljavax/security/auth/Subject;
 29:  ifnonnull       42
 32:  aload_2
 33:  getfield        #2; //Field subject:Ljavax/security/auth/Subject;
 36:  ifnonnull       91
 39:  goto    87
 42:  aload_0
 43:  getfield        #2; //Field subject:Ljavax/security/auth/Subject;
 46:  aload_2
 47:  getfield        #2; //Field subject:Ljavax/security/auth/Subject;
 50:  invokevirtual   #8; //Method
javax/security/auth/Subject.equals:(Ljava/lang/Object;)Z
 53:  ifeq    73         <---------------------
if(subject.equals(o.subject))
 56:  aload_0
 57:  getfield        #3; //Field
cri:Ljavax/resource/spi/ConnectionRequestInfo;
 60:  ifnonnull       73
 63:  aload_2
 64:  getfield        #3; //Field
cri:Ljavax/resource/spi/ConnectionRequestInfo;
 67:  ifnonnull       91
 70:  goto    87
 73:  aload_0            <----------------------   
 74:  getfield        #3; //Field
cri:Ljavax/resource/spi/ConnectionRequestInfo;
 77:  aload_2
 78:  getfield        #3; //Field
cri:Ljavax/resource/spi/ConnectionRequestInfo;
 81:  invokevirtual   #9; //Method
java/lang/Object.equals:(Ljava/lang/Object;)Z
 84:  ifeq    91
 87:  iconst_1
 88:  goto    92
 91:  iconst_0
 92:  ireturn

The result is the following construction

if(subject.equals(o.subject)){
     cri.equals(o.cri);
}



djencks wrote:
> 
> I opened GERONIMO-4639 and fixed this in trunk and branches 2.1
> 
> I couldn't understand the nested iff statements too well so I just  
> replaced it with what idea generates for equals :-)
> 
> This is a component, not part of geronimo itself.  We'll need to push  
> a release of at least the 2.1 branch.
> 
> thanks
> david jencks
> 



-- 
View this message in context: 
http://www.nabble.com/NullPointerException-MultiPoolConnectionInterceptor%24SubjectCRIKey.equals-tp23634940s134p23648828.html
Sent from the Apache Geronimo - Users mailing list archive at Nabble.com.

Reply via email to