https://bz.apache.org/bugzilla/show_bug.cgi?id=68983

            Bug ID: 68983
           Summary: POI can't create poifiles sub dir if temp dir is a
                    symlink
           Product: POI
           Version: unspecified
          Hardware: PC
                OS: Linux
            Status: NEW
          Severity: critical
          Priority: P2
         Component: POI Overall
          Assignee: dev@poi.apache.org
          Reporter: jzel...@jzeller.eu
  Target Milestone: ---

POI 5.2.5 changed the implementation of
DefaultTempFileCreationStrategy.createTempFile() from standard IO to NIO:

5.2.3:
        final boolean dirExists = (directory.exists() || directory.mkdirs());

5.2.5:
        dir = Files.createDirectories(dirPath).toFile();

This leads to an NoSuchFileException if tmpdir is a symlink to a writable,
valid directory:

Caused by: java.nio.file.NoSuchFileException:
/my/tmp/poifiles/poi-sxssf-sheet906981841800128924.xml
    at
java.base/sun.nio.fs.UnixException.translateToIOException(UnixException.java:92)
    at
java.base/sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:111)
    at
java.base/sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:116)
    at
java.base/sun.nio.fs.UnixFileSystemProvider.newByteChannel(UnixFileSystemProvider.java:219)
    at java.base/java.nio.file.Files.newByteChannel(Files.java:371)
    at java.base/java.nio.file.Files.createFile(Files.java:648)
    at java.base/java.nio.file.TempFileHelper.create(TempFileHelper.java:137)
    at
java.base/java.nio.file.TempFileHelper.createTempFile(TempFileHelper.java:160)
    at java.base/java.nio.file.Files.createTempFile(Files.java:868)
    at
org.apache.poi.util.DefaultTempFileCreationStrategy.createTempFile(DefaultTempFileCreationStrategy.java:102)
    at org.apache.poi.util.TempFile.createTempFile(TempFile.java:67)
    at
org.apache.poi.xssf.streaming.SheetDataWriter.createTempFile(SheetDataWriter.java:100)
    at
org.apache.poi.xssf.streaming.SheetDataWriter.<init>(SheetDataWriter.java:74)
    at
org.apache.poi.xssf.streaming.SheetDataWriter.<init>(SheetDataWriter.java:84)
    at
org.apache.poi.xssf.streaming.SXSSFWorkbook.createSheetDataWriter(SXSSFWorkbook.java:387)
    at org.apache.poi.xssf.streaming.SXSSFSheet.<init>(SXSSFSheet.java:103)
    at
org.apache.poi.xssf.streaming.SXSSFWorkbook.createAndRegisterSXSSFSheet(SXSSFWorkbook.java:694)


We needed to rollback to 5.2.3 in production to get POI working again.

-- 
You are receiving this mail because:
You are the assignee for the bug.
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@poi.apache.org
For additional commands, e-mail: dev-h...@poi.apache.org

Reply via email to