JVM is crashing while trying to write to the .xlsx file. I am using POI(XSSF) for the same.
The error location point in code is the write method--> workBook.write(fileOutputStream);
On Console I get..
A fatal error has been detected by the Java Runtime Environment:
SIGBUS (0x7) at pc=0xb68d77f3, pid=14653, tid=1849355120
JRE version: 7.0_04-b20
Java VM: Java HotSpot(TM) Server VM (23.0-b21 mixed mode linux-x86 )
Problematic frame:
C [libzip.so+0x47f3] newEntry+0x73
Failed to write core dump. Core dumps have been disabled. To enable core dumping, try "ulimit -c unlimited" before starting Java again
If you would like to submit a bug report, please visit:
http://bugreport.sun.com/bugreport/crash.jsp
The crash happened outside the Java Virtual Machine in native code.
See problematic frame for where to report the bug.
Using
OPCPackage
did not fix the JVM crash for me but usingWorkbookFactory
did. If you look at the POI Busy Developers Guide they provide example of reading and writing the same Excel file.Using Apache POI version 3.13, Java 1.8
The solution I've found for this, and I've been looking for a while, is to make sure you don't open your
Workbook
with theFile
which you use to open theFileOutputStream
to save theWorkbook
. Instead, use aFileInputStream
to open theWorkbook
.Something like this will work flawlessly
Don't forget to close every opened stream and the
OPCPackage
.None of the other solutions worked for me. I only needed readonly access to my Excel files, and setting the readonly flags worked for me: