I'd suggest you submit the issue to the Eclipse Bugzilla bug system
(http://www.eclipse.org/aspectj/bugs.php). Other than that, it looks like
you are seeing some interaction between your JPA provider and AspectJ,
although it's interesting you hit this problem only in debug mode on an IBM
VM. I would also submit it as a bug to IBM.

-----Original Message-----
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of Adrian Gonzalez
Sent: Tuesday, October 23, 2007 7:50 AM
To: [email protected]
Subject: [aspectj-users] GenericSignatureFormatError with IBM JVM Debug Mode

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(SignatureP
arser.java:462)
        at
sun.reflect.generics.parser.SignatureParser.parseMethodTypeSignature(Signatu
reParser.java:454)
        at
sun.reflect.generics.parser.SignatureParser.parseMethodSig(SignatureParser.j
ava:159)
        at
sun.reflect.generics.repository.ConstructorRepository.parse(ConstructorRepos
itory.java:55)
        at
sun.reflect.generics.repository.ConstructorRepository.parse(ConstructorRepos
itory.java:43)
        at
sun.reflect.generics.repository.AbstractRepository.<init>(AbstractRepository
.java:74)
        at
sun.reflect.generics.repository.GenericDeclRepository.<init>(GenericDeclRepo
sitory.java:48)
        at
sun.reflect.generics.repository.ConstructorRepository.<init>(ConstructorRepo
sitory.java:51)
        at
sun.reflect.generics.repository.MethodRepository.<init>(MethodRepository.jav
a: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.getGene
ricParameterTypes(Java15GenericSignatureInformationProvider.java:44)
        at
org.aspectj.weaver.reflect.ReflectionBasedResolvedMemberImpl.getGenericParam
eterTypes(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(J
oinPointSignatureIterator.java:178)
        at
org.aspectj.weaver.JoinPointSignatureIterator.hasNext(JoinPointSignatureIter
ator.java:69)
        at
org.aspectj.weaver.patterns.SignaturePattern.matches(SignaturePattern.java:2
87)
        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(Poin
tcutExpressionImpl.java:235)
        at
org.aspectj.weaver.internal.tools.PointcutExpressionImpl.matchesExecution(Po
intcutExpressionImpl.java:101)
        at
org.aspectj.weaver.internal.tools.PointcutExpressionImpl.matchesMethodExecut
ion(PointcutExpressionImpl.java:92)
        at
org.springframework.aop.aspectj.AspectJExpressionPointcut.getShadowMatch(Asp
ectJExpressionPointcut.java:345)
        at
org.springframework.aop.aspectj.AspectJExpressionPointcut.matches(AspectJExp
ressionPointcut.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.j
ava: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.postPro
cessAfterInitialization(AbstractAutoProxyCreator.java:296)
        at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory
.applyBeanPostProcessorsAfterInitialization(AbstractAutowireCapableBeanFacto
ry.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(Ab
stractBeanFactory.java:251)
        at
org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSi
ngleton(DefaultSingletonBeanRegistry.java:156)
        at
org.springframework.beans.factory.support.AbstractBeanFactory.getBean(Abstra
ctBeanFactory.java:248)
        at
org.springframework.beans.factory.support.AbstractBeanFactory.getBean(Abstra
ctBeanFactory.java:160)
        at
org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolv
eReference(BeanDefinitionValueResolver.java:261)
        at
org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolv
eValueIfNecessary(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(Ab
stractBeanFactory.java:251)
        at
org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSi
ngleton(DefaultSingletonBeanRegistry.java:156)
        at
org.springframework.beans.factory.support.AbstractBeanFactory.getBean(Abstra
ctBeanFactory.java:248)
        at
org.springframework.beans.factory.support.AbstractBeanFactory.getBean(Abstra
ctBeanFactory.java:160)
        at
org.springframework.beans.factory.support.DefaultListableBeanFactory.preInst
antiateSingletons(DefaultListableBeanFactory.java:287)
        at
org.springframework.context.support.AbstractApplicationContext.refresh(Abstr
actApplicationContext.java:352)
        at
org.springframework.test.AbstractSingleSpringContextTests.createApplicationC
ontext(AbstractSingleSpringContextTests.java:199)
        at
org.springframework.test.AbstractSingleSpringContextTests.loadContextLocatio
ns(AbstractSingleSpringContextTests.java:179)
        at
org.springframework.test.AbstractSingleSpringContextTests.loadContext(Abstra
ctSingleSpringContextTests.java:158)
        at
org.springframework.test.AbstractSpringContextTests.getContext(AbstractSprin
gContextTests.java:105)
        at
org.springframework.test.AbstractSingleSpringContextTests.setUp(AbstractSing
leSpringContextTests.java:87)
        at
junit.framework.TestCase.runBare(TestCase.java:125)
        at
org.springframework.test.ConditionalTestCase.runBare(ConditionalTestCase.jav
a: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(JUnit3T
estReference.java:128)
        at
org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:3
8)
        at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRu
nner.java:460)
        at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRu
nner.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

_______________________________________________
aspectj-users mailing list
[email protected]
https://dev.eclipse.org/mailman/listinfo/aspectj-users

Reply via email to