You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pdfbox.apache.org by le...@apache.org on 2012/03/17 11:41:16 UTC
svn commit: r1301914 [3/3] - in /pdfbox/trunk:
preflight/src/main/java/org/apache/padaf/preflight/contentstream/
preflight/src/main/java/org/apache/padaf/preflight/font/
preflight/src/main/java/org/apache/padaf/preflight/utils/
xmpbox/src/main/java/org...
Modified: pdfbox/trunk/xmpbox/src/main/java/org/apache/padaf/xmpbox/type/ComplexPropertyContainer.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/xmpbox/src/main/java/org/apache/padaf/xmpbox/type/ComplexPropertyContainer.java?rev=1301914&r1=1301913&r2=1301914&view=diff
==============================================================================
--- pdfbox/trunk/xmpbox/src/main/java/org/apache/padaf/xmpbox/type/ComplexPropertyContainer.java (original)
+++ pdfbox/trunk/xmpbox/src/main/java/org/apache/padaf/xmpbox/type/ComplexPropertyContainer.java Sat Mar 17 10:41:15 2012
@@ -26,6 +26,7 @@ import java.util.Iterator;
import java.util.List;
import org.apache.padaf.xmpbox.XMPMetadata;
+import org.w3c.dom.NodeList;
/**
@@ -101,8 +102,7 @@ public class ComplexPropertyContainer ex
/**
* Add a property to the current structure
*
- * @param obj
- * the property to add
+ * @param obj the property to add
*/
public void addProperty(AbstractField obj) {
if (containsProperty(obj)) {
@@ -196,7 +196,17 @@ public class ComplexPropertyContainer ex
public void removeProperty(AbstractField property) {
if (containsProperty(property)) {
properties.remove(property);
- element.removeChild(property.getElement());
+ if (element.hasChildNodes()) {
+ NodeList nodes = element.getChildNodes();
+ boolean canRemove = false;
+ for (int i = 0; i < nodes.getLength(); ++i) {
+ if (nodes.item(i).equals(property.getElement())) {
+ canRemove = true;
+ }
+ }
+ // remove out of the loop to avoid concurrent exception
+ if (canRemove)element.removeChild(property.getElement());
+ }
}
}
Modified: pdfbox/trunk/xmpbox/src/test/java/org/apache/padaf/xmpbox/type/ComplexMetadataPropertyTest.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/xmpbox/src/test/java/org/apache/padaf/xmpbox/type/ComplexMetadataPropertyTest.java?rev=1301914&r1=1301913&r2=1301914&view=diff
==============================================================================
--- pdfbox/trunk/xmpbox/src/test/java/org/apache/padaf/xmpbox/type/ComplexMetadataPropertyTest.java (original)
+++ pdfbox/trunk/xmpbox/src/test/java/org/apache/padaf/xmpbox/type/ComplexMetadataPropertyTest.java Sat Mar 17 10:41:15 2012
@@ -22,12 +22,9 @@
package org.apache.padaf.xmpbox.type;
+import org.apache.padaf.xmpbox.SaveMetadataHelper;
import org.apache.padaf.xmpbox.XMPMetadata;
import org.apache.padaf.xmpbox.schema.XMPSchema;
-import org.apache.padaf.xmpbox.type.BadFieldValueException;
-import org.apache.padaf.xmpbox.type.ComplexProperty;
-import org.apache.padaf.xmpbox.type.ComplexPropertyContainer;
-import org.apache.padaf.xmpbox.type.TextType;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
@@ -125,7 +122,7 @@ public class ComplexMetadataPropertyTest
Assert.assertFalse(complexLi.containsProperty(li1));
tmpSchem.addProperty(complexLi);
- // SaveMetadataHelper.serialize(metadata, true, System.out);
+// SaveMetadataHelper.serialize(metadata, true, System.out);
}
/**