You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pdfbox.apache.org by ti...@apache.org on 2018/04/03 19:28:03 UTC

svn commit: r1828272 - /pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/encoding/GlyphList.java

Author: tilman
Date: Tue Apr  3 19:28:03 2018
New Revision: 1828272

URL: http://svn.apache.org/viewvc?rev=1828272&view=rev
Log:
PDFBOX-4181: use ConcurrentHashMap instead of HashMap because of concurrent writing, as suggested by Michael Klink

Modified:
    pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/encoding/GlyphList.java

Modified: pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/encoding/GlyphList.java
URL: http://svn.apache.org/viewvc/pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/encoding/GlyphList.java?rev=1828272&r1=1828271&r2=1828272&view=diff
==============================================================================
--- pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/encoding/GlyphList.java (original)
+++ pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/encoding/GlyphList.java Tue Apr  3 19:28:03 2018
@@ -25,6 +25,7 @@ import org.apache.commons.logging.LogFac
 import java.io.IOException;
 import java.util.HashMap;
 import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
 
 /**
  * PostScript glyph list, maps glyph names to sequences of Unicode characters.
@@ -96,7 +97,7 @@ public final class GlyphList
     private final Map<String, String> unicodeToName;
     
     // additional read/write cache for uniXXXX names
-    private final Map<String, String> uniNameToUnicodeCache = new HashMap<String, String>();
+    private final Map<String, String> uniNameToUnicodeCache = new ConcurrentHashMap<String, String>();
 
     /**
      * Creates a new GlyphList from a glyph list file.
@@ -290,7 +291,11 @@ public final class GlyphList
                     LOG.warn("Not a number in Unicode character name: " + name);
                 }
             }
-            uniNameToUnicodeCache.put(name, unicode);
+            if (unicode != null)
+            {
+                // null value not allowed in ConcurrentHashMap
+                uniNameToUnicodeCache.put(name, unicode);
+            }
         }
         return unicode;
     }