Mod4j: Modeling for Java using Domain Specific Languages

URISyntaxException thrown when building with Maven on Windows

Details

  • Number of attachments :
    0

Description

When a Mod4j project is build with Maven, an URISyntaxException is thrown, see logging.
This happens when the path to the location of your local maven repository contains spaces.

Workaround:
Choose an alternative location for your local Maven repostirory so that the path doesn't contain spaces.
Add the localRepository element to your local settings.xml as shown in the following example. This issue effects most Windows users, because by default de path to the local Maven repository is to c:\Documents and Settings\username\.m2\repository.

<settings>
    ...
    <!-- Path containing spaces will not work 
    <localRepository>C:\Documents and Settings\username\.m2\repository</localRepository> -->
    
    <!-- Windows users -->
    <localRepository>D:\data\maven\repository</localRepository>

    <!-- Unix users  
    <localRepository>/home/username/.m2/repository</localRepository> -->

4234 INFO WorkflowRunner - --------------------------------------------------------------------------------------
4234 INFO WorkflowRunner - EMF Modeling Workflow Engine 0.7.2, Build v200908120417
4234 INFO WorkflowRunner - (c) 2005-2009 openarchitectureware.org and contributors
4234 INFO WorkflowRunner - --------------------------------------------------------------------------------------
4234 INFO WorkflowRunner - running workflow: jar:file:/C:/Documents and Settings/johan/.m2/repository/org/mod4j/mod4j-businessdomain-generator/1.1.0/m
od4j-businessdomain-generator-1.1.0.jar!/crossx/busmod2crossx.oaw
4234 INFO WorkflowRunner -
5984 INFO StandaloneSetup - Registering platform uri 'C:\jvprojects'
8391 INFO CompositeComponent - ExtIssueReporter: setting up issue logging from within .ext and .xpt files
8391 INFO CompositeComponent - MweReader(busmod2crossx-modelfileReader): loading file from file:/C:/jvprojects/bugtest/MyApplication2-dslModels/src/model/
businessdomain/MyApplication2.busmod
8734 ERROR WorkflowRunner - Error while locating instance
bound to org.eclipse.xtext.parsetree.reconstr.SerializerUtil
for member at org.eclipse.xtext.resource.XtextResource.serializer(XtextResource.java:240)
com.google.inject.ProvisionException: Error while locating instance
bound to org.eclipse.xtext.parsetree.reconstr.SerializerUtil
for member at org.eclipse.xtext.resource.XtextResource.serializer(XtextResource.java:240)
at com.google.inject.InjectorImpl$SingleFieldInjector.inject(InjectorImpl.java:486)
at com.google.inject.ConstructorInjector.construct(ConstructorInjector.java:155)
at com.google.inject.InjectorImpl$ImplicitBinding.get(InjectorImpl.java:1006)
at com.google.inject.BindingBuilderImpl$FactoryProxy.get(BindingBuilderImpl.java:299)
at com.google.inject.InjectorImpl$9$1.call(InjectorImpl.java:708)
at com.google.inject.InjectorImpl.callInContext(InjectorImpl.java:747)
at com.google.inject.InjectorImpl$9.get(InjectorImpl.java:702)
at org.eclipse.xtext.resource.XtextResourceFactory.createResource(XtextResourceFactory.java:19)
at org.eclipse.emf.ecore.resource.impl.ResourceSetImpl.createResource(ResourceSetImpl.java:425)
at org.eclipse.emf.ecore.resource.impl.ResourceSetImpl.demandCreateResource(ResourceSetImpl.java:239)
at org.eclipse.emf.ecore.resource.impl.ResourceSetImpl.getResource(ResourceSetImpl.java:391)
at org.eclipse.xtext.MweReader.invokeInternal(MweReader.java:71)
at org.eclipse.emf.mwe.core.lib.AbstractWorkflowComponent.invoke(AbstractWorkflowComponent.java:124)
at org.eclipse.emf.mwe.core.container.CompositeComponent.internalInvoke(CompositeComponent.java:101)
at org.eclipse.emf.mwe.core.container.CompositeComponent.invoke(CompositeComponent.java:86)
at org.eclipse.emf.mwe.core.WorkflowRunner.executeWorkflow(WorkflowRunner.java:412)
at org.eclipse.emf.mwe.core.WorkflowRunner.run(WorkflowRunner.java:292)
at org.mod4j.dslcommon.openarchitectureware.RunCrossxWorkflow.runWorkflow(RunCrossxWorkflow.java:46)
at org.mod4j.dslcommon.openarchitectureware.CrossxDirectoryVisitor.generateCrossxSymbols(CrossxDirectoryVisitor.java:107)
at org.mod4j.dslcommon.openarchitectureware.CrossxDirectoryVisitor.visitFile(CrossxDirectoryVisitor.java:65)
at org.mod4j.dslcommon.io.DirectoryWalker.walk(DirectoryWalker.java:40)
at org.mod4j.dslcommon.io.DirectoryWalker.walk(DirectoryWalker.java:42)
at org.mod4j.dslcommon.io.DirectoryWalker.walk(DirectoryWalker.java:28)
at org.mod4j.mojo.Mod4jGeneratorMojo.processDslModel(Mod4jGeneratorMojo.java:156)
at org.mod4j.mojo.Mod4jGeneratorMojo.execute(Mod4jGeneratorMojo.java:98)
at org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:483)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:678)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalWithLifecycle(DefaultLifecycleExecutor.java:540)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultLifecycleExecutor.java:519)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures(DefaultLifecycleExecutor.java:371)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(DefaultLifecycleExecutor.java:332)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:181)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:356)
at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:137)
at org.apache.maven.cli.MavenCli.main(MavenCli.java:356)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315)
at org.codehaus.classworlds.Launcher.launch(Launcher.java:255)
at org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:430)
at org.codehaus.classworlds.Launcher.main(Launcher.java:375)
Caused by: com.google.inject.ProvisionException: Error while locating instance
bound to org.eclipse.xtext.parsetree.reconstr.IParseTreeConstructor
for member at org.eclipse.xtext.parsetree.reconstr.SerializerUtil.<init>(SerializerUtil.java:34)
at com.google.inject.InjectorImpl$SingleParameterInjector.inject(InjectorImpl.java:646)
at com.google.inject.InjectorImpl.getParameters(InjectorImpl.java:666)
at com.google.inject.ConstructorInjector.construct(ConstructorInjector.java:140)
at com.google.inject.InjectorImpl$ImplicitBinding.get(InjectorImpl.java:1006)
at com.google.inject.BindingBuilderImpl$ImplicitImplementation.get(BindingBuilderImpl.java:334)
at com.google.inject.InjectorImpl$SingleFieldInjector.inject(InjectorImpl.java:473)
... 42 more
Caused by: com.google.inject.ProvisionException: Error while locating instance
bound to org.eclipse.xtext.conversion.IValueConverterService
for member at org.eclipse.xtext.parsetree.reconstr.impl.AbstractParseTreeConstructor.converterService(AbstractParseTreeConstructor.java:41)
at com.google.inject.InjectorImpl$SingleFieldInjector.inject(InjectorImpl.java:486)
at com.google.inject.ConstructorInjector.construct(ConstructorInjector.java:155)
at com.google.inject.InjectorImpl$ImplicitBinding.get(InjectorImpl.java:1006)
at com.google.inject.BindingBuilderImpl$FactoryProxy.get(BindingBuilderImpl.java:299)
at com.google.inject.InjectorImpl$SingleParameterInjector.inject(InjectorImpl.java:640)
... 47 more
Caused by: java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
at com.google.inject.InjectorImpl$SingleMethodInjector.inject(InjectorImpl.java:578)
at com.google.inject.ConstructorInjector.construct(ConstructorInjector.java:155)
at com.google.inject.InjectorImpl$ImplicitBinding.get(InjectorImpl.java:1006)
at com.google.inject.BindingBuilderImpl$FactoryProxy.get(BindingBuilderImpl.java:299)
at com.google.inject.InjectorImpl$SingleFieldInjector.inject(InjectorImpl.java:473)
... 51 more
Caused by: java.lang.reflect.InvocationTargetException
at $org.eclipse.xtext.common.services.DefaultTerminalConverters$$FastClassByGuice$$8febdc09.invoke(<generated>)
at com.google.inject.cglib.reflect.FastMethod.invoke(FastMethod.java:53)
at com.google.inject.InjectorImpl$SingleMethodInjector$2.invoke(InjectorImpl.java:561)
at com.google.inject.InjectorImpl$SingleMethodInjector.inject(InjectorImpl.java:575)
... 55 more
Caused by: org.eclipse.emf.common.util.WrappedException: org.eclipse.xtext.resource.ClasspathUriResolutionException: java.net.URISyntaxException: Illegal c haracter in opaque part at index 22: jar:file:/C:/Documents and Settings/johan/.m2/repository/org/mod4j/mod4j-businessdomain-xtext/1.1.0/mod4j-businessdoma
in-xtext-1.1.0.jar!/org/mod4j/dsl/businessdomain/xtext/BusinessDomain.xmi
at org.eclipse.xtext.parser.BaseEPackageAccess.loadResource(BaseEPackageAccess.java:57)
at org.eclipse.xtext.parser.BaseEPackageAccess.loadGrammarFile(BaseEPackageAccess.java:44)
at org.eclipse.xtext.service.GrammarProvider.getGrammar(GrammarProvider.java:49)
at org.mod4j.dsl.businessdomain.xtext.services.BusinessDomainGrammarAccess.getGrammar(BusinessDomainGrammarAccess.java:1253)
at org.eclipse.xtext.common.services.DefaultTerminalConverters.setGrammar(DefaultTerminalConverters.java:32)
... 59 more
Caused by: org.eclipse.xtext.resource.ClasspathUriResolutionException: java.net.URISyntaxException: Illegal character in opaque part at index 22: jar:file:
/C:/Documents and Settings/johan/.m2/repository/org/mod4j/mod4j-businessdomain-xtext/1.1.0/mod4j-businessdomain-xtext-1.1.0.jar!/org/mod4j/dsl/businessdoma
in/xtext/BusinessDomain.xmi
at org.eclipse.xtext.resource.ClassloaderClasspathUriResolver.resolve(ClassloaderClasspathUriResolver.java:48)
at org.eclipse.xtext.resource.XtextResourceSet.resolveClasspathURI(XtextResourceSet.java:35)
at org.eclipse.xtext.resource.XtextResourceSet.access$0(XtextResourceSet.java:34)
at org.eclipse.xtext.resource.XtextResourceSet$1.normalize(XtextResourceSet.java:53)
at org.eclipse.emf.ecore.resource.impl.ResourceSetImpl.getResource(ResourceSetImpl.java:361)
at org.eclipse.xtext.parser.BaseEPackageAccess.loadResource(BaseEPackageAccess.java:52)
... 63 more
Caused by: java.net.URISyntaxException: Illegal character in opaque part at index 22: jar:file:/C:/Documents and Settings/johan/.m2/repository/org/mod4j/mo
d4j-businessdomain-xtext/1.1.0/mod4j-businessdomain-xtext-1.1.0.jar!/org/mod4j/dsl/businessdomain/xtext/BusinessDomain.xmi
at java.net.URI$Parser.fail(URI.java:2809)
at java.net.URI$Parser.checkChars(URI.java:2982)
at java.net.URI$Parser.parse(URI.java:3019)
at java.net.URI.<init>(URI.java:578)
at java.net.URL.toURI(URL.java:918)
at org.eclipse.xtext.resource.ClassloaderClasspathUriResolver.findResourceOnClasspath(ClassloaderClasspathUriResolver.java:61)
at org.eclipse.xtext.resource.ClassloaderClasspathUriResolver.resolve(ClassloaderClasspathUriResolver.java:45)
... 68 more
[INFO] ------------------------------------------------------------------------
[ERROR] BUILD FAILURE
[INFO] ------------------------------------------------------------------------

Activity

Hide
Johan Vogelzang added a comment -

Reported this issue at the Eclipse TMF Xtext project: https://bugs.eclipse.org/bugs/show_bug.cgi?id=293760

Show
Johan Vogelzang added a comment - Reported this issue at the Eclipse TMF Xtext project: https://bugs.eclipse.org/bugs/show_bug.cgi?id=293760
Hide
Johan Vogelzang added a comment -

This issue is fixed in the TMF Xtext project. So we need to upgrade to the next release of TMF Xtext.

Show
Johan Vogelzang added a comment - This issue is fixed in the TMF Xtext project. So we need to upgrade to the next release of TMF Xtext.

People

Vote (0)
Watch (0)

Dates

  • Created:
    Updated: