You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@xmlgraphics.apache.org by je...@apache.org on 2009/12/22 10:14:05 UTC
svn commit: r893118 - in /xmlgraphics/commons/trunk:
src/java/org/apache/xmlgraphics/xmp/XMPArray.java
test/java/org/apache/xmlgraphics/xmp/XMPPropertyTest.java
Author: jeremias
Date: Tue Dec 22 09:14:05 2009
New Revision: 893118
URL: http://svn.apache.org/viewvc?rev=893118&view=rev
Log:
Bugfix: non-lang-qualified array value was not treated the same as one lang-qualified with "x-default".
Modified:
xmlgraphics/commons/trunk/src/java/org/apache/xmlgraphics/xmp/XMPArray.java
xmlgraphics/commons/trunk/test/java/org/apache/xmlgraphics/xmp/XMPPropertyTest.java
Modified: xmlgraphics/commons/trunk/src/java/org/apache/xmlgraphics/xmp/XMPArray.java
URL: http://svn.apache.org/viewvc/xmlgraphics/commons/trunk/src/java/org/apache/xmlgraphics/xmp/XMPArray.java?rev=893118&r1=893117&r2=893118&view=diff
==============================================================================
--- xmlgraphics/commons/trunk/src/java/org/apache/xmlgraphics/xmp/XMPArray.java (original)
+++ xmlgraphics/commons/trunk/src/java/org/apache/xmlgraphics/xmp/XMPArray.java Tue Dec 22 09:14:05 2009
@@ -126,17 +126,17 @@
}
/**
- * Removes a language-dependent value
+ * Removes a language-dependent value.
* @param lang the language ("x-default" for the default value)
* @return the removed value (or null if no value was set)
*/
public String removeLangValue(String lang) {
if (lang == null || "".equals(lang)) {
- return null;
+ lang = XMPConstants.DEFAULT_LANGUAGE;
}
for (int i = 0, c = values.size(); i < c; i++) {
String l = (String)xmllang.get(i);
- if (lang.equals(l)) {
+ if ((XMPConstants.DEFAULT_LANGUAGE.equals(lang) && l == null) || lang.equals(l)) {
String value = (String)values.remove(i);
xmllang.remove(i);
return value;
Modified: xmlgraphics/commons/trunk/test/java/org/apache/xmlgraphics/xmp/XMPPropertyTest.java
URL: http://svn.apache.org/viewvc/xmlgraphics/commons/trunk/test/java/org/apache/xmlgraphics/xmp/XMPPropertyTest.java?rev=893118&r1=893117&r2=893118&view=diff
==============================================================================
--- xmlgraphics/commons/trunk/test/java/org/apache/xmlgraphics/xmp/XMPPropertyTest.java (original)
+++ xmlgraphics/commons/trunk/test/java/org/apache/xmlgraphics/xmp/XMPPropertyTest.java Tue Dec 22 09:14:05 2009
@@ -19,6 +19,7 @@
package org.apache.xmlgraphics.xmp;
+import java.io.StringWriter;
import java.util.Arrays;
import java.util.Calendar;
import java.util.Date;
@@ -26,8 +27,12 @@
import java.util.Set;
import java.util.TimeZone;
+import javax.xml.transform.stream.StreamResult;
+import javax.xml.transform.stream.StreamSource;
+
import junit.framework.TestCase;
+import org.apache.xmlgraphics.util.QName;
import org.apache.xmlgraphics.xmp.schemas.DublinCoreAdapter;
import org.apache.xmlgraphics.xmp.schemas.DublinCoreSchema;
import org.apache.xmlgraphics.xmp.schemas.XMPBasicAdapter;
@@ -82,6 +87,26 @@
assertNull(title);
}
+ public void testReplaceLangAlt() throws Exception {
+ Metadata xmp = new Metadata();
+ DublinCoreAdapter dc = DublinCoreSchema.getAdapter(xmp);
+ dc.setTitle("Default title");
+ StringWriter writer = new StringWriter();
+ XMPSerializer.writeXML(xmp, new StreamResult(writer));
+ String xmpString = writer.toString();
+ xmp = XMPParser.parseXMP(new StreamSource(new java.io.StringReader(xmpString)));
+ dc = DublinCoreSchema.getAdapter(xmp);
+ assertEquals("Default title", dc.getTitle());
+ dc.setTitle("Updated title");
+ XMPProperty prop = xmp.getProperty(new QName(DublinCoreSchema.NAMESPACE, "title"));
+ XMPArray array = prop.getArrayValue();
+ assertNotNull(array);
+ //Check that only one title is present. There used to be a bug that didn't set the
+ //non-qualified value equal to the value qualified with "x-default".
+ assertEquals(1, array.getSize());
+ assertEquals("Updated title", array.getValue(0));
+ }
+
public void testPropertyValues() throws Exception {
Metadata xmp = new Metadata();
DublinCoreAdapter dc = DublinCoreSchema.getAdapter(xmp);
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@xmlgraphics.apache.org
For additional commands, e-mail: commits-help@xmlgraphics.apache.org