[ 
https://issues.apache.org/jira/browse/CXF-5403?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Daniel Kulp resolved CXF-5403.
------------------------------

       Resolution: Duplicate
    Fix Version/s: 2.7.8
         Assignee: Daniel Kulp

> wsdl2java generating file names that are too long for encrypted filesystem
> --------------------------------------------------------------------------
>
>                 Key: CXF-5403
>                 URL: https://issues.apache.org/jira/browse/CXF-5403
>             Project: CXF
>          Issue Type: Bug
>          Components: Tooling
>    Affects Versions: 2.7.7
>         Environment: Linux Mint 15, EcryptFS
>            Reporter: Andrew
>            Assignee: Daniel Kulp
>              Labels: maven
>             Fix For: 2.7.8
>
>
> When using the CXF Codegen Maven plugin, and the wsdl2java goal, I get the 
> following exception:
> {noformat}
> [WARNING] Could not create marker file 
> /home/andrew/workspace/XXXX/xxxx-interfaces-esb-parent/xxxx-interfaces-client/target/cxf-codegen-plugin-markers/.file__home_andrew_workspace_XXXX_xxxx-interfaces-esb-parent_xxxx-interfaces-webservice_target_classes_META-INF_wsdl_XXXXInterfaces.wsdl.java.DONE
> [DEBUG] 
> java.io.IOException: File name too long
>       at java.io.UnixFileSystem.createFileExclusively(Native Method)
>       at java.io.File.createNewFile(File.java:947)
>       at 
> org.apache.cxf.maven_plugin.wsdl2java.WSDL2JavaMojo.createMarkerFile(WSDL2JavaMojo.java:271)
>       at 
> org.apache.cxf.maven_plugin.wsdl2java.WSDL2JavaMojo.generate(WSDL2JavaMojo.java:453)
>       at 
> org.apache.cxf.maven_plugin.AbstractCodegenMoho.execute(AbstractCodegenMoho.java:310)
>       at 
> org.apache.cxf.maven_plugin.wsdl2java.WSDL2JavaMojo.execute(WSDL2JavaMojo.java:524)
>       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)
> {noformat}
> The reason for this is that I've encrypted my home directory with EcryptFS, 
> but (unknown to me at the time) it does not support file names which are 
> longer than 143 characters, and will not in the foreseeable future (as per 
> https://bugs.launchpad.net/ecryptfs/+bug/344878).
> Is there any way to do something about the file name being generated by CXF 
> in this instance? Surely it doesn't need to duplicate the whole path in the 
> file name? And if it does, wouldn't it make more sense to hash it and include 
> the hash instead of the path? e.g. a SHA512 hash would be a fixed 128 
> characters, plus 5 for the ".DONE" suffix makes 133, which is within the 143 
> characters I'm allowed...
> That would also guard against the possibility  of the name exceeding 255 
> characters, which, while less likely, is still quite possible if you're going 
> to store the whole path in the file name.
> This does mean that I have to be *very* careful about the naming of my 
> projects if I want to get the WSDL generator to work, which isn't an awful 
> lot of fun.
> It's also eating the actual error, as you will note that the exception is 
> above is only being output at DEBUG level. The actual exception I see when I 
> run mvn -e is:
> {noformat}
> [ERROR] Failed to execute goal 
> org.apache.cxf:cxf-codegen-plugin:2.7.7:wsdl2java (generate-sources) on 
> project xxxx-interfaces-client: Failed to create marker file 
> /home/andrew/workspace/XXXX/xxxx-interfaces-esb-parent/xxxx-interfaces-client/target/cxf-codegen-plugin-markers/.file__home_andrew_workspace_XXXX_xxxx-interfaces-esb-parent_xxxx-interfaces-webservice_target_classes_META-INF_wsdl_XXXXInterfaces.wsdl.java.DONE
>  -> [Help 1]
> org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute 
> goal org.apache.cxf:cxf-codegen-plugin:2.7.7:wsdl2java (generate-sources) on 
> project xxxx-interfaces-client: Failed to create marker file 
> /home/andrew/workspace/XXXX/xxxx-interfaces-esb-parent/xxxx-interfaces-client/target/cxf-codegen-plugin-markers/.file__home_andrew_workspace_XXXX_xxxx-interfaces-esb-parent_xxxx-interfaces-webservice_target_classes_META-INF_wsdl_XXXXInterfaces.wsdl.java.DONE
>       at 
> org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:217)
>       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.apache.maven.plugin.MojoExecutionException: Failed to create 
> marker file 
> /home/andrew/workspace/XXXX/xxxx-interfaces-esb-parent/xxxx-interfaces-client/target/cxf-codegen-plugin-markers/.file__home_andrew_workspace_XXXX_xxxx-interfaces-esb-parent_xxxx-interfaces-webservice_target_classes_META-INF_wsdl_XXXXInterfaces.wsdl.java.DONE
>       at 
> org.apache.cxf.maven_plugin.wsdl2java.WSDL2JavaMojo.generate(WSDL2JavaMojo.java:458)
>       at 
> org.apache.cxf.maven_plugin.AbstractCodegenMoho.execute(AbstractCodegenMoho.java:310)
>       at 
> org.apache.cxf.maven_plugin.wsdl2java.WSDL2JavaMojo.execute(WSDL2JavaMojo.java:524)
>       at 
> org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:101)
>       at 
> org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:209)
>       ... 19 more
> {noformat}
> Which is not particularly helpful.



--
This message was sent by Atlassian JIRA
(v6.1#6144)

Reply via email to