Add space if find "?>" inside PI data.


git-svn-id: https://svn.apache.org/repos/asf/xalan/java/trunk@334064 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/src/org/apache/xalan/serialize/FormatterToXML.java b/src/org/apache/xalan/serialize/FormatterToXML.java
index ce3e9fb..cf35f5b 100644
--- a/src/org/apache/xalan/serialize/FormatterToXML.java
+++ b/src/org/apache/xalan/serialize/FormatterToXML.java
@@ -1039,7 +1039,25 @@
       if (data.length() > 0 &&!Character.isSpaceChar(data.charAt(0)))
         accum(' ');
 
-      accum(data);
+      int indexOfQLT = data.indexOf("?>");
+      if(indexOfQLT >= 0)
+      {
+        // See XSLT spec on error recovery of "?>" in PIs.
+        if(indexOfQLT > 0)
+        {
+          accum(data.substring(0, indexOfQLT));
+        }
+        accum("? >");  // add space between.
+        if((indexOfQLT+2) < data.length())
+        {
+          accum(data.substring(indexOfQLT+2));
+        }
+      }
+      else
+      {
+        accum(data);
+      }
+
       accum('?');
       accum('>');