I have a simple webapp that makes use of only the TX Apsect libraries for demarcation.

I am using both the Annotation compiler and the AOPC compilier, packaging up the 
results in a WAR, and deploying to a JBoss 4.0 server. I have upgraded to FINAL code.

My issues is that on startup, or first deployment of my WAR file, my code, and the TX 
interceptors work great. However, once I redploy my WAR file, I get a 
NullPointerException in my original method signature (which is now the new interceptor 
method).

So, if I have a method called saveOrganization() that has been intercepted, after a 
redployment, I will get the following stacktrace:


  | 2:34:39,168 ERROR [org.osn.jext.framework.util.RequestInterceptor:124] 
java.lang.NullPointerException
  |     at 
org.osn.homefront.app.service.HomefrontService.saveOrganization(HomefrontService.java)
  |     at org.osn.homefront.app.OrgSignUp2.submit(OrgSignUp2.java:559)
  |     at org.osn.homefront.app.OrgSignUp2.pageMain(OrgSignUp2.java:63)
  |     at org.osn.jext.framework.JSPPageContent.runPageMain(JSPPageContent.java:45)
  | 

As you can see, the line number is missing for where the NPE happens at, since it is 
the new instumented code.

For shits & giggles, I decompiled that method and here is the code:


  |     public void saveOrganization(Organization organization)
  |         throws PersistenceException, BusinessValidationException
  |     {
  |         if(((Advisor) (aop$classAdvisor$aop)).doesHaveAspects || _instanceAdvisor 
!= null && _instanceAdvisor.hasInstanceAspects)
  |         {
  |             org.jboss.aop.advice.Interceptor ainterceptor[] = 
aop$MethodInfo_saveOrganization5875559486684723374.interceptors;
  |             if(_instanceAdvisor != null)
  |                 ainterceptor = 
_instanceAdvisor.getInterceptors(aop$MethodInfo_saveOrganization5875559486684723374.interceptors);
  |             
HomefrontService_saveOrganization_5875559486684723374_OptimizedMethodInvocation 
homefrontservice_saveorganization_5875559486684723374_optimizedmethodinvocation = 
  | new 
HomefrontService_saveOrganization_5875559486684723374_OptimizedMethodInvocation(aop$MethodInfo_saveOrganization5875559486684723374,
 ainterceptor);
  |             
homefrontservice_saveorganization_5875559486684723374_optimizedmethodinvocation.arg0 = 
organization;
  |             
homefrontservice_saveorganization_5875559486684723374_optimizedmethodinvocation.setTargetObject(this);
  |             
homefrontservice_saveorganization_5875559486684723374_optimizedmethodinvocation.typedTargetObject
 = this;
  |             
homefrontservice_saveorganization_5875559486684723374_optimizedmethodinvocation.setAdvisor(aop$classAdvisor$aop);
  |             
homefrontservice_saveorganization_5875559486684723374_optimizedmethodinvocation.invokeNext();
  |         } else
  |         {
  |             
org$osn$homefront$app$service$HomefrontService$saveOrganization$aop(organization);
  |         }
  |     }
  | 

Now, looking at that, I am not sure exactly where the NPE would be happening at, but 
the first suspect to me is the aop$classAdvisor$aop variable, since it is static. I 
wonder if it is getting blown away on the redploy and not set back up properly, since 
the static constructor might not get ran again?

Thoughts?



View the original post : 
http://www.jboss.org/index.html?module=bb&op=viewtopic&p=3853927#3853927

Reply to the post : 
http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&p=3853927


-------------------------------------------------------
This SF.Net email is sponsored by:
Sybase ASE Linux Express Edition - download now for FREE
LinuxWorld Reader's Choice Award Winner for best database on Linux.
http://ads.osdn.com/?ad_id=5588&alloc_id=12065&op=click
_______________________________________________
JBoss-Development mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/jboss-development

Reply via email to