8272261: Improve JFR recording file processing

Reviewed-by: mbaesken
Backport-of: 71dc970b928a6b3ccc4973f56765a4ff7c43860d
diff --git a/src/jdk.jfr/share/classes/jdk/jfr/internal/tool/JSONWriter.java b/src/jdk.jfr/share/classes/jdk/jfr/internal/tool/JSONWriter.java
index 0e008c8..5ca7697 100644
--- a/src/jdk.jfr/share/classes/jdk/jfr/internal/tool/JSONWriter.java
+++ b/src/jdk.jfr/share/classes/jdk/jfr/internal/tool/JSONWriter.java
@@ -187,7 +187,7 @@
     private void printDataStructureName(String text) {
         printIndent();
         print("\"");
-        print(text);
+        printEscaped(text);
         print("\": ");
     }
 
diff --git a/src/jdk.jfr/share/classes/jdk/jfr/internal/tool/XMLWriter.java b/src/jdk.jfr/share/classes/jdk/jfr/internal/tool/XMLWriter.java
index 2db1688..056642e 100644
--- a/src/jdk.jfr/share/classes/jdk/jfr/internal/tool/XMLWriter.java
+++ b/src/jdk.jfr/share/classes/jdk/jfr/internal/tool/XMLWriter.java
@@ -83,7 +83,11 @@
     }
 
     private void printAttribute(String name, String value) {
-        print(" ", name, "=\"", value, "\"");
+        print(" ");
+        print(name); // Only known strings
+        print("=\"");
+        printEscaped(value);
+        print("\"");
     }
 
     public void printObject(RecordedObject struct) {