You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commons-cvs@xml.apache.org by mr...@apache.org on 2005/10/21 04:17:55 UTC
svn commit: r327076 -
/xml/commons/trunk/java/external/src/javax/xml/namespace/QName.java
Author: mrglavas
Date: Thu Oct 20 19:17:51 2005
New Revision: 327076
URL: http://svn.apache.org/viewcvs?rev=327076&view=rev
Log:
Allow older versions of QName which didn't have a prefix field to be deserialized correctly.
Modified:
xml/commons/trunk/java/external/src/javax/xml/namespace/QName.java
Modified: xml/commons/trunk/java/external/src/javax/xml/namespace/QName.java
URL: http://svn.apache.org/viewcvs/xml/commons/trunk/java/external/src/javax/xml/namespace/QName.java?rev=327076&r1=327075&r2=327076&view=diff
==============================================================================
--- xml/commons/trunk/java/external/src/javax/xml/namespace/QName.java (original)
+++ xml/commons/trunk/java/external/src/javax/xml/namespace/QName.java Thu Oct 20 19:17:51 2005
@@ -18,6 +18,8 @@
package javax.xml.namespace;
+import java.io.IOException;
+import java.io.ObjectInputStream;
import java.io.Serializable;
import javax.xml.XMLConstants;
@@ -80,7 +82,7 @@
/**
* <p>prefix of this <code>QName</code>.</p>
*/
- private final String prefix;
+ private String prefix;
/**
* <p><code>String</code> representation of this <code>QName</code>.</p>
@@ -441,5 +443,20 @@
qNameAsString.substring(1, endOfNamespaceURI),
qNameAsString.substring(endOfNamespaceURI + 1),
XMLConstants.DEFAULT_NS_PREFIX);
+ }
+
+ /*
+ * For old versions of QName which didn't have a prefix field,
+ * <code>ObjectInputStream.defaultReadObject()</code> will initialize
+ * the prefix to <code>null</code> instead of the empty string. This
+ * method fixes up the prefix field if it didn't exist in the serialized
+ * object.
+ */
+ private void readObject(ObjectInputStream in)
+ throws IOException, ClassNotFoundException {
+ in.defaultReadObject();
+ if (prefix == null) {
+ prefix = XMLConstants.DEFAULT_NS_PREFIX;
+ }
}
}