Thanks for sharing this, Martin. Cheers Dan
On 4 February 2015 at 09:22, Martin Grigorov <[email protected]> wrote: > Hi, > > I just want to share a solution for a cryptic error I have faced today. > > My Maven build failed with the following error: > > ... > DataNucleus : JDO Query - com.example.domain.model.MyEntity -> > com.example.domain.model.QMyEntity > [INFO] > ------------------------------------------------------------------------ > [INFO] Reactor Summary: > [INFO] > [INFO] App .......................................... SUCCESS [ 0.098 s] > [INFO] App DOM ...................................... FAILURE [ 1.500 s] > [INFO] App Fixtures ................................. SKIPPED > [INFO] App Integration Tests ........................ SKIPPED > [INFO] App Webapp ................................... SKIPPED > [INFO] > ------------------------------------------------------------------------ > [INFO] BUILD FAILURE > [INFO] > ------------------------------------------------------------------------ > [INFO] Total time: 2.021 s > [INFO] Finished at: 2015-02-04T11:10:28+02:00 > [INFO] Final Memory: 18M/301M > [INFO] > ------------------------------------------------------------------------ > [ERROR] Failed to execute goal > org.apache.maven.plugins:maven-compiler-plugin:3.1:compile > (default-compile) on project app-dom: Fatal error compiling: > java.lang.ClassCastException: com.sun.tools.javac.code.Symbol$TypeSymbol > cannot be cast to javax.lang.model.element.TypeElement -> [Help 1] > > Running "mvn compiile -X" produced: > > Caused by: java.lang.ClassCastException: > com.sun.tools.javac.code.Symbol$TypeSymbol cannot be cast to > javax.lang.model.element.TypeElement > at > > org.datanucleus.jdo.query.JDOQueryProcessor.getExpressionInterfaceNameForType(JDOQueryProcessor.java:489) > at > > org.datanucleus.jdo.query.JDOQueryProcessor.processClass(JDOQueryProcessor.java:254) > at > > org.datanucleus.jdo.query.JDOQueryProcessor.process(JDOQueryProcessor.java:137) > at > > com.sun.tools.javac.processing.JavacProcessingEnvironment.callProcessor(JavacProcessingEnvironment.java:793) > at > > com.sun.tools.javac.processing.JavacProcessingEnvironment.discoverAndRunProcs(JavacProcessingEnvironment.java:722) > > > In the web I've found that such errors occur when an annotation it applied > to a correct ElementType, e.g. java.lang.annotation.ElementType#TYPE, but > there are some extra modifiers which break the annotation compilation. > In my case it was the usage of javax.jdo.annotations.PersistenceCapable on > an *abstract* class. > It was good that DataNucleus prints the name of the entity it is going to > process. In my case: com.example.domain.model.MyEntity > > I share this here for a reference if anyone else also hits this problem in > the future. > > > Martin >
