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

Filipe Roque commented on SUREFIRE-2233:
----------------------------------------

{code:java}
❯ cat target/surefire-reports/2024-01-15T22-47-50_794-jvmRun1.dumpstream 
# Created at 2024-01-15T22:47:51.248
ForkStarter IOException: Unable to create file for report: 
/home/froque/workspace/testes/long-filenames/target/surefire-reports/package1.subpackage2.subpackage3.subpackage4.subpackage5.subpackage6.subpackage7.TestWithAVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryLongFileName.txt
 (File name too long).
org.apache.maven.plugin.surefire.booterclient.output.MultipleFailureException: 
Unable to create file for report: 
/home/froque/workspace/testes/long-filenames/target/surefire-reports/package1.subpackage2.subpackage3.subpackage4.subpackage5.subpackage6.subpackage7.TestWithAVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryLongFileName.txt
 (File name too long)
    at 
org.apache.maven.plugin.surefire.booterclient.output.ThreadedStreamConsumer$Pumper.<init>(ThreadedStreamConsumer.java:59)
    at 
org.apache.maven.plugin.surefire.booterclient.output.ThreadedStreamConsumer.<init>(ThreadedStreamConsumer.java:107)
    at 
org.apache.maven.plugin.surefire.booterclient.ForkStarter.fork(ForkStarter.java:546)
    at 
org.apache.maven.plugin.surefire.booterclient.ForkStarter.run(ForkStarter.java:285)
    at 
org.apache.maven.plugin.surefire.booterclient.ForkStarter.run(ForkStarter.java:250)
    at 
org.apache.maven.plugin.surefire.AbstractSurefireMojo.executeProvider(AbstractSurefireMojo.java:1241)
    at 
org.apache.maven.plugin.surefire.AbstractSurefireMojo.executeAfterPreconditionsChecked(AbstractSurefireMojo.java:1090)
    at 
org.apache.maven.plugin.surefire.AbstractSurefireMojo.execute(AbstractSurefireMojo.java:910)
    at 
org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:126)
    at 
org.apache.maven.lifecycle.internal.MojoExecutor.doExecute2(MojoExecutor.java:328)
    at 
org.apache.maven.lifecycle.internal.MojoExecutor.doExecute(MojoExecutor.java:316)
    at 
org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:212)
    at 
org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:174)
    at 
org.apache.maven.lifecycle.internal.MojoExecutor.access$000(MojoExecutor.java:75)
    at 
org.apache.maven.lifecycle.internal.MojoExecutor$1.run(MojoExecutor.java:162)
    at 
org.apache.maven.plugin.DefaultMojosExecutionStrategy.execute(DefaultMojosExecutionStrategy.java:39)
    at 
org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:159)
    at 
org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:105)
    at 
org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:73)
    at 
org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:53)
    at 
org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:118)
    at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:261)
    at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:173)
    at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:101)
    at org.apache.maven.cli.MavenCli.execute(MavenCli.java:906)
    at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:283)
    at org.apache.maven.cli.MavenCli.main(MavenCli.java:206)
    at 
java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
    at java.base/java.lang.reflect.Method.invoke(Method.java:580)
    at 
org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:283)
    at 
org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:226)
    at 
org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:407)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:348)
    Suppressed: org.apache.maven.surefire.api.report.ReporterException: Unable 
to create file for report: 
/home/froque/workspace/testes/long-filenames/target/surefire-reports/package1.subpackage2.subpackage3.subpackage4.subpackage5.subpackage6.subpackage7.TestWithAVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryLongFileName.txt
 (File name too long)
        at 
org.apache.maven.plugin.surefire.report.FileReporter.testSetCompleted(FileReporter.java:98)
        at 
org.apache.maven.plugin.surefire.report.FileReporter.testSetCompleted(FileReporter.java:42)
        at 
org.apache.maven.plugin.surefire.report.TestSetRunListener.testSetCompleted(TestSetRunListener.java:192)
        at 
