Skip to content

Commit c18aeb2

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 809391b commit c18aeb2

File tree

6 files changed

+552
-80
lines changed

6 files changed

+552
-80
lines changed

exist-core/pom.xml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -921,6 +921,7 @@
921921
<include>src/main/java/org/exist/util/serializer/DOMStreamer.java</include>
922922
<include>src/main/java/org/exist/util/serializer/EXISerializer.java</include>
923923
<include>src/test/java/org/exist/util/serializer/HTML5WriterTest.java</include>
924+
<include>src/main/java/org/exist/util/serializer/SAXSerializer.java</include>
924925
<include>src/main/java/org/exist/util/serializer/SerializerObjectFactory.java</include>
925926
<include>src/main/java/org/exist/util/serializer/json/JSONObject.java</include>
926927
<include>src/test/java/org/exist/util/serializer/json/JSONObjectTest.java</include>
@@ -1320,6 +1321,7 @@
13201321
<exclude>src/main/java/org/exist/util/serializer/DOMStreamer.java</exclude>
13211322
<exclude>src/main/java/org/exist/util/serializer/EXISerializer.java</exclude>
13221323
<exclude>src/test/java/org/exist/util/serializer/HTML5WriterTest.java</exclude>
1324+
<exclude>src/main/java/org/exist/util/serializer/SAXSerializer.java</exclude>
13231325
<exclude>src/main/java/org/exist/util/serializer/SerializerObjectFactory.java</exclude>
13241326
<exclude>src/main/java/org/exist/util/serializer/json/JSONObject.java</exclude>
13251327
<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)