Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
RE: [aspectj-users] GenericSignatureFormatError with IBM JVM Debug Mode

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: aspectj-users-bounces@xxxxxxxxxxx
[mailto:aspectj-users-bounces@xxxxxxxxxxx] On Behalf Of Adrian Gonzalez
Sent: Tuesday, October 23, 2007 7:50 AM
To: aspectj-users@xxxxxxxxxxx
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 = com.ibm.oti.reflect.Method@3a2a3a2a
	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
aspectj-users@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/aspectj-users



Back to the top