WorkbookFactory.create抛出ClosedByInterruptException

时间:2017-03-16 09:16:39

标签: apache-poi

我有一个多线程的java应用程序,它产生的线程与在某个时刻完成的报告一样多。在流程结束时,我使用带有WorkbookFactory.create(file)的Apache POI(3.15)生成Excel文件,其中file是我用来创建全新Excel文件的空模板。 使用特定的密集型报告(生成需要数小时),当代码到达此点时,它会抛出此异常:

Caused by: java.nio.channels.ClosedByInterruptException
    at java.nio.channels.spi.AbstractInterruptibleChannel.end(AbstractInterruptibleChannel.java:202)
    at sun.nio.ch.FileChannelImpl.read(FileChannelImpl.java:163)
    at org.apache.poi.util.IOUtils.readFully(IOUtils.java:164)
    at org.apache.poi.poifs.filesystem.NPOIFSFileSystem.<init>(NPOIFSFileSystem.java:229)
    at org.apache.poi.poifs.filesystem.NPOIFSFileSystem.<init>(NPOIFSFileSystem.java:168)
    at org.apache.poi.ss.usermodel.WorkbookFactory.create(WorkbookFactory.java:250)
    at org.apache.poi.ss.usermodel.WorkbookFactory.create(WorkbookFactory.java:222)
    at org.apache.poi.ss.usermodel.WorkbookFactory.create(WorkbookFactory.java:201)
    at it.habble.report.designers.InvoiceCheckDesigner.<init>(InvoiceCheckDesigner.java:87)

我在某处读过可能与limits.conf文件有关的内容。你对如何调查这个有什么建议吗?当前值:

[user@localhost ~]$ ulimit -a
core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 191942
max locked memory       (kbytes, -l) 64
max memory size         (kbytes, -m) unlimited
open files                      (-n) 8192
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 10240
cpu time               (seconds, -t) unlimited
max user processes              (-u) 2048
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited

0 个答案:

没有答案