Hello,

I have the following bug (GenericSignatureFormatError)
when using Aspect J with IBM JVM in debug mode.
The error doesn't appear when using Sun JVM in debug
mode.

I use the folowing version of IBM JVM :
java version "1.5.0"
Java(TM) 2 Runtime Environment, Standard Edition
(build pwi32dev-20061002a (SR3)
)
IBM J9 VM (build 2.3, J2RE 1.5.0 IBM J9 2.3 Windows XP
x86-32 j9vmwi3223-2006100
1 (JIT enabled)
J9VM - 20060915_08260_lHdSMR
JIT  - 20060908_1811_r8
GC   - 20060906_AA)
JCL  - 20061002

The bug appears when I configure an aspect J aspect
and when I put a break point on a class executed in
the aspect (in the execution flow of the aspect).
In my sample, when I put a break point on a Dao which
is executed by a service. I have added transactional
aspects on the service.

In this case, aspect J generated an
GenericSignatureFormatError.
This exception is generated from class
org.aspectj.weaver.reflect.Java15GenericSignatureInformationProvider.

I've checked the object state used by
Java15GenericSignatureInformationProvider, and found
the following weird variable - please note the value
of the field signature :
member : [Class=Method]
        annotationDefault = null
        annotations = null
        clazz = class
com.natixis.sphinx.persistence.jpa.support.JpaCrudDaoSupport
        exceptionType = [class
org.springframework.dao.ConcurrencyFailureException,
class
org.springframework.dao.DataIntegrityViolationException]
        genericInfo = null
        j9method = [EMAIL PROTECTED]
        methodAccessor = null
        modifiers = 1
        name = update
        override = false
        parameterAnnotations = null
        parameterTypes = [class java.lang.Object]
        returnType = class java.lang.Object
        root = null
        securityCheckCache = null
        securityCheckTargetClassCache = null
        signature = xB·B
        slot = 1108159024

Has someone some tips on this one ?

Thank you

Here's the stackTrace :
org.springframework.beans.factory.BeanCreationException:
Error creating bean with name 'sampleManager' defined
in class path resource [myartiContext.xml]: Cannot
resolve reference to bean 'sampleDao' while setting
bean property 'sampleDao'; nested exception is
org.springframework.beans.factory.BeanCreationException:
Error creating bean with name 'sampleDao' defined in
class path resource [myartiContext.xml]:
Initialization of bean failed; nested exception is
java.lang.reflect.GenericSignatureFormatError
Caused by:
org.springframework.beans.factory.BeanCreationException:
Error creating bean with name 'sampleDao' defined in
class path resource [myartiContext.xml]:
Initialization of bean failed; nested exception is
java.lang.reflect.GenericSignatureFormatError
Caused by:
java.lang.reflect.GenericSignatureFormatError
        at
sun.reflect.generics.parser.SignatureParser.error(SignatureParser.java:121)
        at
sun.reflect.generics.parser.SignatureParser.parseFormalParameters(SignatureParser.java:462)
        at
sun.reflect.generics.parser.SignatureParser.parseMethodTypeSignature(SignatureParser.java:454)
        at
sun.reflect.generics.parser.SignatureParser.parseMethodSig(SignatureParser.java:159)
        at
sun.reflect.generics.repository.ConstructorRepository.parse(ConstructorRepository.java:55)
        at
sun.reflect.generics.repository.ConstructorRepository.parse(ConstructorRepository.java:43)
        at
sun.reflect.generics.repository.AbstractRepository.<init>(AbstractRepository.java:74)
        at
sun.reflect.generics.repository.GenericDeclRepository.<init>(GenericDeclRepository.java:48)
        at
sun.reflect.generics.repository.ConstructorRepository.<init>(ConstructorRepository.java:51)
        at
sun.reflect.generics.repository.MethodRepository.<init>(MethodRepository.java:46)
        at
sun.reflect.generics.repository.MethodRepository.make(MethodRepository.java:59)
        at
java.lang.reflect.Method.getGenericInfo(Method.java:119)
        at
java.lang.reflect.Method.getGenericParameterTypes(Method.java:307)
        at
org.aspectj.weaver.reflect.Java15GenericSignatureInformationProvider.getGenericParameterTypes(Java15GenericSignatureInformationProvider.java:44)
        at
org.aspectj.weaver.reflect.ReflectionBasedResolvedMemberImpl.getGenericParameterTypes(ReflectionBasedResolvedMemberImpl.java:120)
        at
