Using TPTP with Spring AOP crashes JVM
Hi all
I need to profile a Spring-based unit test (AbstractTransactionalSpringContextTests). I've installed TPTP 4.4 on Eclipse 3.4 and now want to profile execution time. However, profiling seems to interfere with the Spring AOP. In the Spring context the bean
org.springframework.beans.factory.aspectj.Annotati onBeanConfigurerAspect
is loaded, the project uses the @Configurable and the @Transactional annotation. I can profile a simple junit TestCase, but profiling the Spring unit test results in a JVM crash
Code:
EXCEPTION_ACCESS_VIOLATION
Problematic frame:
# C [JIE.dll+0x2c399]
Java frames: (J=compiled Java code, j=interpreted, Vv=VM code)
j java.lang.ClassLoader.defineClass1(Ljava/lang/String;[BIILjava/security/ProtectionDomain;Ljava/lang/String;)Ljava/lang/Class;+0
j java.lang.ClassLoader.defineClass(Ljava/lang/String;[BIILjava/security/ProtectionDomain;)Ljava/lang/Class;+34
j java.security.SecureClassLoader.defineClass(Ljava/lang/String;[BIILjava/security/CodeSource;)Ljava/lang/Class;+27
j java.net.URLClassLoader.defineClass(Ljava/lang/String;Lsun/misc/Resource;)Ljava/lang/Class;+253
J java.net.URLClassLoader$1.run()Ljava/lang/Object;
v ~StubRoutines::call_stub
J java.security.AccessController.doPrivileged(Ljava/security/PrivilegedExceptionAction;Ljava/security/AccessControlContext;)Ljava/lang/Object;
J java.net.URLClassLoader.findClass(Ljava/lang/String;)Ljava/lang/Class;
J java.lang.ClassLoader.loadClass(Ljava/lang/String;Z)Ljava/lang/Class;
J sun.misc.Launcher$AppClassLoader.loadClass(Ljava/lang/String;Z)Ljava/lang/Class;
j java.lang.ClassLoader.loadClass(Ljava/lang/String;)Ljava/lang/Class;+3
j org.springframework.util.ClassUtils.forName(Ljava/lang/String;Ljava/lang/ClassLoader;)Ljava/lang/Class;+157
j org.springframework.beans.factory.support.AbstractBeanDefinition.resolveBeanClass(Ljava/lang/ClassLoader;)Ljava/lang/Class;+14
j org.springframework.beans.factory.support.AbstractBeanFactory.resolveBeanClass(Lorg/springframework/beans/factory/support/RootBeanDefinition;Ljava/lang/String;)Ljava/lang/Class;+17
j org.springframework.beans.factory.support.AbstractBeanFactory.isBeanClassMatch(Ljava/lang/String;Lorg/springframework/beans/factory/support/RootBeanDefinition;Ljava/lang/Class;)Z+3
j org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeanNamesForType(Ljava/lang/Class;ZZ)[Ljava/lang/String;+121
j org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(Lorg/springframework/beans/factory/config/ConfigurableListableBeanFactory;)V+63
j org.springframework.context.support.AbstractApplicationContext.refresh()V+28
j org.springframework.test.AbstractSingleSpringContextTests.createApplicationContext([Ljava/lang/String;)Lorg/springframework/context/ConfigurableApplicationContext;+30
j org.springframework.test.AbstractSingleSpringContextTests.loadContextLocations([Ljava/lang/String;)Lorg/springframework/context/ConfigurableApplicationContext;+55
j org.springframework.test.AbstractSingleSpringContextTests.loadContext(Ljava/lang/Object;)Lorg/springframework/context/ConfigurableApplicationContext;+8
j org.springframework.test.AbstractSpringContextTests.getContext(Ljava/lang/Object;)Lorg/springframework/context/ConfigurableApplicationContext;+25
j org.springframework.test.AbstractSingleSpringContextTests.setUp()V+6
j junit.framework.TestCase.runBare()V+20
My guess is that the AspectJ capability of my project does go well with the bytecode instrumentation of the profiler.
Has anyone had a similar experience? Can anyone confirm that the bytecode weaving is the issue?
Thanks
Simon
did you get answer to your question?
i am facing similar problem