pojobuilder icon indicating copy to clipboard operation
pojobuilder copied to clipboard

NoClassDefFoundError when generating builders from classes with primitive types on Eclipse

Open mrcrch opened this issue 7 years ago • 3 comments

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

mrcrch avatar Nov 23 '17 13:11 mrcrch

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

mkarneim avatar Nov 25 '17 08:11 mkarneim

Thanks, @mkarneim

I will create a little project to show this issue

mrcrch avatar Nov 29 '17 03:11 mrcrch

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.

drekbour avatar Mar 04 '19 12:03 drekbour

Sorry. I totally forgot about this issue

I'm closing it, I can't reproduce it anymore

mrcrch avatar Jan 03 '23 14:01 mrcrch