You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@poi.apache.org by fa...@apache.org on 2021/11/04 18:30:31 UTC
svn commit: r1894738 - in
/poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xssf/usermodel:
BaseXSSFEvaluationWorkbook.java XSSFTable.java
Author: fanningpj
Date: Thu Nov 4 18:30:31 2021
New Revision: 1894738
URL: http://svn.apache.org/viewvc?rev=1894738&view=rev
Log:
CaseInsensitiveMap is not thread-safe
Modified:
poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xssf/usermodel/BaseXSSFEvaluationWorkbook.java
poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xssf/usermodel/XSSFTable.java
Modified: poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xssf/usermodel/BaseXSSFEvaluationWorkbook.java
URL: http://svn.apache.org/viewvc/poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xssf/usermodel/BaseXSSFEvaluationWorkbook.java?rev=1894738&r1=1894737&r2=1894738&view=diff
==============================================================================
--- poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xssf/usermodel/BaseXSSFEvaluationWorkbook.java (original)
+++ poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xssf/usermodel/BaseXSSFEvaluationWorkbook.java Thu Nov 4 18:30:31 2021
@@ -19,8 +19,8 @@ package org.apache.poi.xssf.usermodel;
import java.util.List;
import java.util.Map;
+import java.util.concurrent.ConcurrentSkipListMap;
-import org.apache.commons.collections4.map.CaseInsensitiveMap;
import org.apache.poi.ss.SpreadsheetVersion;
import org.apache.poi.ss.formula.EvaluationName;
import org.apache.poi.ss.formula.EvaluationWorkbook;
@@ -364,7 +364,7 @@ public abstract class BaseXSSFEvaluation
if ( _tableCache != null ) {
return _tableCache;
}
- _tableCache = new CaseInsensitiveMap<>();
+ _tableCache = new ConcurrentSkipListMap<>(String.CASE_INSENSITIVE_ORDER);
for (Sheet sheet : _uBook) {
for (XSSFTable tbl : ((XSSFSheet)sheet).getTables()) {
Modified: poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xssf/usermodel/XSSFTable.java
URL: http://svn.apache.org/viewvc/poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xssf/usermodel/XSSFTable.java?rev=1894738&r1=1894737&r2=1894738&view=diff
==============================================================================
--- poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xssf/usermodel/XSSFTable.java (original)
+++ poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xssf/usermodel/XSSFTable.java Thu Nov 4 18:30:31 2021
@@ -26,8 +26,8 @@ import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
+import java.util.concurrent.ConcurrentSkipListMap;
-import org.apache.commons.collections4.map.CaseInsensitiveMap;
import org.apache.poi.ooxml.POIXMLDocumentPart;
import org.apache.poi.openxml4j.opc.PackagePart;
import org.apache.poi.ss.SpreadsheetVersion;
@@ -59,7 +59,7 @@ public class XSSFTable extends POIXMLDoc
private CTTable ctTable;
private transient List<XSSFXmlColumnPr> xmlColumnPrs;
private transient List<XSSFTableColumn> tableColumns;
- private transient CaseInsensitiveMap<String, Integer> columnMap;
+ private transient ConcurrentSkipListMap<String, Integer> columnMap;
private transient CellReference startCellReference;
private transient CellReference endCellReference;
private transient String commonXPath;
@@ -831,8 +831,7 @@ public class XSSFTable extends POIXMLDoc
public int findColumnIndex(String columnHeader) {
if (columnHeader == null) return -1;
if (columnMap == null) {
- final int count = getColumnCount();
- columnMap = new CaseInsensitiveMap<>(count * 3 / 2);
+ columnMap = new ConcurrentSkipListMap<>(String.CASE_INSENSITIVE_ORDER);
int i = 0;
for (XSSFTableColumn column : getColumns()) {
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@poi.apache.org
For additional commands, e-mail: commits-help@poi.apache.org