[ 
https://issues.apache.org/jira/browse/GROOVY-8295?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16287938#comment-16287938
 ] 

Eric Milles commented on GROOVY-8295:
-------------------------------------

Paul, thanks for the extra effort.  I'm going to take a look at the current 
fix.  Also, we are running into a build issue with the fix as deployed in 
2.4.13.  We have a chained build and I think the project basedir and the 
working dir of the compiler are different.  I'll let you know when I have a bit 
more info.

> Groovyc ant task can overflow Windows command line if classpath is large
> ------------------------------------------------------------------------
>
>                 Key: GROOVY-8295
>                 URL: https://issues.apache.org/jira/browse/GROOVY-8295
>             Project: Groovy
>          Issue Type: Bug
>          Components: Ant integration
>         Environment: Windows
>            Reporter: Eric Milles
>            Assignee: Paul King
>             Fix For: 2.4.14
>
>         Attachments: Groovyc.patch
>
>
> The groovyc ant adapter tries to account for the 32K command line length 
> limit on windows in its addSourceFiles method.  However, if the command line 
> gets long for other reasons -- we include a number of libraries in our 
> compiled projects -- the command line can still be overflown.
> This results in:
> {code}
> CompileAntScript.xml:129: Error running forked groovyc.
>       at org.codehaus.groovy.ant.Groovyc.runForked(Groovyc.java:1121)
>       at org.codehaus.groovy.ant.Groovyc.compile(Groovyc.java:1214)
>       at org.codehaus.groovy.ant.Groovyc.execute(Groovyc.java:831)
> Caused by: java.io.IOException: Cannot run program "C:\Program 
> Files\Java\jdk1.8.0_60\jre\bin\java": CreateProcess error=206, The filename 
> or extension is too long
>       at java.lang.ProcessBuilder.start(ProcessBuilder.java:1048)
>       at java.lang.Runtime.exec(Runtime.java:620)
>       at 
> org.apache.tools.ant.taskdefs.Execute$Java13CommandLauncher.exec(Execute.java:862)
>       at org.apache.tools.ant.taskdefs.Execute.launch(Execute.java:481)
>       at org.apache.tools.ant.taskdefs.Execute.execute(Execute.java:495)
>       at org.codehaus.groovy.ant.Groovyc.runForked(Groovyc.java:1119)
>       ... 31 more
> Caused by: java.io.IOException: CreateProcess error=206, The filename or 
> extension is too long
>       at java.lang.ProcessImpl.create(Native Method)
>       at java.lang.ProcessImpl.<init>(ProcessImpl.java:386)
>       at java.lang.ProcessImpl.start(ProcessImpl.java:137)
>       at java.lang.ProcessBuilder.start(ProcessBuilder.java:1029)
>       ... 36 more
> {code}
> Would it be possible to add command line length checking to {{runForked}} 
> instead of {{addSourceFiles}} and use a command file for groovyc to prevent 
> command line overflow?  Without this, we are having to use a lot of verbose 
> workarounds in Ant.
> https://github.com/apache/groovy/blob/master/subprojects/groovy-ant/src/main/java/org/codehaus/groovy/ant/Groovyc.java



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to