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]

Reply via email to