[jboss-user] [JBoss AOP] - unable to resolve an AOP IllegalArgumentException

laurentSalse do-not-reply at jboss.com
Wed May 30 07:10:41 EDT 2007


Hi,

I work on eclipse. I've configure an interceptor in my program. In a following time, I make the war of the project and I execute the run.bat file of the Jboss server. I have these Errors at runtime.

Caused by: java.lang.IllegalArgumentException
	at sun.reflect.UnsafeStaticObjectFieldAccessorImpl.set(UnsafeStaticObjectFieldAccessorImpl.java:61)
	at java.lang.reflect.Field.set(Field.java:656)
	at org.jboss.aop.ClassAdvisor.initializeMethodChain(ClassAdvisor.java:464)
	at org.jboss.aop.ClassAdvisor.createInterceptorChains(ClassAdvisor.java:594)
	at org.jboss.aop.ClassAdvisor.access$300(ClassAdvisor.java:82)
	at org.jboss.aop.ClassAdvisor$1.run(ClassAdvisor.java:299)
	at java.security.AccessController.doPrivileged(Native Method)
	at org.jboss.aop.ClassAdvisor.attachClass(ClassAdvisor.java:271)
	at org.jboss.aop.AspectManager.initialiseClassAdvisor(AspectManager.java:591)
	at org.jboss.aop.AspectManager.getAdvisor(AspectManager.java:579)
	at com.fitnetapplication.bilan.service.BilanCongesServiceImpl.(BilanCongesServiceImpl.java)

Caused by: org.apache.jasper.JasperException

So, I went to the UnsafeStaticObjectFieldAccessorImpl class source (.java) and looked at the line 61.
Here is the code :
 

protected TLongObjectHashMap initializeMethodChain()
   {
      TLongObjectHashMap newInterceptors = new TLongObjectHashMap();
      long[] keys = advisedMethods.keys();
      for (int i = 0; i < keys.length; i++)
      {
         // Keep compatible with AOP 1.3.x until AOP 2.0 is FINAL 
         MethodInfo info = new MethodInfo();
         Method amethod = (Method) advisedMethods.get(keys);
         info.setAdvisedMethod(amethod);
         Method umethod = (Method) unadvisedMethods.get(keys);

         if (umethod == null) umethod = amethod;
         info.setUnadvisedMethod(umethod);
         info.setHash(keys);
         info.setAdvisor(this);
         newInterceptors.put(keys, info);
         try
         {
            Field infoField = clazz.getDeclaredField(MethodExecutionTransformer.getMethodInfoFieldName(amethod.getName(), keys));
            infoField.setAccessible(true);
            infoField.set(null, new WeakReference(info));
         }
         catch (NoSuchFieldException e)
         {
            // ignore, method may not be advised.
         }
         catch (IllegalAccessException e)
         {
            throw new RuntimeException(e);  //To change body of catch statement use Options | File Templates.
         }
      }
      return newInterceptors;
   }

It's the last line inside the try block which make the IllegalArgumentException.



I use the jboss server -4.0.5.GA and Jdk 1.5.0_06. I disabled the AOP builder from my java project in eclipse, I cleaned the project, and deployed it using with EnableLoadTimeWeaving= true. I have followed each advice in the reference tutorial and the user'guide.

I stay on these errors and I don't arrive resolve it. 

Could I have some help please ?

Thank you 

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

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



More information about the jboss-user mailing list