org.apache.maven.plugin.surefire.booterclient.output.ForkClient$TestSetCompletedListener.handle(ForkClient.java:143)
        at 
org.apache.maven.plugin.surefire.booterclient.output.ForkClient$TestSetCompletedListener.handle(ForkClient.java:127)
        at 
org.apache.maven.plugin.surefire.booterclient.output.ForkedProcessEventNotifier.notifyEvent(ForkedProcessEventNotifier.java:197)
        at 
org.apache.maven.plugin.surefire.booterclient.output.ForkClient.handleEvent(ForkClient.java:303)
        at 
org.apache.maven.plugin.surefire.booterclient.output.ForkClient.handleEvent(ForkClient.java:59)
        at 
org.apache.maven.plugin.surefire.booterclient.output.ThreadedStreamConsumer$Pumper.run(ThreadedStreamConsumer.java:86)
        at java.base/java.lang.Thread.run(Thread.java:1583)
    Caused by: java.io.FileNotFoundException: 
/home/froque/workspace/testes/long-filenames/target/surefire-reports/package1.subpackage2.subpackage3.subpackage4.subpackage5.subpackage6.subpackage7.TestWithAVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryLongFileName.txt
 (File name too long)
        at java.base/java.io.FileOutputStream.open0(Native Method)
        at java.base/java.io.FileOutputStream.open(FileOutputStream.java:289)
        at java.base/java.io.FileOutputStream.<init>(FileOutputStream.java:230)
        at java.base/java.io.FileOutputStream.<init>(FileOutputStream.java:179)
        at 
org.apache.maven.plugin.surefire.report.FileReporter.createFileReporterWriter(FileReporter.java:104)
        at 
org.apache.maven.plugin.surefire.report.FileReporter.testSetCompleted(FileReporter.java:80)
        ... 9 more {code}

