pojobuilder
pojobuilder copied to clipboard
NoClassDefFoundError when generating builders from classes with primitive types on Eclipse
Eclipse Version: Oxygen.1a Release (4.7.1a)
PojoBuilder Version: 4.0.1
Jar used in Factory Path: pojobuilder-4.0.1-jar-with-dependencies.jar
Sample pojo:
@GeneratePojoBuilder
public class PojoWithPrimitive {
private long primitiveLong;
public long getPrimitiveLong() {
return primitiveLong;
}
public void setPrimitiveLong(final long primitiveLong) {
this.primitiveLong = primitiveLong;
}
}
Error (Eclipse Log):
java.lang.NoClassDefFoundError: net/karneim/pojobuilder/model/PrimitiveTypeM
at net.karneim.pojobuilder.analysis.TypeMFactory.getTypeM(TypeMFactory.java:57)
at net.karneim.pojobuilder.analysis.PojoPropertiesScanner.scanSetterMethods(PojoPropertiesScanner.java:51)
at net.karneim.pojobuilder.analysis.PojoPropertiesScanner.scan(PojoPropertiesScanner.java:34)
at net.karneim.pojobuilder.analysis.JavaModelAnalyzer.scanSourceCode(JavaModelAnalyzer.java:298)
at net.karneim.pojobuilder.analysis.JavaModelAnalyzer.analyze(JavaModelAnalyzer.java:87)
at net.karneim.pojobuilder.processor.AnnotationProcessor.process(AnnotationProcessor.java:129)
at org.eclipse.jdt.internal.compiler.apt.dispatch.RoundDispatcher.handleProcessor(RoundDispatcher.java:139)
at org.eclipse.jdt.internal.compiler.apt.dispatch.RoundDispatcher.round(RoundDispatcher.java:121)
at org.eclipse.jdt.internal.compiler.apt.dispatch.BaseAnnotationProcessorManager.processAnnotations(BaseAnnotationProcessorManager.java:159)
at org.eclipse.jdt.internal.apt.pluggable.core.dispatch.IdeAnnotationProcessorManager.processAnnotations(IdeAnnotationProcessorManager.java:135)
at org.eclipse.jdt.internal.compiler.Compiler.processAnnotations(Compiler.java:933)
at org.eclipse.jdt.internal.compiler.Compiler.compile(Compiler.java:443)
at org.eclipse.jdt.internal.compiler.Compiler.compile(Compiler.java:419)
at org.eclipse.jdt.internal.core.builder.AbstractImageBuilder.compile(AbstractImageBuilder.java:372)
at org.eclipse.jdt.internal.core.builder.IncrementalImageBuilder.compile(IncrementalImageBuilder.java:331)
at org.eclipse.jdt.internal.core.builder.AbstractImageBuilder.compile(AbstractImageBuilder.java:305)
at org.eclipse.jdt.internal.core.builder.IncrementalImageBuilder.build(IncrementalImageBuilder.java:136)
at org.eclipse.jdt.internal.core.builder.JavaBuilder.buildDeltas(JavaBuilder.java:267)
at org.eclipse.jdt.internal.core.builder.JavaBuilder.build(JavaBuilder.java:195)
at org.eclipse.core.internal.events.BuildManager$2.run(BuildManager.java:735)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:206)
at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:246)
at org.eclipse.core.internal.events.BuildManager$1.run(BuildManager.java:301)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:304)
at org.eclipse.core.internal.events.BuildManager.basicBuildLoop(BuildManager.java:360)
at org.eclipse.core.internal.events.BuildManager.build(BuildManager.java:383)
at org.eclipse.core.internal.events.AutoBuildJob.doBuild(AutoBuildJob.java:142)
at org.eclipse.core.internal.events.AutoBuildJob.run(AutoBuildJob.java:232)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:56)
Workaround: Replace long
with Long
I have recreated your setup on my computer, but I can't reproduce this error.
Could you please post more details of your setup? For example the contents of the following files:
- .project
- .classpath
- .factorypath
- .settings/org.eclipse.jdt.apt.core.prefs
Thanks, @mkarneim
I will create a little project to show this issue
This sounds like a problem in Eclipse not PB. For one internal class (of a single jar with no dependencies) to fail to find another internal class is just irrational behaviour. Perhaps Eclipse was updating the project model while compiling in parallel or something... Given no-one has reproduced or reported in years, this should be closed.
Sorry. I totally forgot about this issue
I'm closing it, I can't reproduce it anymore