MountainClimb / datanucleus-appengine

Automatically exported from code.google.com/p/datanucleus-appengine
0 stars 0 forks source link

java.lang.ClassFormatError: Duplicate field name and signature in class file #216

Closed GoogleCodeExporter closed 8 years ago

GoogleCodeExporter commented 8 years ago
ISSUE SUMMARY
-------------
I get the above issue on my local dev app server when executing a JDO query for 
the first time after app build (which includes JDO enhancement). This is an 
intermittent problem, which seems to me to be compilation- or JDO 
enhancement-related.

My work-around is to build and run again until the issue disappears. Usually, 
just one iteration is sufficient.

WHAT STEPS WILL REPRODUCE THE PROBLEM?
--------------------------------------
  ·  Build my GAE/J JDO app.
  ·  Launch a local instance of the dev app server.
  ·  Launch my web application on my local instance of the dev app server.
  ·  Intermittently for me (perhaps with of the order of 0.01 probability): I get this exception when a query are called for the first time. The offending class can vary from occurrence to occurrence of this issue.

WHAT IS THE EXPECTED OUTPUT?
----------------------------
Correct web app operation without exceptions.

WHAT OUTPUT DO YOU SEE INSTEAD?
-------------------------------
The stack trace extract is:

SEVERE: Can't instantiate page using constructor public 
[...].PageInitialise(org.apache.wicket.PageParameters) and argument [argument 
name] = [argument value]
org.apache.wicket.WicketRuntimeException: Can't instantiate page using 
constructor public [...].PageInitialise(org.apache.wicket.PageParameters) and 
argument [argument name] = [argument value]
        at org.apache.wicket.session.DefaultPageFactory.createPage(DefaultPageFactory.java:212)
        at org.apache.wicket.session.DefaultPageFactory.newPage(DefaultPageFactory.java:89)
        ...
        at org.apache.wicket.protocol.http.WicketFilter.doGet(WicketFilter.java:479)
        at org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:312)
        at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(Servlet.java:1157)
        at com.google.appengine.api.blobstore.dev.ServeBlobFilter.doFilter(ServeBlobFilter.java:51)
        at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
        at com.google.apphosting.utils.servlet.TransactionCleanupFilter.doFilter(TransactionCleanupFilter.java:43)
        at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
        ...
        at com.google.appengine.tools.development.agent.runtime.Runtime.newInstance(Runtime.java:120)
        at org.apache.wicket.session.DefaultPageFactory.createPage(DefaultPageFactory.java:188)
        ... 35 more
