ConcurrentModificationException при использовании createDrawingPatriarch () в Apache POI - PullRequest
0 голосов
/ 30 июня 2018

Вот эта вещь.

Я использую Apache POI для управления файлами Excel для моего приложения. Когда мне нужно добавить комментарий к ячейке, POI предоставляет sheet.createDrawingPatriarch () для получения базового объекта для дальнейшего использования.

Но когда я запустил свое приложение, JVM выдало исключение.

java.util.ConcurrentModificationException
    at java.util.ArrayList$Itr.checkForComodification(ArrayList.java:901)
    at java.util.ArrayList$Itr.next(ArrayList.java:851)
    at org.apache.poi.hssf.model.InternalWorkbook.findDrawingGroup(InternalWorkbook.java:2229)
    at org.apache.poi.hssf.usermodel.HSSFSheet.getPatriarch(HSSFSheet.java:2044)
    at org.apache.poi.hssf.usermodel.HSSFSheet.createDrawingPatriarch(HSSFSheet.java:2036)
    at org.apache.poi.hssf.usermodel.HSSFSheet.createDrawingPatriarch(HSSFSheet.java:83)
    at utility.BasicUtility.smellyCellMark(BasicUtility.java:608)
    at programEntry.TestWorksheet.testWorksheet(TestWorksheet.java:246)
    at programEntry.TestWorksheet.run(TestWorksheet.java:72)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:748)

Я искал соответствующие основные причины, приведшие к этому исключению. Но в моем приложении я только что вызвал два метода, предоставленных POI.

CreationHelper factory = sheet.getWorkbook().getCreationHelper();
Drawing drawing        = sheet.createDrawingPatriarch();  // 1, exception reported from here.
ClientAnchor anchor    = factory.createClientAnchor();
Comment comment        = drawing.createCellComment(anchor);  // 2

Я думаю, что это может быть потенциальная ошибка в библиотеке Apache POI, но я не знал, как избежать или исправить это исключение в моем приложении. Любой совет? При необходимости я могу предоставить больше информации для отладки.

Любой совет?

...