I've got this odd error when using the MongoAnnotationProcessor with the APT plugin to create my QueryDSL objects from my Domain model. Everything was working great until I added an SLF4J logger on my domain model to do some debugging. I suddenly get an IndexOutOfBoundsException when the APT plugin runs. I've spent the past day looking through dependency graphs and comparing versions. If I comment out the logger field, not the log call, but the private static field that the factory sets, it all works! And... if I put the same line in my super class (an abstract base domain class), and set it as a protected field so I can use it in my sub-classes... it works! If I use JUL Logging... it works! But I can't seem to use SLF4J on the domain class itself. Hoping someone can point me in the right direction. All seems very odd. Thanks in advance.
Spring version: 3.1.2.RELEASECode:private static final Logger LOGGER = LoggerFactory.getLogger(Event.class);
Spring Data Mongo version: 1.1.0.RC1 (also tried the current release version)
QueryDSL verions: 2.6.0 (I always use the same version as Spring Data Mongo)
SLF4J version: 1.7.0 (also tried other versions)
Here's the Error:
Code:[apt:process] execute error java.lang.RuntimeException: java.lang.IndexOutOfBoundsException: -1 at com.sun.tools.javac.main.Main.compile(Main.java:469) at com.sun.tools.javac.api.JavacTaskImpl.call(JavacTaskImpl.java:132) at com.mysema.maven.apt.AbstractProcessorMojo.execute(AbstractProcessorMojo.java:182) at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:101) at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:209) at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153) at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145) at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:84) at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:59) at org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBuild(LifecycleStarter.java:183) at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:161) at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:320) at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:156) at org.apache.maven.cli.MavenCli.execute(MavenCli.java:537) at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:196) at org.apache.maven.cli.MavenCli.main(MavenCli.java:141) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:601) at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:290) at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:230) at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:409) at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:352) Caused by: java.lang.IndexOutOfBoundsException: -1 at com.sun.tools.javac.util.List.get(List.java:414) at com.mysema.query.apt.TypeExtractor.visitDeclared(TypeExtractor.java:62) at com.mysema.query.apt.TypeExtractor.visitDeclared(TypeExtractor.java:32) at com.sun.tools.javac.code.Type$ClassType.accept(Type.java:731) at javax.lang.model.util.AbstractTypeVisitor6.visit(AbstractTypeVisitor6.java:95) at com.mysema.query.apt.AbstractQuerydslProcessor.processFromProperties(AbstractQuerydslProcessor.java:377) at com.mysema.query.apt.AbstractQuerydslProcessor.getTypeFromProperties(AbstractQuerydslProcessor.java:347) at com.mysema.query.apt.AbstractQuerydslProcessor.collectElements(AbstractQuerydslProcessor.java:220) at com.mysema.query.apt.AbstractQuerydslProcessor.processAnnotations(AbstractQuerydslProcessor.java:118) at com.mysema.query.apt.AbstractQuerydslProcessor.process(AbstractQuerydslProcessor.java:104) at com.sun.tools.javac.processing.JavacProcessingEnvironment.callProcessor(JavacProcessingEnvironment.java:793) at com.sun.tools.javac.processing.JavacProcessingEnvironment.discoverAndRunProcs(JavacProcessingEnvironment.java:722) at com.sun.tools.javac.processing.JavacProcessingEnvironment.access$1700(JavacProcessingEnvironment.java:97) at com.sun.tools.javac.processing.JavacProcessingEnvironment$Round.run(JavacProcessingEnvironment.java:1029) at com.sun.tools.javac.processing.JavacProcessingEnvironment.doProcessing(JavacProcessingEnvironment.java:1163) at com.sun.tools.javac.main.JavaCompiler.processAnnotations(JavaCompiler.java:1108) at com.sun.tools.javac.main.JavaCompiler.compile(JavaCompiler.java:824) at com.sun.tools.javac.main.Main.compile(Main.java:439) ... 23 more


Reply With Quote
