Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
Bug 428340 - Maven xtend plugin crashes
Summary: Maven xtend plugin crashes
Status: CLOSED FIXED
Alias: None
Product: TMF
Classification: Modeling
Component: Xtext (show other bugs)
Version: 2.5.1   Edit
Hardware: PC Linux
: P3 normal (vote)
Target Milestone: ---   Edit
Assignee: Project Inbox CLA
QA Contact:
URL:
Whiteboard: v2.5.3
Keywords:
Depends on:
Blocks:
 
Reported: 2014-02-17 06:22 EST by Andras Kovi CLA
Modified: 2017-10-31 11:24 EDT (History)
2 users (show)

See Also:


Attachments
example maven project (1.96 KB, application/gzip)
2014-02-17 07:55 EST, Andras Kovi CLA
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Andras Kovi CLA 2014-02-17 06:22:10 EST
I tried to compile my projects with the maven plugin 2.5.1 and 2.5.2 and the compiler crashed. With version 2.4.3 the compilation succeeds.

Unfortunately, I cannot provide source to reproduce the error. It seems like the issue is related to the following line (find also in the log below)

[ERROR] resource is empty: java:/Objects/com.Section  ************************ this is a JAX-B generated class ******************

It seems like imported JAX-B classes kill the compiler. If I left only one import to a class that references JAX-B classes, then I get errors which are ignored and the compilation continues happily.

[INFO] --- xtend-maven-plugin:2.5.1:compile (default) @ re-core ---
[ERROR] resource is empty: java:/Objects/com.Section
[ERROR] resource is empty: java:/Objects/com.SomeSection
<<< and the compilation goes on >>>

If I import any of those JAX-B classes directly, then the crash happens.

The eclipse compilation succeeds at the same time.

[INFO] --- xtend-maven-plugin:2.5.1:compile (default) @ core ---
[ERROR] resolution of uriFragment '|3' failed.
org.eclipse.emf.ecore.resource.impl.ResourceSetImpl$1DiagnosticWrappedException: org.eclipse.xtext.common.types.access.TypeResource$CannotLoadTypeResourceException: java.lang.NullPointerException
	at org.eclipse.emf.ecore.resource.impl.ResourceSetImpl.handleDemandLoadException(ResourceSetImpl.java:319)
	at org.eclipse.emf.ecore.resource.impl.ResourceSetImpl.demandLoadHelper(ResourceSetImpl.java:278)
	at org.eclipse.xtext.resource.XtextResourceSet.getResource(XtextResourceSet.java:201)
	at org.eclipse.xtext.common.types.access.impl.ClasspathTypeProvider.findTypeByClass(ClasspathTypeProvider.java:212)
	at org.eclipse.xtext.common.types.access.impl.ClasspathTypeProvider.doFindTypeByName(ClasspathTypeProvider.java:197)
	at org.eclipse.xtext.common.types.access.impl.ClasspathTypeProvider.findTypeByName(ClasspathTypeProvider.java:189)
	at org.eclipse.xtext.common.types.xtext.AbstractTypeScope.getSingleElement(AbstractTypeScope.java:60)
	at org.eclipse.xtext.common.types.xtext.AbstractTypeScope.getSingleElement(AbstractTypeScope.java:54)
	at org.eclipse.xtend.core.scoping.RecordingTypeScope.getSingleElement(RecordingTypeScope.java:41)
	at org.eclipse.xtext.scoping.impl.AbstractScope.getSingleElement(AbstractScope.java:105)
	at org.eclipse.xtext.linking.impl.DefaultLinkingService.getLinkedObjects(DefaultLinkingService.java:120)
	at org.eclipse.xtext.linking.lazy.LazyLinkingResource.getEObject(LazyLinkingResource.java:228)
	at org.eclipse.xtext.xbase.resource.BatchLinkableResource.getEObject(BatchLinkableResource.java:105)
	at org.eclipse.emf.ecore.resource.impl.ResourceSetImpl.getEObject(ResourceSetImpl.java:223)
	at org.eclipse.emf.ecore.util.EcoreUtil.resolve(EcoreUtil.java:198)
	at org.eclipse.emf.ecore.util.EcoreUtil.resolve(EcoreUtil.java:258)
	at org.eclipse.emf.ecore.impl.BasicEObjectImpl.eResolveProxy(BasicEObjectImpl.java:1473)
	at org.eclipse.xtext.xtype.impl.XImportDeclarationImpl.getImportedType(XImportDeclarationImpl.java:188)
	at org.eclipse.xtext.xtype.impl.XImportDeclarationImpl.eGet(XImportDeclarationImpl.java:283)
	at org.eclipse.emf.ecore.impl.BasicEObjectImpl.eGet(BasicEObjectImpl.java:1011)
	at org.eclipse.emf.ecore.impl.BasicEObjectImpl.eGet(BasicEObjectImpl.java:1003)
	at org.eclipse.emf.ecore.util.EContentsEList$FeatureIteratorImpl.hasNext(EContentsEList.java:403)
	at org.eclipse.emf.ecore.util.EcoreUtil.resolveCrossReferences(EcoreUtil.java:303)
	at org.eclipse.emf.ecore.util.EcoreUtil.resolveAll(EcoreUtil.java:297)
	at org.eclipse.emf.ecore.util.EcoreUtil.resolveAll(EcoreUtil.java:282)
	at org.eclipse.emf.ecore.util.EcoreUtil.resolveAll(EcoreUtil.java:270)
	at org.eclipse.xtend.core.compiler.batch.XtendBatchCompiler.compile(XtendBatchCompiler.java:392)
	at org.eclipse.xtend.maven.AbstractXtendCompilerMojo.compile(AbstractXtendCompilerMojo.java:109)
	at org.eclipse.xtend.maven.XtendCompile.compileSources(XtendCompile.java:66)
	at org.eclipse.xtend.maven.XtendCompile.internalExecute(XtendCompile.java:59)
	at org.eclipse.xtend.maven.AbstractXtendMojo.execute(AbstractXtendMojo.java:39)
	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:606)
	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: org.eclipse.xtext.common.types.access.TypeResource$CannotLoadTypeResourceException: java.lang.NullPointerException
	at org.eclipse.xtext.common.types.access.TypeResource.doLoad(TypeResource.java:118)
	at org.eclipse.emf.ecore.resource.impl.ResourceImpl.load(ResourceImpl.java:1518)
	at org.eclipse.xtext.common.types.access.TypeResource.load(TypeResource.java:102)
	at org.eclipse.emf.ecore.resource.impl.ResourceSetImpl.demandLoad(ResourceSetImpl.java:259)
	at org.eclipse.emf.ecore.resource.impl.ResourceSetImpl.demandLoadHelper(ResourceSetImpl.java:274)
	... 50 more
