Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Auto Value] Outer and Inner class creation fails #738

Closed
mseele opened this issue Jun 5, 2019 · 1 comment
Closed

[Auto Value] Outer and Inner class creation fails #738

mseele opened this issue Jun 5, 2019 · 1 comment

Comments

@mseele
Copy link

mseele commented Jun 5, 2019

Auto Value fails against this code:

import com.google.auto.value.AutoValue;

@AutoValue
public abstract class Outer {

	public static Outer create(Inner value) {
		return new AutoValue_Outer(value);
	}

	public abstract Inner inner();

	@AutoValue
	public abstract static class Inner {

		public static Inner create(String value) {
			return new AutoValue_Outer_Inner(value);
		}

		public abstract String value();

	}

}

with this exception:

java.lang.Exception: org.eclipse.jdt.internal.compiler.problem.AbortCompilation: 
	at org.eclipse.jdt.internal.compiler.apt.dispatch.RoundDispatcher.handleProcessor(RoundDispatcher.java:172)
	at org.eclipse.jdt.internal.compiler.apt.dispatch.RoundDispatcher.round(RoundDispatcher.java:124)
	at org.eclipse.jdt.internal.compiler.apt.dispatch.BaseAnnotationProcessorManager.processAnnotations(BaseAnnotationProcessorManager.java:171)
	at org.eclipse.jdt.internal.apt.pluggable.core.dispatch.IdeAnnotationProcessorManager.processAnnotations(IdeAnnotationProcessorManager.java:138)
	at org.eclipse.jdt.internal.compiler.Compiler.processAnnotations(Compiler.java:940)
	at org.eclipse.jdt.internal.compiler.Compiler.compile(Compiler.java:450)
	at org.eclipse.jdt.internal.compiler.Compiler.compile(Compiler.java:426)
	at org.eclipse.jdt.internal.core.builder.AbstractImageBuilder.compile(AbstractImageBuilder.java:386)
	at org.eclipse.jdt.internal.core.builder.IncrementalImageBuilder.compile(IncrementalImageBuilder.java:371)
	at org.eclipse.jdt.internal.core.builder.AbstractImageBuilder.compile(AbstractImageBuilder.java:318)
	at org.eclipse.jdt.internal.core.builder.IncrementalImageBuilder.incrementalBuildLoop(IncrementalImageBuilder.java:186)
	at org.eclipse.jdt.internal.core.builder.IncrementalImageBuilder.build(IncrementalImageBuilder.java:143)
	at org.eclipse.jdt.internal.core.builder.JavaBuilder.buildDeltas(JavaBuilder.java:279)
	at org.eclipse.jdt.internal.core.builder.JavaBuilder.build(JavaBuilder.java:200)
	at org.eclipse.core.internal.events.BuildManager$2.run(BuildManager.java:833)
	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:45)
	at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:220)
	at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:263)
	at org.eclipse.core.internal.events.BuildManager$1.run(BuildManager.java:316)
	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:45)
	at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:319)
	at org.eclipse.core.internal.events.BuildManager.basicBuildLoop(BuildManager.java:371)
	at org.eclipse.core.internal.events.BuildManager.build(BuildManager.java:392)
	at org.eclipse.core.internal.events.AutoBuildJob.doBuild(AutoBuildJob.java:154)
	at org.eclipse.core.internal.events.AutoBuildJob.run(AutoBuildJob.java:244)
	at org.eclipse.core.internal.jobs.Worker.run(Worker.java:63)
Caused by: org.eclipse.jdt.internal.compiler.problem.AbortCompilation: 
	at org.eclipse.jdt.internal.core.builder.NameEnvironment.findClass(NameEnvironment.java:476)
	at org.eclipse.jdt.internal.core.builder.NameEnvironment.findType(NameEnvironment.java:546)
	at org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment.lambda$0(LookupEnvironment.java:229)
	at org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment$$Lambda$554.000000006D11C4D0.apply(Unknown Source)
	at org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment.askForTypeFromModules(LookupEnvironment.java:365)
	at org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment.askForType(LookupEnvironment.java:228)
	at org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment.getType(LookupEnvironment.java:1683)
	at org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment.getType(LookupEnvironment.java:1652)
	at org.eclipse.jdt.internal.compiler.apt.model.ElementsImpl9.getTypeElement(ElementsImpl9.java:81)
	at org.eclipse.jdt.internal.compiler.apt.model.ElementsImpl9.getTypeElement(ElementsImpl9.java:53)
	at com.google.auto.value.processor.TypeEncoder$TypeRewriter.classForName(TypeEncoder.java:425)
	at com.google.auto.value.processor.TypeEncoder$TypeRewriter.findReferencedClasses(TypeEncoder.java:418)
	at com.google.auto.value.processor.TypeEncoder$TypeRewriter.rewrite(TypeEncoder.java:380)
	at com.google.auto.value.processor.TypeEncoder.decode(TypeEncoder.java:139)
	at com.google.auto.value.processor.TypeEncoder.decode(TypeEncoder.java:132)
	at com.google.auto.value.processor.AutoValueProcessor.processType(AutoValueProcessor.java:256)
	at com.google.auto.value.processor.AutoValueOrOneOfProcessor.process(AutoValueOrOneOfProcessor.java:312)
	at org.eclipse.jdt.internal.compiler.apt.dispatch.RoundDispatcher.handleProcessor(RoundDispatcher.java:142)
	... 25 more
@eamonnmcmanus
Copy link
Member

eamonnmcmanus commented Jun 5, 2019

That looks pretty clearly like a bug in the Eclipse compiler. I would suggest logging an issue there (link, component APT). Don't forget to say what version of Eclipse it is, and which JDK.

It looks as if this is where the exception is being thrown:

        String moduleQualifiedName = moduleName != null ? moduleName+':'+qualifiedTypeName : qualifiedTypeName;
        if (this.initialTypeNames != null && this.initialTypeNames.includes(moduleQualifiedName)) {
                if (this.isIncrementalBuild)
                        // catch the case that a type inside a source file has been renamed but other class files are looking for it
                        throw new AbortCompilation(true, new AbortIncrementalBuildException(qualifiedTypeName));
                return null; // looking for a file which we know was provided at the beginning of the compilation
        }

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants