mkarneim / pojobuilder

A Java Code Generator for Pojo Builders
Other
334 stars 44 forks source link

NoClassDefFoundError when generating builders from classes with primitive types on Eclipse #145

Closed mrcrch closed 1 year ago

mrcrch commented 6 years ago

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

mkarneim commented 6 years ago

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:

mrcrch commented 6 years ago

Thanks, @mkarneim

I will create a little project to show this issue

drekbour commented 5 years ago

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.

mrcrch commented 1 year ago

Sorry. I totally forgot about this issue

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