Caused by: java.lang.RuntimeException: java.lang.NullPointerException
	at org.eclipse.xtext.common.types.access.impl.DeclaredTypeFactory.createType(DeclaredTypeFactory.java:94)
	at org.eclipse.xtext.common.types.access.impl.DeclaredTypeFactory.createType(DeclaredTypeFactory.java:1)
	at org.eclipse.xtext.common.types.access.binary.BinaryClassMirror.initialize(BinaryClassMirror.java:41)
	at org.eclipse.xtext.common.types.access.TypeResource.doLoad(TypeResource.java:115)
	... 54 more
Caused by: java.lang.NullPointerException
	at org.eclipse.xtext.common.types.access.binary.asm.JvmAnnotationReferenceBuilder$1.visitEnd(JvmAnnotationReferenceBuilder.java:81)
	at org.objectweb.asm.ClassReader.a(Unknown Source)
	at org.objectweb.asm.ClassReader.a(Unknown Source)
	at org.objectweb.asm.ClassReader.a(Unknown Source)
	at org.objectweb.asm.ClassReader.accept(Unknown Source)
	at org.objectweb.asm.ClassReader.accept(Unknown Source)
	at org.eclipse.xtext.common.types.access.binary.asm.JvmDeclaredTypeBuilder.buildType(JvmDeclaredTypeBuilder.java:71)
	at org.eclipse.xtext.common.types.access.impl.DeclaredTypeFactory.doCreateType(DeclaredTypeFactory.java:112)
	at org.eclipse.xtext.common.types.access.impl.DeclaredTypeFactory.createType(DeclaredTypeFactory.java:92)
	... 57 more
