Author: fanningpj
Date: Tue Oct 15 16:13:17 2024
New Revision: 1921338
URL: http://svn.apache.org/viewvc?rev=1921338&view=rev
Log:
try to make ExcelAntWorkbookUtilFactory thread safe
Modified:
poi/trunk/poi-excelant/src/main/java/org/apache/poi/ss/excelant/util/ExcelAntWorkbookUtilFactory.java
poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xwpf/usermodel/VerticalAlign.java
Modified:
poi/trunk/poi-excelant/src/main/java/org/apache/poi/ss/excelant/util/ExcelAntWorkbookUtilFactory.java
URL:
http://svn.apache.org/viewvc/poi/trunk/poi-excelant/src/main/java/org/apache/poi/ss/excelant/util/ExcelAntWorkbookUtilFactory.java?rev=1921338&r1=1921337&r2=1921338&view=diff
==============================================================================
---
poi/trunk/poi-excelant/src/main/java/org/apache/poi/ss/excelant/util/ExcelAntWorkbookUtilFactory.java
(original)
+++
poi/trunk/poi-excelant/src/main/java/org/apache/poi/ss/excelant/util/ExcelAntWorkbookUtilFactory.java
Tue Oct 15 16:13:17 2024
@@ -27,7 +27,7 @@ import java.util.Map;
*/
public final class ExcelAntWorkbookUtilFactory {
- private static Map<String, ExcelAntWorkbookUtil> workbookUtilMap;
+ private static final Map<String, ExcelAntWorkbookUtil> workbookUtilMap =
new HashMap<>();
private ExcelAntWorkbookUtilFactory() {
}
@@ -41,16 +41,14 @@ public final class ExcelAntWorkbookUtilF
* a freshly instantiated one if none did exist before.
*/
public static ExcelAntWorkbookUtil getInstance(String fileName) {
- if(workbookUtilMap == null) {
- workbookUtilMap = new HashMap<>();
- }
+ synchronized (workbookUtilMap) {
+ if(workbookUtilMap.containsKey(fileName)) {
+ return workbookUtilMap.get(fileName);
+ }
- if(workbookUtilMap.containsKey(fileName)) {
- return workbookUtilMap.get(fileName);
+ ExcelAntWorkbookUtil wbu = new ExcelAntWorkbookUtil(fileName);
+ workbookUtilMap.put(fileName, wbu);
+ return wbu;
}
-
- ExcelAntWorkbookUtil wbu = new ExcelAntWorkbookUtil(fileName);
- workbookUtilMap.put(fileName, wbu);
- return wbu;
}
}
Modified:
poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xwpf/usermodel/VerticalAlign.java
URL:
http://svn.apache.org/viewvc/poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xwpf/usermodel/VerticalAlign.java?rev=1921338&r1=1921337&r2=1921338&view=diff
==============================================================================
---
poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xwpf/usermodel/VerticalAlign.java
(original)
+++
poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xwpf/usermodel/VerticalAlign.java
Tue Oct 15 16:13:17 2024
@@ -16,6 +16,7 @@
==================================================================== */
package org.apache.poi.xwpf.usermodel;
+import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
@@ -45,12 +46,14 @@ public enum VerticalAlign {
*/
SUBSCRIPT(3);
- private static final Map<Integer, VerticalAlign> imap = new HashMap<>();
+ private static final Map<Integer, VerticalAlign> imap;
static {
+ final Map<Integer, VerticalAlign> tempMap = new HashMap<>();
for (VerticalAlign p : values()) {
- imap.put(p.getValue(), p);
+ tempMap.put(p.getValue(), p);
}
+ imap = Collections.unmodifiableMap(tempMap);
}
private final int value;
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]