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: [email protected]
Reporter: [email protected]
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: [email protected]
For additional commands, e-mail: [email protected]