You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@poi.apache.org by on...@apache.org on 2016/06/24 21:39:50 UTC

svn commit: r1750168 - in /poi/trunk/src: java/org/apache/poi/hssf/eventusermodel/ java/org/apache/poi/hssf/usermodel/ java/org/apache/poi/hssf/util/ ooxml/java/org/apache/poi/openxml4j/opc/ ooxml/java/org/apache/poi/openxml4j/opc/internal/ ooxml/testc...

Author: onealj
Date: Fri Jun 24 21:39:44 2016
New Revision: 1750168

URL: http://svn.apache.org/viewvc?rev=1750168&view=rev
Log:
bug 59748: replace Hashtable with HashMap; contributed by Axel Howind

Modified:
    poi/trunk/src/java/org/apache/poi/hssf/eventusermodel/FormatTrackingHSSFListener.java
    poi/trunk/src/java/org/apache/poi/hssf/usermodel/HSSFWorkbook.java
    poi/trunk/src/java/org/apache/poi/hssf/util/HSSFColor.java
    poi/trunk/src/ooxml/java/org/apache/poi/openxml4j/opc/OPCPackage.java
    poi/trunk/src/ooxml/java/org/apache/poi/openxml4j/opc/internal/ContentType.java
    poi/trunk/src/ooxml/testcases/org/apache/poi/openxml4j/opc/TestContentType.java
    poi/trunk/src/scratchpad/src/org/apache/poi/hdgf/chunks/ChunkFactory.java
    poi/trunk/src/scratchpad/src/org/apache/poi/hslf/record/DocumentEncryptionAtom.java
    poi/trunk/src/scratchpad/src/org/apache/poi/hslf/record/ExOleObjStg.java
    poi/trunk/src/scratchpad/src/org/apache/poi/hslf/record/PersistPtrHolder.java
    poi/trunk/src/scratchpad/src/org/apache/poi/hslf/record/PositionDependentRecord.java
    poi/trunk/src/scratchpad/src/org/apache/poi/hslf/record/PositionDependentRecordAtom.java
    poi/trunk/src/scratchpad/src/org/apache/poi/hslf/record/PositionDependentRecordContainer.java
    poi/trunk/src/scratchpad/src/org/apache/poi/hslf/record/UserEditAtom.java
    poi/trunk/src/scratchpad/src/org/apache/poi/hslf/usermodel/HSLFSlideShowImpl.java
    poi/trunk/src/scratchpad/testcases/org/apache/poi/hslf/TestReWriteSanity.java
    poi/trunk/src/testcases/org/apache/poi/hssf/util/TestHSSFColor.java

Modified: poi/trunk/src/java/org/apache/poi/hssf/eventusermodel/FormatTrackingHSSFListener.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/eventusermodel/FormatTrackingHSSFListener.java?rev=1750168&r1=1750167&r2=1750168&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/hssf/eventusermodel/FormatTrackingHSSFListener.java (original)
+++ poi/trunk/src/java/org/apache/poi/hssf/eventusermodel/FormatTrackingHSSFListener.java Fri Jun 24 21:39:44 2016
@@ -18,7 +18,7 @@ package org.apache.poi.hssf.eventusermod
 
 import java.text.NumberFormat;
 import java.util.ArrayList;
-import java.util.Hashtable;
+import java.util.HashMap;
 import java.util.List;
 import java.util.Locale;
 import java.util.Map;
@@ -45,7 +45,7 @@ public class FormatTrackingHSSFListener
 	private final HSSFListener _childListener;
 	private final HSSFDataFormatter _formatter;
 	private final NumberFormat _defaultFormat;
-	private final Map<Integer, FormatRecord> _customFormatRecords = new Hashtable<Integer, FormatRecord>();
+	private final Map<Integer, FormatRecord> _customFormatRecords = new HashMap<Integer, FormatRecord>();
 	private final List<ExtendedFormatRecord> _xfRecords = new ArrayList<ExtendedFormatRecord>();
 
 	/**

Modified: poi/trunk/src/java/org/apache/poi/hssf/usermodel/HSSFWorkbook.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/usermodel/HSSFWorkbook.java?rev=1750168&r1=1750167&r2=1750168&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/hssf/usermodel/HSSFWorkbook.java (original)
+++ poi/trunk/src/java/org/apache/poi/hssf/usermodel/HSSFWorkbook.java Fri Jun 24 21:39:44 2016
@@ -33,9 +33,8 @@ import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collection;
 import java.util.Collections;
-import java.util.HashMap;
 import java.util.HashSet;
-import java.util.Hashtable;
+import java.util.HashMap;
 import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
@@ -155,7 +154,7 @@ public final class HSSFWorkbook extends
      * this holds the HSSFFont objects attached to this workbook.
      * We only create these from the low level records as required.
      */