Caused by: java.lang.ClassFormatError: Duplicate field name&signature in class 
file [file name]
        at java.lang.ClassLoader.defineClass1(Native Method)
        at java.lang.ClassLoader.defineClassCond(Unknown Source)
        at java.lang.ClassLoader.defineClass(Unknown Source)
        at java.security.SecureClassLoader.defineClass(Unknown Source)
        at java.net.URLClassLoader.defineClass(Unknown Source)
        at java.net.URLClassLoader.access$000(Unknown Source)
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at com.google.appengine.tools.development.IsolatedAppClassLoader.loadClass(IsolatedAppClassLoader.java:151)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Unknown Source)
        at sun.reflect.generics.factory.CoreReflectionFactory.makeNamedType(Unknown Source)
        at sun.reflect.generics.visitor.Reifier.visitClassTypeSignature(Unknown Source)
        at sun.reflect.generics.tree.ClassTypeSignature.accept(Unknown Source)
        at sun.reflect.generics.visitor.Reifier.reifyTypeArguments(Unknown Source)
        at sun.reflect.generics.visitor.Reifier.visitClassTypeSignature(Unknown Source)
        at sun.reflect.generics.tree.ClassTypeSignature.accept(Unknown Source)
        at sun.reflect.generics.repository.MethodRepository.getReturnType(Unknown Source)
        at java.lang.reflect.Method.getGenericReturnType(Unknown Source)
        at org.datanucleus.metadata.annotations.Member.<init>(Member.java:68)
        at org.datanucleus.metadata.annotations.AbstractAnnotationReader.getJavaBeanAccessorAnnotationsForClass(AbstractAnnotationReader.java:250)
        at org.datanucleus.metadata.annotations.AbstractAnnotationReader.getMetaDataForClass(AbstractAnnotationReader.java:128)
        at org.datanucleus.metadata.annotations.AnnotationManagerImpl.getMetaDataForClass(AnnotationManagerImpl.java:136)
        at org.datanucleus.metadata.MetaDataManager.loadAnnotationsForClass(MetaDataManager.java:2278)
        at org.datanucleus.jdo.metadata.JDOMetaDataManager.getMetaDataForClassInternal(JDOMetaDataManager.java:369)
        at org.datanucleus.metadata.MetaDataManager.getMetaDataForClass(MetaDataManager.java:1125)
        at org.datanucleus.query.compiler.JavaQueryCompiler.getType(JavaQueryCompiler.java:546)
        at org.datanucleus.query.compiler.JavaQueryCompiler.getType(JavaQueryCompiler.java:538)
        at org.datanucleus.query.symbol.SymbolTable.getType(SymbolTable.java:118)
        at org.datanucleus.query.expression.PrimaryExpression.bind(PrimaryExpression.java:118)
        at org.datanucleus.query.expression.DyadicExpression.bind(DyadicExpression.java:85)
        at org.datanucleus.query.compiler.JavaQueryCompiler.compileFilter(JavaQueryCompiler.java:299)
        at org.datanucleus.query.compiler.JDOQLCompiler.compile(JDOQLCompiler.java:86)
        at org.datanucleus.store.query.AbstractJDOQLQuery.compileInternal(AbstractJDOQLQuery.java:317)
        at org.datanucleus.store.query.Query.executeQuery(Query.java:1457)
        at org.datanucleus.store.query.Query.executeWithArray(Query.java:1371)
        at org.datanucleus.store.query.Query.execute(Query.java:1344)
        at org.datanucleus.jdo.JDOQuery.execute(JDOQuery.java:221)
        at [...].DataExchange.doPersistentDataExchange(DataExchange.java:569)
        ... 42 more

WHAT VERSION OF THE PRODUCT ARE YOU USING? ON WHAT OPERATING SYSTEM?
--------------------------------------------------------------------
GAE/J version:             1.3.5
DataNucleus JDO version:   1.1.5  (to conform to that used in the latest GAE/J 
SDK)

Web application framework: Apache Wicket 1.4.9

NetBeans development and build environment:
  Product Version: NetBeans IDE 6.9 (Build 201006101454)
  Java: 1.6.0_20; Java HotSpot(TM) Client VM 16.3-b01
  System: Windows XP version 5.1 running on x86; Cp1252; en_GB (nb)

Web browser:
  Mozilla/5.0 (Windows; U; Windows NT 5.1; en-GB; rv:1.9.2.6) Gecko/20100625 Firefox/3.6.6

Operating system:
  Microsoft Windows XP Home Edition Version 2002 Service Pack 3

ADDITIONAL INFORMATION AND CONCLUSION
-------------------------------------
This is a minor, intermittent (build/enhancement-related?) problem which can be 
worked around by testing all JDO queries after deployment to the cloud but 
before changing the active, default production app version.

Original issue reported on code.google.com by IanMarsh...@gmail.com on 9 Jul 2010 at 9:51

GoogleCodeExporter commented 8 years ago

Original comment by googleco...@yahoo.co.uk on 21 Sep 2011 at 3:50

GoogleCodeExporter commented 8 years ago
Can't reproduce. Provide complete details when it next happens

Original comment by googleco...@yahoo.co.uk on 1 Nov 2011 at 4:22

GoogleCodeExporter commented 8 years ago
I starred this issue because it was happening to me about once a day. But I 
haven't seen this exception for many months.

Original comment by ToonT...@gmail.com on 1 Nov 2011 at 5:59