>  Unable to create file for report (File name too long)
> ------------------------------------------------------
>
>                 Key: SUREFIRE-2233
>                 URL: https://issues.apache.org/jira/browse/SUREFIRE-2233
>             Project: Maven Surefire
>          Issue Type: Bug
>    Affects Versions: 3.2.5
>         Environment: Linux with encripted home using ecryptfs
>            Reporter: Filipe Roque
>            Priority: Major
>
> surefire tries to create report files where the filename includes the package.
> On Linux with eCryptfs, it easily fails with _File name too long_ ([What is 
> the maximum allowed filename (and folder) size with 
> eCryptfs?|https://unix.stackexchange.com/questions/32795/what-is-the-maximum-allowed-filename-and-folder-size-with-ecryptfs/32834]),
>  without failing the maven build.
>  
>  * Should this error fail the build ?
>  * What is the solution for this, besides shorter packages and file names, or 
> non encrypted file systems ?
>  ** Maybe create sub directories under target/surefire-reports matching the 
> packages
>  ** shorten the filename like logback 
> ([https://logback.qos.ch/manual/layouts.html#conversionWord])
>  
> *pom.xml*
> {code:java}
> <?xml version="1.0" encoding="UTF-8"?>
> <project xmlns="http://maven.apache.org/POM/4.0.0";
>   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
>   xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
> http://maven.apache.org/xsd/maven-4.0.0.xsd";>
>   <modelVersion>4.0.0</modelVersion>
>   <groupId>org.example</groupId>
>   <artifactId>long-filenames</artifactId>
>   <version>1.0-SNAPSHOT</version>
>   <properties>
>    <maven.compiler.source>21</maven.compiler.source>
>    <maven.compiler.target>21</maven.compiler.target>
>    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
>   </properties>
>   <dependencies>
>    <dependency>
>     <groupId>org.junit.jupiter</groupId>
>     <artifactId>junit-jupiter-api</artifactId>
>     <version>5.10.1</version>
>     <scope>test</scope>
>    </dependency>
>   </dependencies>
>   <build>
>    <plugins>
>     <plugin>
>      <groupId>org.apache.maven.plugins</groupId>
>      <artifactId>maven-surefire-plugin</artifactId>
>      <version>3.2.5</version>
>     </plugin>
>    </plugins>
>   </build>
> </project>
>  {code}
> {*}src/test/java/package1/subpackage2/subpackage3/subpackage4/subpackage5/subpackage6/subpackage7/TestWithAVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryLongFileName.java{*}{*}{{*}}
>  
> {code:java}
> package 
> package1.subpackage2.subpackage3.subpackage4.subpackage5.subpackage6.subpackage7;
> import org.junit.jupiter.api.Assertions;
> import org.junit.jupiter.api.Test;
> public class 
> TestWithAVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryLongFileName {
>     @Test
>     public void test() {
>        Assertions.assertTrue(true);
>     }
> }
> {code}
>  
>  
>  
>  
> {code:java}
> ❯ /opt/maven/apache-maven-3.9.5/bin/mvn clean test 
> [INFO] Scanning for projects...
> [INFO] 
> [INFO] ---------------------< org.example:long-filenames 
> >---------------------
> [INFO] Building long-filenames 1.0-SNAPSHOT
> [INFO]   from pom.xml
> [INFO] --------------------------------[ jar 
> ]---------------------------------
> [INFO] 
> [INFO] --- clean:3.2.0:clean (default-clean) @ long-filenames ---
> [INFO] Deleting /home/froque/workspace/testes/long-filenames/target
> [INFO] 
> [INFO] --- resources:3.3.1:resources (default-resources) @ long-filenames ---
> [INFO] Copying 0 resource from src/main/resources to target/classes
> [INFO] 
> [INFO] --- compiler:3.11.0:compile (default-compile) @ long-filenames ---
> [INFO] Nothing to compile - all classes are up to date
> [INFO] 
> [INFO] --- resources:3.3.1:testResources (default-testResources) @ 
> long-filenames ---
> [INFO] skip non existing resourceDirectory 
> /home/froque/workspace/testes/long-filenames/src/test/resources
> [INFO] 
> [INFO] --- compiler:3.11.0:testCompile (default-testCompile) @ long-filenames 
> ---
> [INFO] Changes detected - recompiling the module! :source
> [INFO] Compiling 1 source file with javac [debug target 21] to 
> target/test-classes
> [INFO] 
> [INFO] --- surefire:3.2.5:test (default-test) @ long-filenames ---
> [INFO] Using auto detected provider 
> org.apache.maven.surefire.junitplatform.JUnitPlatformProvider
> [INFO] 
> [INFO] -------------------------------------------------------
> [INFO]  T E S T S
> [INFO] -------------------------------------------------------
> [INFO] Running 
> package1.subpackage2.subpackage3.subpackage4.subpackage5.subpackage6.subpackage7.TestWithAVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryLongFileName
> [WARNING] ForkStarter IOException: Unable to create file for report: 
> /home/froque/workspace/testes/long-filenames/target/surefire-reports/package1.subpackage2.subpackage3.subpackage4.subpackage5.subpackage6.subpackage7.TestWithAVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryLongFileName.txt
>  (File name too long). See the dump file 
> /home/froque/workspace/testes/long-filenames/target/surefire-reports/2024-01-15T22-47-50_794-jvmRun1.dumpstream
> [INFO] 
> [INFO] Results:
> [INFO] 
> [INFO] Tests run: 0, Failures: 0, Errors: 0, Skipped: 0
> [INFO] 
> [INFO] 
> ------------------------------------------------------------------------
> [INFO] BUILD SUCCESS
> [INFO] 
> ------------------------------------------------------------------------
> [INFO] Total time:  1.564 s
> [INFO] Finished at: 2024-01-15T22:47:51Z
> [INFO] 
> ------------------------------------------------------------------------
>  {code}
>  
>  



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to