[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
[aspectj-users] NPE in LTW with aspectJ 1.5.2a
|
Hi all:
I´m trying to use LTW to integrate a debugging aspect into my application
using:
Tomcat 5.5
java version "1.5.0_06"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_06-b05)
Java HotSpot(TM) Client VM (build 1.5.0_06-b05, mixed mode)
And AspectJ 1.5.2a
I get the following error:
info weaving 'org/apache/catalina/storeconfig/WrapperListenerSF'
java.lang.NullPointerException
at
org.aspectj.weaver.bcel.BcelWeaver.weaveParentTypeMungers(BcelWeaver.
java:1367)
at
org.aspectj.weaver.bcel.BcelWeaver.weaveParentsFor(BcelWeaver.java:12
37)
at org.aspectj.weaver.bcel.BcelWeaver.weave(BcelWeaver.java:1072)
at
org.aspectj.weaver.tools.WeavingAdaptor.getWovenBytes(WeavingAdaptor.
java:284)
at
org.aspectj.weaver.tools.WeavingAdaptor.weaveClass(WeavingAdaptor.jav
a:212)
at org.aspectj.weaver.loadtime.Aj.preProcess(Aj.java:65)
at
org.aspectj.weaver.loadtime.ClassPreProcessorAgentAdapter.transform(C
lassPreProcessorAgentAdapter.java:55)
at
sun.instrument.TransformerManager.transform(TransformerManager.java:1
22)
at
sun.instrument.InstrumentationImpl.transform(InstrumentationImpl.java
:155)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:620)
at
java.security.SecureClassLoader.defineClass(SecureClassLoader.java:12
4)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:260)
at java.net.URLClassLoader.access$100(URLClassLoader.java:56)
at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:164)
at
org.apache.catalina.storeconfig.StoreFactoryRule.newInstance(StoreFac
toryRule.java:121)
at
org.apache.catalina.storeconfig.StoreFactoryRule.begin(StoreFactoryRu
le.java:87)
at
org.apache.tomcat.util.digester.Digester.startElement(Digester.java:1
275)
at
com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.startEle
ment(AbstractSAXParser.java:533)
at
com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImp
l.scanStartElement(XMLDocumentFragmentScannerImpl.java:878)
at
com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImp
l$FragmentContentDispatcher.dispatch(XMLDocumentFragmentScannerImpl.java:1693)
at
com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImp
l.scanDocument(XMLDocumentFragmentScannerImpl.java:368)
at
com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(X
ML11Configuration.java:834)
at
com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(X
ML11Configuration.java:764)
at
com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.
java:148)
at
com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(Ab
stractSAXParser.java:1242)
at org.apache.tomcat.util.digester.Digester.parse(Digester.java:1580)
at
org.apache.catalina.storeconfig.StoreLoader.load(StoreLoader.java:241
)
at
org.apache.catalina.storeconfig.StoreConfigLifecycleListener.createMB
ean(StoreConfigLifecycleListener.java:74)
at
org.apache.catalina.storeconfig.StoreConfigLifecycleListener.lifecycl
eEvent(StoreConfigLifecycleListener.java:57)
at
org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(Lifecycl
eSupport.java:119)
at
org.apache.catalina.core.StandardServer.start(StandardServer.java:705
)
at org.apache.catalina.startup.Catalina.start(Catalina.java:551)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
sorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:275)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
The aspect works fine when using Iajc instead LTW, this is the aspect i use:
package com.mundivia.aopmonitor;
import org.apache.log4j.Logger;
import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.Around;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Pointcut;
import com.jamonapi.Monitor;
import com.jamonapi.MonitorFactory;
@Aspect
public class QuiterMonitorAspect {
private static Monitor monitor;
private static Logger logger = Logger
.getLogger(QuiterMonitorAspect.class);
@Pointcut(" execution(* com.quiter..*(..))")
public void metodosQuiter(){
}
@Pointcut(" execution(*
pruebasmundivia.pool.implementaciones.AfinityCacheTiempoConexionConexionesDMSPoolSinTimer.*Conexion(..))")
public void metodosPool(){
}
@Pointcut(" execution(* asjava.uniobjects.*(..))")
public void metodosUniverse(){
}
@Pointcut(" execution(*
pruebasmundivia.pool.implementaciones.CommonsBasedConexionesDMSPool.*Conexion(..))")
public void metodosCommonsPool(){
}
@Pointcut(" execution(*
pruebasmundivia.pool.implementaciones.HashTableBasedAfinityCacheSinTimer.comprobarContenido(..))")
public void metodosCache(){
}
/*@Around("metodosQuiter()||metodosMundivia()")*/
@Around("metodosPool()")
public Object aspecto(ProceedingJoinPoint jp){
// monitor=MonitorFactory.start(jp.getSignature().toLongString());
Object devolver=null;
long t1=0,t2=0;
try {
t1=System.nanoTime();
devolver=jp.proceed();
t2=System.nanoTime();
} catch (Throwable e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
System.out.println(t2-t1);
// monitor.stop();
//logger.debug(monitor.toString());
// System.out.println(monitor);
}
return devolver;
}
// @Pointcut("execution (* *(..))")
// public void capaWeb(){
//
// }
//
// @Pointcut("execution(* *(..))")
// public void capaDao(){
//
// }
//
// @Pointcut("execution(* *(..))")
// public void capaModelo(){
//
// }
}
And my aop.xml file store in a jar placed in tomcat/common/lib
<aspectj>
<aspects>
<aspect name="com.mundivia.aopmonitor.QuiterMonitorAspect" />
<include within="com.mundivia.aopmonitor.QuiterMonitorAspect" />
</aspects>
<weaver options="-verbose">
<include within="asjava..*" />
</weaver>
</aspectj>
It seems i´m having this bug
https://bugs.eclipse.org/bugs/show_bug.cgi?id=151182
Can anyone confirm it?
Other cuestion, why is weaver trying to weave org.apache classes when i
have not include them in the weaver section?
I send zip file with the aspect and the aop.xml file just in case anyone
want to take a look
Thanks.
Attachment:
QuiterJamonMonitor.zip
Description: Zip archive