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
My guess is that the AspectJ capability of my project does go well with the bytecode instrumentation of the profiler.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
Has anyone had a similar experience? Can anyone confirm that the bytecode weaving is the issue?
Thanks
Simon


Reply With Quote