[ERROR] resource is empty: java:/Objects/com.Section
[ERROR] resolution of uriFragment '|3' failed.
java.lang.IllegalStateException: Resource has not been loaded
	at org.eclipse.xtext.common.types.access.impl.ClasspathTypeProvider.findTypeByClass(ClasspathTypeProvider.java:265)
	at org.eclipse.xtext.common.types.access.impl.ClasspathTypeProvider.findTypeByClass(ClasspathTypeProvider.java:213)
	at org.eclipse.xtext.common.types.access.impl.ClasspathTypeProvider.doFindTypeByName(ClasspathTypeProvider.java:197)
	at org.eclipse.xtext.common.types.access.impl.ClasspathTypeProvider.findTypeByName(ClasspathTypeProvider.java:189)
	at org.eclipse.xtext.common.types.xtext.AbstractTypeScope.getSingleElement(AbstractTypeScope.java:60)
	at org.eclipse.xtext.common.types.xtext.AbstractTypeScope.getSingleElement(AbstractTypeScope.java:54)
	at org.eclipse.xtend.core.scoping.RecordingTypeScope.getSingleElement(RecordingTypeScope.java:41)
	at org.eclipse.xtext.scoping.impl.AbstractScope.getSingleElement(AbstractScope.java:105)
	at org.eclipse.xtext.linking.impl.DefaultLinkingService.getLinkedObjects(DefaultLinkingService.java:120)
	at org.eclipse.xtext.linking.lazy.LazyLinkingResource.getEObject(LazyLinkingResource.java:228)
	at org.eclipse.xtext.xbase.resource.BatchLinkableResource.getEObject(BatchLinkableResource.java:105)
	at org.eclipse.emf.ecore.resource.impl.ResourceSetImpl.getEObject(ResourceSetImpl.java:223)
	at org.eclipse.emf.ecore.util.EcoreUtil.resolve(EcoreUtil.java:202)
	at org.eclipse.emf.ecore.util.EcoreUtil.resolve(EcoreUtil.java:258)
	at org.eclipse.emf.ecore.impl.BasicEObjectImpl.eResolveProxy(BasicEObjectImpl.java:1473)
	at org.eclipse.xtext.xtype.impl.XImportDeclarationImpl.getImportedType(XImportDeclarationImpl.java:188)
	at org.eclipse.xtext.xtype.impl.XImportDeclarationImpl.eGet(XImportDeclarationImpl.java:283)
	at org.eclipse.emf.ecore.impl.BasicEObjectImpl.eGet(BasicEObjectImpl.java:1011)
	at org.eclipse.emf.ecore.impl.BasicEObjectImpl.eGet(BasicEObjectImpl.java:1003)
	at org.eclipse.emf.ecore.util.EContentsEList$FeatureIteratorImpl.hasNext(EContentsEList.java:403)
	at org.eclipse.emf.ecore.util.EcoreUtil.resolveCrossReferences(EcoreUtil.java:303)
	at org.eclipse.emf.ecore.util.EcoreUtil.resolveAll(EcoreUtil.java:297)
	at org.eclipse.emf.ecore.util.EcoreUtil.resolveAll(EcoreUtil.java:282)
	at org.eclipse.emf.ecore.util.EcoreUtil.resolveAll(EcoreUtil.java:270)
	at org.eclipse.xtend.core.compiler.batch.XtendBatchCompiler.compile(XtendBatchCompiler.java:392)
	at org.eclipse.xtend.maven.AbstractXtendCompilerMojo.compile(AbstractXtendCompilerMojo.java:109)
	at org.eclipse.xtend.maven.XtendCompile.compileSources(XtendCompile.java:66)
	at org.eclipse.xtend.maven.XtendCompile.internalExecute(XtendCompile.java:59)
	at org.eclipse.xtend.maven.AbstractXtendMojo.execute(AbstractXtendMojo.java:39)
	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:606)
	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)
Comment 1 Sebastian Zarnekow CLA 2014-02-17 06:24:08 EST
Any chance to provide a reduced example with such a JAX-B generated class?
Comment 2 Andras Kovi CLA 2014-02-17 07:55:42 EST
Created attachment 240024 [details]
example maven project

Fortunately, I was able to isolate a minimal example.

Just do a mvn install on it.
Comment 3 Sebastian Zarnekow CLA 2014-02-17 08:34:08 EST
Pushed to maintenance and for review on master.
Comment 4 Sebastian Zarnekow CLA 2014-02-17 11:08:13 EST
Fixed
Comment 5 Eclipse Webmaster CLA 2017-10-31 11:24:32 EDT
Requested via bug 522520.

-M.