From 7b38e0ceb0ee3720142cc16cb06ea08916916bbc Mon Sep 17 00:00:00 2001 From: Rainer Klute Date: Wed, 9 Jun 2004 17:51:51 +0000 Subject: [PATCH] - Write properties sorted by property ID now. This hopefully fixes M$ Word compatibility. git-svn-id: https://svn.apache.org/repos/asf/jakarta/poi/trunk@353558 13f79535-47bb-0310-9956-ffa450edef68 --- .../org/apache/poi/hpsf/MutableSection.java | 22 +++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/src/java/org/apache/poi/hpsf/MutableSection.java b/src/java/org/apache/poi/hpsf/MutableSection.java index 9635ab084..4559fbe80 100644 --- a/src/java/org/apache/poi/hpsf/MutableSection.java +++ b/src/java/org/apache/poi/hpsf/MutableSection.java @@ -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();