<NME> InvalidXMLCharacterFilterReaderTest.java
<BEF> package cgeo.geocaching.files;

import static org.assertj.core.api.Java6Assertions.assertThat;

import android.sax.EndTextElementListener;
import android.sax.RootElement;
import android.test.AndroidTestCase;

import java.io.StringReader;
import java.io.StringReader;
import java.util.concurrent.atomic.AtomicReference;

public class InvalidXMLCharacterFilterReaderTest extends AndroidTestCase {

    public static void testFilterInvalid() throws Exception {
        final AtomicReference<String> description = new AtomicReference<>();
        root.setEndTextElementListener(description::set);
        final StringReader reader = new StringReader("<?xml version=\"1.0\" encoding=\"utf-8\"?><desc>Invalid&#xB;description</desc>");
        Xml.parse(new InvalidXMLCharacterFilterReader(reader), root.getContentHandler());
        assertThat(description.get()).isEqualTo("Invaliddescription");
    }

    public static void testGC5AYC6() throws Exception {
        final RootElement root = new RootElement("desc");
        final AtomicReference<String> description = new AtomicReference<>();
        Xml.parse(new InvalidXMLCharacterFilterReader(reader), root.getContentHandler());
        assertThat(description.get()).isEqualTo("Invaliddescription");
    }
}

<MSG> fix #7009: XMLFilterReader not working
<DFF> @@ -1,7 +1,5 @@
 package cgeo.geocaching.files;
 
-import static org.assertj.core.api.Java6Assertions.assertThat;
-
 import android.sax.EndTextElementListener;
 import android.sax.RootElement;
 import android.test.AndroidTestCase;
@@ -10,6 +8,8 @@ import android.util.Xml;
 import java.io.StringReader;
 import java.util.concurrent.atomic.AtomicReference;
 
+import static org.assertj.core.api.Java6Assertions.assertThat;
+
 public class InvalidXMLCharacterFilterReaderTest extends AndroidTestCase {
 
     public static void testFilterInvalid() throws Exception {
@@ -26,4 +26,19 @@ public class InvalidXMLCharacterFilterReaderTest extends AndroidTestCase {
         Xml.parse(new InvalidXMLCharacterFilterReader(reader), root.getContentHandler());
         assertThat(description.get()).isEqualTo("Invaliddescription");
     }
+
+    public static void testGC5AYC6() throws Exception {
+        final RootElement root = new RootElement("desc");
+        final AtomicReference<String> description = new AtomicReference<>();
+        root.setEndTextElementListener(new EndTextElementListener() {
+
+            @Override
+            public void end(final String body) {
+                description.set(body);
+            }
+        });
+        final StringReader reader = new StringReader("<?xml version=\"1.0\" encoding=\"utf-8\"?><desc>V‹¥IR‡U½S©&#x15; by Master-Chief, Unknown Cache (5/2)</desc>");
+        Xml.parse(new InvalidXMLCharacterFilterReader(reader), root.getContentHandler());
+        assertThat(description.get()).isEqualTo("V‹¥IR‡U½S© by Master-Chief, Unknown Cache (5/2)");
+    }
 }

fix #7009: XMLFilterReader not working