Вот эта вещь.
Я использую 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, но я не знал, как избежать или исправить это исключение в моем приложении. Любой совет? При необходимости я могу предоставить больше информации для отладки.
Любой совет?