]> source.dussan.org Git - poi.git/commitdiff
- Write properties sorted by property ID now. This hopefully fixes M$ Word compatibility.
authorRainer Klute <klute@apache.org>
Wed, 9 Jun 2004 17:51:51 +0000 (17:51 +0000)
committerRainer Klute <klute@apache.org>
Wed, 9 Jun 2004 17:51:51 +0000 (17:51 +0000)
git-svn-id: https://svn.apache.org/repos/asf/jakarta/poi/trunk@353558 13f79535-47bb-0310-9956-ffa450edef68

src/java/org/apache/poi/hpsf/MutableSection.java

index 9635ab0845ecd4717d373c60508d2084236093c8..4559fbe8000db23e4c9d2d80220db20b03490e25 100644 (file)
@@ -1,4 +1,3 @@
-
 /* ====================================================================
    Copyright 2002-2004   Apache Software Foundation
 
@@ -20,9 +19,12 @@ package org.apache.poi.hpsf;
 import java.io.ByteArrayOutputStream;
 import java.io.IOException;
 import java.io.OutputStream;
+import java.util.Collections;
+import java.util.Comparator;
 import java.util.Iterator;
 import java.util.LinkedList;
 import java.util.List;
+import java.util.ListIterator;
 import java.util.Map;
 
 import org.apache.poi.hpsf.wellknown.PropertyIDMap;
@@ -370,9 +372,25 @@ public class MutableSection extends Section
                     ("The codepage property (ID = 1) must be set.");
         }
 
+        /* Sort the property list by their property IDs: */
+        Collections.sort(preprops, new Comparator()
+            {
+                public int compare(final Object o1, final Object o2)
+                {
+                    final Property p1 = (Property) o1;
+                    final Property p2 = (Property) o2;
+                    if (p1.getID() < p2.getID())
+                        return -1;
+                    else if (p1.getID() == p2.getID())
+                        return 0;
+                    else
+                        return 1;
+                }
+            });
+
         /* Write the properties and the property list into their respective
          * streams: */
-        for (final Iterator i = preprops.iterator(); i.hasNext();)
+        for (final ListIterator i = preprops.listIterator(); i.hasNext();)
         {
             final MutableProperty p = (MutableProperty) i.next();
             final long id = p.getID();