Skip to content

Commit d3f3389

Browse files
committed
[bugfix] When serializing XML, if the prefix points to the same namespace as the default namespace, then remove the qname namespace prefix
Closes eXist-db/exist#5790
1 parent dd294bc commit d3f3389

File tree

6 files changed

+551
-80
lines changed

6 files changed

+551
-80
lines changed

exist-core/pom.xml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -975,6 +975,7 @@
975975
<include>src/main/java/org/exist/util/serializer/DOMStreamer.java</include>
976976
<include>src/main/java/org/exist/util/serializer/EXISerializer.java</include>
977977
<include>src/test/java/org/exist/util/serializer/HTML5WriterTest.java</include>
978+
<include>src/main/java/org/exist/util/serializer/SAXSerializer.java</include>
978979
<include>src/main/java/org/exist/util/serializer/SerializerObjectFactory.java</include>
979980
<include>src/main/java/org/exist/util/serializer/json/JSONObject.java</include>
980981
<include>src/test/java/org/exist/util/serializer/json/JSONObjectTest.java</include>
@@ -1388,6 +1389,7 @@
13881389
<exclude>src/main/java/org/exist/util/serializer/DOMStreamer.java</exclude>
13891390
<exclude>src/main/java/org/exist/util/serializer/EXISerializer.java</exclude>
13901391
<exclude>src/test/java/org/exist/util/serializer/HTML5WriterTest.java</exclude>
1392+
<exclude>src/main/java/org/exist/util/serializer/SAXSerializer.java</exclude>
13911393
<exclude>src/main/java/org/exist/util/serializer/SerializerObjectFactory.java</exclude>
13921394
<exclude>src/main/java/org/exist/util/serializer/json/JSONObject.java</exclude>
13931395
<exclude>src/test/java/org/exist/util/serializer/json/JSONObjectTest.java</exclude>

exist-core/src/main/java/org/exist/util/StringUtil.java

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -293,4 +293,24 @@ public static boolean endsWith(@Nullable final String string, @Nullable final St
293293

294294
return string.substring(0, idx);
295295
}
296+
297+
/**
298+
* Test if two strings are equal whilst handling null references.
299+
*
300+
* @param s1 the first string.
301+
* @param s2 the second string.
302+
*
303+
* @return true of the strings are equal or both are null, false otherwise.
304+
*/
305+
public static boolean equals(@Nullable final String s1, @Nullable final String s2) {
306+
if (s1 == s2) {
307+
return true;
308+
}
309+
310+
if (s1 == null) {
311+
return false;
312+
}
313+
314+
return s1.equals(s2);
315+
}
296316
}

0 commit comments

Comments
 (0)