org.aspectj.weaver.ResolvedMemberImpl.matches(ResolvedMemberImpl.java:771)
        at
org.aspectj.weaver.ResolvedType.lookupResolvedMember(ResolvedType.java:386)
        at
org.aspectj.weaver.JoinPointSignatureIterator.findSignaturesFromSupertypes(JoinPointSignatureIterator.java:178)
        at
org.aspectj.weaver.JoinPointSignatureIterator.hasNext(JoinPointSignatureIterator.java:69)
        at
org.aspectj.weaver.patterns.SignaturePattern.matches(SignaturePattern.java:287)
        at
org.aspectj.weaver.patterns.KindedPointcut.matchInternal(KindedPointcut.java:106)
        at
org.aspectj.weaver.patterns.Pointcut.match(Pointcut.java:146)
        at
org.aspectj.weaver.internal.tools.PointcutExpressionImpl.getShadowMatch(PointcutExpressionImpl.java:235)
        at
org.aspectj.weaver.internal.tools.PointcutExpressionImpl.matchesExecution(PointcutExpressionImpl.java:101)
        at
org.aspectj.weaver.internal.tools.PointcutExpressionImpl.matchesMethodExecution(PointcutExpressionImpl.java:92)
        at
org.springframework.aop.aspectj.AspectJExpressionPointcut.getShadowMatch(AspectJExpressionPointcut.java:345)
        at
org.springframework.aop.aspectj.AspectJExpressionPointcut.matches(AspectJExpressionPointcut.java:231)
        at
org.springframework.aop.support.AopUtils.canApply(AopUtils.java:195)
        at
org.springframework.aop.support.AopUtils.canApply(AopUtils.java:236)
        at
org.springframework.aop.support.AopUtils.findAdvisorsThatCanApply(AopUtils.java:270)
        at
org.springframework.aop.framework.autoproxy.AbstractAdvisorAutoProxyCreator.findEligibleAdvisors(AbstractAdvisorAutoProxyCreator.java:83)
        at
org.springframework.aop.framework.autoproxy.AbstractAdvisorAutoProxyCreator.getAdvicesAndAdvisorsForBean(AbstractAdvisorAutoProxyCreator.java:66)
        at
org.springframework.aop.framework.autoproxy.AbstractAutoProxyCreator.postProcessAfterInitialization(AbstractAutoProxyCreator.java:296)
        at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyBeanPostProcessorsAfterInitialization(AbstractAutowireCapableBeanFactory.java:312)
        at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1180)
        at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:425)
        at
org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:251)
        at
org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:156)
        at
org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:248)
        at
org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:160)
        at
org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:261)
        at
org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:109)
        at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1099)
        at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:861)
        at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:421)
        at
org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:251)
        at
org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:156)
        at
org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:248)
        at
org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:160)
        at
org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:287)
        at
org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:352)
        at
org.springframework.test.AbstractSingleSpringContextTests.createApplicationContext(AbstractSingleSpringContextTests.java:199)
        at
org.springframework.test.AbstractSingleSpringContextTests.loadContextLocations(AbstractSingleSpringContextTests.java:179)
        at
org.springframework.test.AbstractSingleSpringContextTests.loadContext(AbstractSingleSpringContextTests.java:158)
        at
org.springframework.test.AbstractSpringContextTests.getContext(AbstractSpringContextTests.java:105)
        at
org.springframework.test.AbstractSingleSpringContextTests.setUp(AbstractSingleSpringContextTests.java:87)
        at
junit.framework.TestCase.runBare(TestCase.java:125)
        at
org.springframework.test.ConditionalTestCase.runBare(ConditionalTestCase.java:69)
        at
junit.framework.TestResult$1.protect(TestResult.java:106)
        at
junit.framework.TestResult.runProtected(TestResult.java:124)
        at
junit.framework.TestResult.run(TestResult.java:109)
        at junit.framework.TestCase.run(TestCase.java:118)
        at
junit.framework.TestSuite.runTest(TestSuite.java:208)
        at junit.framework.TestSuite.run(TestSuite.java:203)
        at
org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestReference.run(JUnit3TestReference.java:128)
        at
org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
        at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:460)
        at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:673)
        at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:386)
        at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196)

Merci !



      
____________________________________________________________________________________________
Découvrez le blog Yahoo! Mail : dernières nouveautés, astuces, conseils.. et 
vos réactions !
http://blog.mail.yahoo.fr
_______________________________________________
aspectj-users mailing list
[email protected]
https://dev.eclipse.org/mailman/listinfo/aspectj-users

Reply via email to