-    private Hashtable<Short,HSSFFont> fonts;
+    private Map<Short,HSSFFont> fonts;
 
     /**
      * holds whether or not to preserve other nodes in the POIFS.  Used
@@ -1204,7 +1203,7 @@ public final class HSSFWorkbook extends
      */
     @Override
     public HSSFFont getFontAt(short idx) {
-        if(fonts == null) fonts = new Hashtable<Short, HSSFFont>();
+        if(fonts == null) fonts = new HashMap<Short, HSSFFont>();
 
         // So we don't confuse users, give them back
         //  the same object every time, but create
@@ -1228,7 +1227,7 @@ public final class HSSFWorkbook extends
      *  and that's not something you should normally do
      */
     protected void resetFontCache() {
-        fonts = new Hashtable<Short, HSSFFont>();
+        fonts = new HashMap<Short, HSSFFont>();
     }
 
     /**

Modified: poi/trunk/src/java/org/apache/poi/hssf/util/HSSFColor.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/util/HSSFColor.java?rev=1750168&r1=1750167&r2=1750168&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/hssf/util/HSSFColor.java (original)
+++ poi/trunk/src/java/org/apache/poi/hssf/util/HSSFColor.java Fri Jun 24 21:39:44 2016
@@ -19,7 +19,7 @@ package org.apache.poi.hssf.util;
 
 import java.lang.reflect.Field;
 import java.util.Collections;
-import java.util.Hashtable;
+import java.util.HashMap;
 import java.util.Map;
 
 import org.apache.poi.ss.usermodel.Color;
@@ -57,18 +57,18 @@ public class HSSFColor implements Color
         return indexHash;
     }
     /**
-     * This function returns all the Colours, stored in a Hashtable that
+     * This function returns all the Colours, stored in a Map that
      *  can be edited. No caching is performed. If you don't need to edit
      *  the table, then call {@link #getIndexHash()} which returns a
      *  statically cached imuatable map of colours.
      */
-    public final static Hashtable<Integer,HSSFColor> getMutableIndexHash() {
+    public final static Map<Integer,HSSFColor> getMutableIndexHash() {
        return createColorsByIndexMap();
     }
 
-    private static Hashtable<Integer,HSSFColor> createColorsByIndexMap() {
+    private static Map<Integer,HSSFColor> createColorsByIndexMap() {
         HSSFColor[] colors = getAllColors();
-        Hashtable<Integer,HSSFColor> result = new Hashtable<Integer,HSSFColor>(colors.length * 3 / 2);
+        Map<Integer,HSSFColor> result = new HashMap<Integer,HSSFColor>(colors.length * 3 / 2);
 
         for (int i = 0; i < colors.length; i++) {
             HSSFColor color = colors[i];
@@ -148,16 +148,16 @@ public class HSSFColor implements Color
      * it takes to create it once per request but you will not hold onto it
      * if you have none of those requests.
      *
-     * @return a hashtable containing all colors keyed by String gnumeric-like triplets
+     * @return a Map containing all colors keyed by String gnumeric-like triplets
      */
-    public final static Hashtable<String,HSSFColor> getTripletHash()
+    public final static Map<String,HSSFColor> getTripletHash()
     {
         return createColorsByHexStringMap();
     }
 
-    private static Hashtable<String,HSSFColor> createColorsByHexStringMap() {
+    private static Map<String,HSSFColor> createColorsByHexStringMap() {
         HSSFColor[] colors = getAllColors();
-        Hashtable<String,HSSFColor> result = new Hashtable<String,HSSFColor>(colors.length * 3 / 2);
+        Map<String,HSSFColor> result = new HashMap<String,HSSFColor>(colors.length * 3 / 2);
 
         for (int i = 0; i < colors.length; i++) {
             HSSFColor color = colors[i];
@@ -1683,7 +1683,7 @@ public class HSSFColor implements Color
 
     /**
      * Special Default/Normal/Automatic color.
-     * <p><i>Note:</i> This class is NOT in the default HashTables returned by HSSFColor.
+     * <p><i>Note:</i> This class is NOT in the default Map returned by HSSFColor.
      * The index is a special case which is interpreted in the various setXXXColor calls.
      *
      * @author Jason

Modified: poi/trunk/src/ooxml/java/org/apache/poi/openxml4j/opc/OPCPackage.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/java/org/apache/poi/openxml4j/opc/OPCPackage.java?rev=1750168&r1=1750167&r2=1750168&view=diff
==============================================================================
--- poi/trunk/src/ooxml/java/org/apache/poi/openxml4j/opc/OPCPackage.java (original)
+++ poi/trunk/src/ooxml/java/org/apache/poi/openxml4j/opc/OPCPackage.java Fri Jun 24 21:39:44 2016
@@ -30,7 +30,7 @@ import java.net.URISyntaxException;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.Date;
-import java.util.Hashtable;
+import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 import java.util.concurrent.locks.ReentrantReadWriteLock;
@@ -145,8 +145,8 @@ public abstract class OPCPackage impleme
 	 * Initialize the package instance.
 	 */
 	private void init() {
-		this.partMarshallers = new Hashtable<ContentType, PartMarshaller>(5);
-		this.partUnmarshallers = new Hashtable<ContentType, PartUnmarshaller>(2);
+		this.partMarshallers = new HashMap<ContentType, PartMarshaller>(5);
+		this.partUnmarshallers = new HashMap<ContentType, PartUnmarshaller>(2);
 
 		try {
 			// Add 'default' unmarshaller

Modified: poi/trunk/src/ooxml/java/org/apache/poi/openxml4j/opc/internal/ContentType.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/java/org/apache/poi/openxml4j/opc/internal/ContentType.java?rev=1750168&r1=1750167&r2=1750168&view=diff
==============================================================================
--- poi/trunk/src/ooxml/java/org/apache/poi/openxml4j/opc/internal/ContentType.java (original)
+++ poi/trunk/src/ooxml/java/org/apache/poi/openxml4j/opc/internal/ContentType.java Fri Jun 24 21:39:44 2016
@@ -17,8 +17,10 @@
 
 package org.apache.poi.openxml4j.opc.internal;
 
-import java.util.Hashtable;
+import java.util.Collections;
+import java.util.HashMap;
 import java.util.Map;
+import java.util.Map.Entry;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
@@ -53,17 +55,17 @@ public final class ContentType {
 	/**
 	 * Type in Type/Subtype.
 	 */
-	private String type;
+	private final String type;
 
 	/**
 	 * Subtype
 	 */
-	private String subType;
+	private final String subType;
 
 	/**
 	 * Parameters
 	 */
-	private Hashtable<String, String> parameters;
+	private final Map<String, String> parameters;
 
 	/**
 	 * Media type compiled pattern, without parameters
@@ -144,15 +146,15 @@ public final class ContentType {
 	public ContentType(String contentType) throws InvalidFormatException {
 		Matcher mMediaType = patternTypeSubType.matcher(contentType);
 		if (!mMediaType.matches()) {
-		    // How about with parameters?
-		    mMediaType = patternTypeSubTypeParams.matcher(contentType);
+			// How about with parameters?
+			mMediaType = patternTypeSubTypeParams.matcher(contentType);
 		}
-        if (!mMediaType.matches()) {
+		if (!mMediaType.matches()) {
 			throw new InvalidFormatException(
 					"The specified content type '"
 					+ contentType
 					+ "' is not compliant with RFC 2616: malformed content type.");
-        }
+		}
 
 		// Type/subtype
 		if (mMediaType.groupCount() >= 2) {
@@ -160,15 +162,20 @@ public final class ContentType {
 			this.subType = mMediaType.group(2);
 			
 			// Parameters
-			this.parameters = new Hashtable<String, String>(1);
+			this.parameters = new HashMap<String, String>();
 			// Java RegExps are unhelpful, and won't do multiple group captures
 			// See http://docs.oracle.com/javase/6/docs/api/java/util/regex/Pattern.html#cg
 			if (mMediaType.groupCount() >= 5) {
-			    Matcher mParams = patternParams.matcher(contentType.substring(mMediaType.end(2)));
-			    while (mParams.find()) {
-			        this.parameters.put(mParams.group(1), mParams.group(2));
-			    }
+				Matcher mParams = patternParams.matcher(contentType.substring(mMediaType.end(2)));
+				while (mParams.find()) {
+					this.parameters.put(mParams.group(1), mParams.group(2));
+				}
 			}
+		} else {
+			// missing media type and subtype
+			this.type = "";
+			this.subType = "";
+			this.parameters = Collections.emptyMap(); 
 		}
 	}
 
@@ -187,7 +194,7 @@ public final class ContentType {
 	    retVal.append(this.getSubType());
 
 	    if (withParameters) {
-	        for (Map.Entry<String, String> me : parameters.entrySet()) {
+	        for (Entry<String, String> me : parameters.entrySet()) {
 	            retVal.append(";");
 	            retVal.append(me.getKey());
 	            retVal.append("=");

Modified: poi/trunk/src/ooxml/testcases/org/apache/poi/openxml4j/opc/TestContentType.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/testcases/org/apache/poi/openxml4j/opc/TestContentType.java?rev=1750168&r1=1750167&r2=1750168&view=diff
==============================================================================
--- poi/trunk/src/ooxml/testcases/org/apache/poi/openxml4j/opc/TestContentType.java (original)
+++ poi/trunk/src/ooxml/testcases/org/apache/poi/openxml4j/opc/TestContentType.java Fri Jun 24 21:39:44 2016
@@ -181,53 +181,65 @@ public final class TestContentType exten
         
         // Check the types on everything
         for (PackagePart part : p.getParts()) {
+            final String contentType = part.getContentType();
+            final ContentType details = part.getContentTypeDetails();
+            final int length = details.getParameterKeys().length;
+            final boolean hasParameters = details.hasParameters();
+
             // _rels type doesn't have any params
             if (part.isRelationshipPart()) {
-                assertEquals(ContentTypes.RELATIONSHIPS_PART, part.getContentType());
-                assertEquals(ContentTypes.RELATIONSHIPS_PART, part.getContentTypeDetails().toString());
-                assertEquals(false, part.getContentTypeDetails().hasParameters());
-                assertEquals(0, part.getContentTypeDetails().getParameterKeys().length);
+                assertEquals(ContentTypes.RELATIONSHIPS_PART, contentType);
+                assertEquals(ContentTypes.RELATIONSHIPS_PART, details.toString());
+                assertEquals(false, hasParameters);
+                assertEquals(0, length);
             }
             // Core type doesn't have any params
             else if (part.getPartName().toString().equals("/docProps/core.xml")) {
-                assertEquals(ContentTypes.CORE_PROPERTIES_PART, part.getContentType());
-                assertEquals(ContentTypes.CORE_PROPERTIES_PART, part.getContentTypeDetails().toString());
-                assertEquals(false, part.getContentTypeDetails().hasParameters());
-                assertEquals(0, part.getContentTypeDetails().getParameterKeys().length);
+                assertEquals(ContentTypes.CORE_PROPERTIES_PART, contentType);
+                assertEquals(ContentTypes.CORE_PROPERTIES_PART, details.toString());
+                assertEquals(false, hasParameters);
+                assertEquals(0, length);
             }
             // Global Crs types do have params
             else if (part.getPartName().toString().equals("/global1dCrs.xml")) {
-                assertEquals(typeResqml, part.getContentType().substring(0, typeResqml.length()));
-                assertEquals(typeResqml, part.getContentTypeDetails().toString(false));
-                assertEquals(true, part.getContentTypeDetails().hasParameters());
-                assertEquals(typeResqml+";version=2.0;type=obj_global1dCrs", part.getContentTypeDetails().toString());
-                assertEquals(2, part.getContentTypeDetails().getParameterKeys().length);
-                assertEquals("2.0", part.getContentTypeDetails().getParameter("version"));
-                assertEquals("obj_global1dCrs", part.getContentTypeDetails().getParameter("type"));
+                assertTrue(part.getContentType().startsWith(typeResqml));
+                assertEquals(typeResqml, details.toString(false));
+                assertEquals(true, hasParameters);
+                assertContains("version=2.0", details.toString());
+                assertContains("type=obj_global1dCrs", details.toString());
+                assertEquals(2, length);
+                assertEquals("2.0", details.getParameter("version"));
+                assertEquals("obj_global1dCrs", details.getParameter("type"));
             }
             else if (part.getPartName().toString().equals("/global2dCrs.xml")) {
-                assertEquals(typeResqml, part.getContentType().substring(0, typeResqml.length()));
-                assertEquals(typeResqml, part.getContentTypeDetails().toString(false));
-                assertEquals(true, part.getContentTypeDetails().hasParameters());
-                assertEquals(typeResqml+";version=2.0;type=obj_global2dCrs", part.getContentTypeDetails().toString());
-                assertEquals(2, part.getContentTypeDetails().getParameterKeys().length);
-                assertEquals("2.0", part.getContentTypeDetails().getParameter("version"));
-                assertEquals("obj_global2dCrs", part.getContentTypeDetails().getParameter("type"));
+                assertTrue(part.getContentType().startsWith(typeResqml));
+                assertEquals(typeResqml, details.toString(false));
+                assertEquals(true, hasParameters);
+                assertContains("version=2.0", details.toString());
+                assertContains("type=obj_global2dCrs", details.toString());
+                assertEquals(2, length);
+                assertEquals("2.0", details.getParameter("version"));
+                assertEquals("obj_global2dCrs", details.getParameter("type"));
             }
             // Other thingy
             else if (part.getPartName().toString().equals("/myTestingGuid.xml")) {
-                assertEquals(typeResqml, part.getContentType().substring(0, typeResqml.length()));
-                assertEquals(typeResqml, part.getContentTypeDetails().toString(false));
-                assertEquals(true, part.getContentTypeDetails().hasParameters());
-                assertEquals(typeResqml+";version=2.0;type=obj_tectonicBoundaryFeature", part.getContentTypeDetails().toString());
-                assertEquals(2, part.getContentTypeDetails().getParameterKeys().length);
-                assertEquals("2.0", part.getContentTypeDetails().getParameter("version"));
-                assertEquals("obj_tectonicBoundaryFeature", part.getContentTypeDetails().getParameter("type"));
+                assertTrue(part.getContentType().startsWith(typeResqml));
+                assertEquals(typeResqml, details.toString(false));
+                assertEquals(true, hasParameters);
+                assertContains("version=2.0", details.toString());
+                assertContains("type=obj_tectonicBoundaryFeature", details.toString());
+                assertEquals(2, length);
+                assertEquals("2.0", details.getParameter("version"));
+                assertEquals("obj_tectonicBoundaryFeature", details.getParameter("type"));
             }
             // That should be it!
             else {
                 fail("Unexpected part " + part);
             }
         }
-	}
+    }
+
+    private static void assertContains(String needle, String haystack) {
+        assertTrue(haystack.contains(needle));
+    }
 }

Modified: poi/trunk/src/scratchpad/src/org/apache/poi/hdgf/chunks/ChunkFactory.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/scratchpad/src/org/apache/poi/hdgf/chunks/ChunkFactory.java?rev=1750168&r1=1750167&r2=1750168&view=diff
==============================================================================
--- poi/trunk/src/scratchpad/src/org/apache/poi/hdgf/chunks/ChunkFactory.java (original)
+++ poi/trunk/src/scratchpad/src/org/apache/poi/hdgf/chunks/ChunkFactory.java Fri Jun 24 21:39:44 2016
@@ -22,7 +22,7 @@ import java.io.IOException;
 import java.io.InputStream;
 import java.io.InputStreamReader;
 import java.util.ArrayList;
-import java.util.Hashtable;
+import java.util.HashMap;
 import java.util.Map;
 import java.util.StringTokenizer;
 
@@ -44,7 +44,7 @@ public final class ChunkFactory {
 	 * Key is a Chunk's type, value is an array of its CommandDefinitions
 	 */
 	private final Map<Integer, CommandDefinition[]> chunkCommandDefinitions = 
-	      new Hashtable<Integer, CommandDefinition[]>();
+	      new HashMap<Integer, CommandDefinition[]>();
 	/**
 	 * What the name is of the chunk table definitions file?
 	 * This file comes from the scratchpad resources directory.
@@ -105,7 +105,7 @@ public final class ChunkFactory {
     
     			CommandDefinition[] defs = defsL.toArray(new CommandDefinition[defsL.size()]);
     
-    			// Add to the hashtable
+    			// Add to the map
     			chunkCommandDefinitions.put(Integer.valueOf(chunkType), defs);
     		}
 		} finally {

Modified: poi/trunk/src/scratchpad/src/org/apache/poi/hslf/record/DocumentEncryptionAtom.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/scratchpad/src/org/apache/poi/hslf/record/DocumentEncryptionAtom.java?rev=1750168&r1=1750167&r2=1750168&view=diff
==============================================================================
--- poi/trunk/src/scratchpad/src/org/apache/poi/hslf/record/DocumentEncryptionAtom.java (original)
+++ poi/trunk/src/scratchpad/src/org/apache/poi/hslf/record/DocumentEncryptionAtom.java Fri Jun 24 21:39:44 2016
@@ -20,7 +20,7 @@ package org.apache.poi.hslf.record;
 import java.io.ByteArrayInputStream;
 import java.io.IOException;
 import java.io.OutputStream;
-import java.util.Hashtable;
+import java.util.Map;
 
 import org.apache.poi.poifs.crypt.CipherAlgorithm;
 import org.apache.poi.poifs.crypt.EncryptionInfo;
@@ -123,7 +123,7 @@ public final class DocumentEncryptionAto
 		out.write(data, 0, bos.getWriteIndex());
 	}
 
-    public void updateOtherRecordReferences(Hashtable<Integer,Integer> oldToNewReferencesLookup) {
+    public void updateOtherRecordReferences(Map<Integer,Integer> oldToNewReferencesLookup) {
         
     }
 }

Modified: poi/trunk/src/scratchpad/src/org/apache/poi/hslf/record/ExOleObjStg.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/scratchpad/src/org/apache/poi/hslf/record/ExOleObjStg.java?rev=1750168&r1=1750167&r2=1750168&view=diff
==============================================================================
--- poi/trunk/src/scratchpad/src/org/apache/poi/hslf/record/ExOleObjStg.java (original)
+++ poi/trunk/src/scratchpad/src/org/apache/poi/hslf/record/ExOleObjStg.java Fri Jun 24 21:39:44 2016
@@ -22,7 +22,7 @@ import java.io.ByteArrayOutputStream;
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.OutputStream;
-import java.util.Hashtable;
+import java.util.Map;
 import java.util.zip.DeflaterOutputStream;
 import java.util.zip.InflaterInputStream;
 
@@ -184,7 +184,7 @@ public class ExOleObjStg extends RecordA
         myLastOnDiskOffset = offset;
     }
 
-    public void updateOtherRecordReferences(Hashtable<Integer,Integer> oldToNewReferencesLookup) {
+    public void updateOtherRecordReferences(Map<Integer,Integer> oldToNewReferencesLookup) {
         return;
     }
 

Modified: poi/trunk/src/scratchpad/src/org/apache/poi/hslf/record/PersistPtrHolder.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/scratchpad/src/org/apache/poi/hslf/record/PersistPtrHolder.java?rev=1750168&r1=1750167&r2=1750168&view=diff
==============================================================================
--- poi/trunk/src/scratchpad/src/org/apache/poi/hslf/record/PersistPtrHolder.java (original)
+++ poi/trunk/src/scratchpad/src/org/apache/poi/hslf/record/PersistPtrHolder.java Fri Jun 24 21:39:44 2016
@@ -20,8 +20,10 @@ package org.apache.poi.hslf.record;
 import java.io.ByteArrayOutputStream;
 import java.io.IOException;
 import java.io.OutputStream;
-import java.util.Hashtable;
+import java.util.Collections;
+import java.util.HashMap;
 import java.util.Map;
+import java.util.Map.Entry;
 import java.util.TreeMap;
 
 import org.apache.poi.hslf.exceptions.CorruptPowerPointFileException;
@@ -52,7 +54,7 @@ public final class PersistPtrHolder exte
 	 * You always need to check the most recent PersistPtrHolder
 	 *  that knows about a given slide to find the right location
 	 */
-	private Hashtable<Integer,Integer> _slideLocations;
+	private Map<Integer,Integer> _slideLocations;
 
 	private static final BitField persistIdFld = new BitField(0X000FFFFF);
 	private static final BitField cntPersistFld  = new BitField(0XFFF00000);
@@ -64,7 +66,7 @@ public final class PersistPtrHolder exte
 
 	/**
 	 * Get the list of slides that this PersistPtrHolder knows about.
-	 * (They will be the keys in the hashtable for looking up the positions
+	 * (They will be the keys in the map for looking up the positions
 	 *  of these slides)
 	 */
 	public int[] getKnownSlideIDs() {
@@ -80,8 +82,8 @@ public final class PersistPtrHolder exte
 	 * Get the lookup from slide numbers to byte offsets, for the slides
 	 *  known about by this PersistPtrHolder.
 	 */
-	public Hashtable<Integer,Integer> getSlideLocationsLookup() {
-		return _slideLocations;
+	public Map<Integer,Integer> getSlideLocationsLookup() {
+		return Collections.unmodifiableMap(_slideLocations);
 	}
 	
 	/**
@@ -104,7 +106,7 @@ public final class PersistPtrHolder exte
 		//      base number for these entries
 		//   count * 32 bit offsets
 		// Repeat as many times as you have data
-		_slideLocations = new Hashtable<Integer,Integer>();
+		_slideLocations = new HashMap<Integer,Integer>();
 		_ptrData = new byte[len-8];
 		System.arraycopy(source,start+8,_ptrData,0,_ptrData.length);
 
@@ -157,10 +159,10 @@ public final class PersistPtrHolder exte
 	 * At write-out time, update the references to the sheets to their
 	 *  new positions
 	 */
-	public void updateOtherRecordReferences(Hashtable<Integer,Integer> oldToNewReferencesLookup) {
+	public void updateOtherRecordReferences(Map<Integer,Integer> oldToNewReferencesLookup) {
 		// Loop over all the slides we know about
 		// Find where they used to live, and where they now live
-	    for (Map.Entry<Integer,Integer> me : _slideLocations.entrySet()) {
+	    for (Entry<Integer,Integer> me : _slideLocations.entrySet()) {
 	        Integer oldPos = me.getValue();
 	        Integer newPos = oldToNewReferencesLookup.get(oldPos);
 
@@ -182,7 +184,7 @@ public final class PersistPtrHolder exte
         byte intbuf[] = new byte[4];
         int lastPersistEntry = -1;
         int lastSlideId = -1;
-        for (Map.Entry<Integer,Integer> me : orderedSlideLocations.entrySet()) {
+        for (Entry<Integer,Integer> me : orderedSlideLocations.entrySet()) {
             int nextSlideId = me.getKey();
             int offset = me.getValue();
             try {

Modified: poi/trunk/src/scratchpad/src/org/apache/poi/hslf/record/PositionDependentRecord.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/scratchpad/src/org/apache/poi/hslf/record/PositionDependentRecord.java?rev=1750168&r1=1750167&r2=1750168&view=diff
==============================================================================
--- poi/trunk/src/scratchpad/src/org/apache/poi/hslf/record/PositionDependentRecord.java (original)
+++ poi/trunk/src/scratchpad/src/org/apache/poi/hslf/record/PositionDependentRecord.java Fri Jun 24 21:39:44 2016
@@ -16,7 +16,7 @@
 ==================================================================== */
 
 package org.apache.poi.hslf.record;
-import java.util.Hashtable;
+import java.util.Map;
 
 /**
  * Records which either care about where they are on disk, or have other
@@ -47,5 +47,5 @@ public interface PositionDependentRecord
 	 * Offer the record the list of records that have changed their
 	 *  location as part of the writeout.
 	 */
-	public void updateOtherRecordReferences(Hashtable<Integer,Integer> oldToNewReferencesLookup);
+	public void updateOtherRecordReferences(Map<Integer,Integer> oldToNewReferencesLookup);
 }

Modified: poi/trunk/src/scratchpad/src/org/apache/poi/hslf/record/PositionDependentRecordAtom.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/scratchpad/src/org/apache/poi/hslf/record/PositionDependentRecordAtom.java?rev=1750168&r1=1750167&r2=1750168&view=diff
==============================================================================
--- poi/trunk/src/scratchpad/src/org/apache/poi/hslf/record/PositionDependentRecordAtom.java (original)
+++ poi/trunk/src/scratchpad/src/org/apache/poi/hslf/record/PositionDependentRecordAtom.java Fri Jun 24 21:39:44 2016
@@ -16,7 +16,7 @@
 ==================================================================== */
 
 package org.apache.poi.hslf.record;
-import java.util.Hashtable;
+import java.util.Map;
 
 /**
  * A special (and dangerous) kind of Record Atom that cares about where
@@ -48,5 +48,5 @@ public abstract class PositionDependentR
 	 * Allows records to update their internal pointers to other records
 	 *  locations
 	 */
-	public abstract void updateOtherRecordReferences(Hashtable<Integer,Integer> oldToNewReferencesLookup);
+	public abstract void updateOtherRecordReferences(Map<Integer,Integer> oldToNewReferencesLookup);
 }

Modified: poi/trunk/src/scratchpad/src/org/apache/poi/hslf/record/PositionDependentRecordContainer.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/scratchpad/src/org/apache/poi/hslf/record/PositionDependentRecordContainer.java?rev=1750168&r1=1750167&r2=1750168&view=diff
==============================================================================
--- poi/trunk/src/scratchpad/src/org/apache/poi/hslf/record/PositionDependentRecordContainer.java (original)
+++ poi/trunk/src/scratchpad/src/org/apache/poi/hslf/record/PositionDependentRecordContainer.java Fri Jun 24 21:39:44 2016
@@ -16,7 +16,7 @@
 ==================================================================== */
 
 package org.apache.poi.hslf.record;
-import java.util.Hashtable;
+import java.util.Map;
 
 /**
  * A special (and dangerous) kind of Record Container, for which other
@@ -60,7 +60,7 @@ public abstract class PositionDependentR
 	 * Since we're a container, we don't mind if other records move about.
 	 * If we're told they have, just return straight off.
 	 */
-	public void updateOtherRecordReferences(Hashtable<Integer,Integer> oldToNewReferencesLookup) {
+	public void updateOtherRecordReferences(Map<Integer,Integer> oldToNewReferencesLookup) {
 		return;
 	}
 }

Modified: poi/trunk/src/scratchpad/src/org/apache/poi/hslf/record/UserEditAtom.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/scratchpad/src/org/apache/poi/hslf/record/UserEditAtom.java?rev=1750168&r1=1750167&r2=1750168&view=diff
==============================================================================
--- poi/trunk/src/scratchpad/src/org/apache/poi/hslf/record/UserEditAtom.java (original)
+++ poi/trunk/src/scratchpad/src/org/apache/poi/hslf/record/UserEditAtom.java Fri Jun 24 21:39:44 2016
@@ -22,7 +22,7 @@ import org.apache.poi.util.LittleEndianC
 
 import java.io.IOException;
 import java.io.OutputStream;
-import java.util.Hashtable;
+import java.util.Map;
 
 /**
  * A UserEdit Atom (type 4085). Holds information which bits of the file
@@ -146,7 +146,7 @@ public final class UserEditAtom extends
 	 * At write-out time, update the references to PersistPtrs and
 	 *  other UserEditAtoms to point to their new positions
 	 */
-	public void updateOtherRecordReferences(Hashtable<Integer,Integer> oldToNewReferencesLookup) {
+	public void updateOtherRecordReferences(Map<Integer,Integer> oldToNewReferencesLookup) {
 		// Look up the new positions of our preceding UserEditAtomOffset
 		if(lastUserEditAtomOffset != 0) {
 			Integer newLocation = oldToNewReferencesLookup.get(Integer.valueOf(lastUserEditAtomOffset));

Modified: poi/trunk/src/scratchpad/src/org/apache/poi/hslf/usermodel/HSLFSlideShowImpl.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/scratchpad/src/org/apache/poi/hslf/usermodel/HSLFSlideShowImpl.java?rev=1750168&r1=1750167&r2=1750168&view=diff
==============================================================================
--- poi/trunk/src/scratchpad/src/org/apache/poi/hslf/usermodel/HSLFSlideShowImpl.java (original)
+++ poi/trunk/src/scratchpad/src/org/apache/poi/hslf/usermodel/HSLFSlideShowImpl.java Fri Jun 24 21:39:44 2016
@@ -28,7 +28,7 @@ import java.security.GeneralSecurityExce
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.HashMap;
-import java.util.Hashtable;
+import java.util.Map;
 import java.util.List;
 import java.util.Map;
 import java.util.NavigableMap;
@@ -464,7 +464,7 @@ public final class HSLFSlideShowImpl ext
         // For position dependent records, hold where they were and now are
         // As we go along, update, and hand over, to any Position Dependent
         //  records we happen across
-        Hashtable<Integer,Integer> oldToNewPositions = new Hashtable<Integer,Integer>();
+        Map<Integer,Integer> oldToNewPositions = new HashMap<Integer,Integer>();
 
         // First pass - figure out where all the position dependent
         //   records are going to end up, in the new scheme

Modified: poi/trunk/src/scratchpad/testcases/org/apache/poi/hslf/TestReWriteSanity.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/scratchpad/testcases/org/apache/poi/hslf/TestReWriteSanity.java?rev=1750168&r1=1750167&r2=1750168&view=diff
==============================================================================
--- poi/trunk/src/scratchpad/testcases/org/apache/poi/hslf/TestReWriteSanity.java (original)
+++ poi/trunk/src/scratchpad/testcases/org/apache/poi/hslf/TestReWriteSanity.java Fri Jun 24 21:39:44 2016
@@ -60,8 +60,8 @@ public final class TestReWriteSanity ext
 		// Find the location of the PersistPtrIncrementalBlocks and
 		// UserEditAtoms
 		Record[] r = wss.getRecords();
-		Map<Integer,Record> pp = new Hashtable<Integer,Record>();
-		Map<Integer,Object> ue = new Hashtable<Integer,Object>();
+		Map<Integer,Record> pp = new HashMap<Integer,Record>();
+		Map<Integer,Object> ue = new HashMap<Integer,Object>();
 		ue.put(Integer.valueOf(0),Integer.valueOf(0)); // Will show 0 if first
 		int pos = 0;
 		int lastUEPos = -1;

Modified: poi/trunk/src/testcases/org/apache/poi/hssf/util/TestHSSFColor.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/testcases/org/apache/poi/hssf/util/TestHSSFColor.java?rev=1750168&r1=1750167&r2=1750168&view=diff
==============================================================================
--- poi/trunk/src/testcases/org/apache/poi/hssf/util/TestHSSFColor.java (original)
+++ poi/trunk/src/testcases/org/apache/poi/hssf/util/TestHSSFColor.java Fri Jun 24 21:39:44 2016
@@ -17,7 +17,7 @@
 
 package org.apache.poi.hssf.util;
 
-import java.util.Hashtable;
+import java.util.Map;
 
 import junit.framework.TestCase;
 /**
@@ -40,7 +40,7 @@ public final class TestHSSFColor extends
 	}
 	
 	public void testTrippletHash() {
-		Hashtable tripplets = HSSFColor.getTripletHash();
+		Map<String, HSSFColor> tripplets = HSSFColor.getTripletHash();
 		
 		assertEquals(
 				HSSFColor.MAROON.class,



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@poi.apache.org
For additional commands, e-mail: commits-help@poi.apache.org