Skip to content

Commit 963f1fc

Browse files
committed
8264309: JFR: Improve .jfc parser
Reviewed-by: mgronlun
1 parent 364cce1 commit 963f1fc

File tree

1 file changed

+9
-14
lines changed

1 file changed

+9
-14
lines changed

src/jdk.jfr/share/classes/jdk/jfr/internal/jfc/JFCParserHandler.java

+9-14
Original file line numberDiff line numberDiff line change
@@ -42,9 +42,9 @@ final class JFCParserHandler extends DefaultHandler {
4242
private static final String ATTRIBUTE_VERSION = "version";
4343

4444
final Map<String, String> settings = new LinkedHashMap<String, String>();
45-
private String currentEventPath;
45+
private final StringBuilder currentCharacters = new StringBuilder();
46+
private String currentEventName;
4647
private String currentSettingsName;
47-
private StringBuilder currentCharacters;
4848
String label;
4949
String provider;
5050
String description;
@@ -62,13 +62,13 @@ public void startElement(String uri, String localName, String qName, Attributes
6262
provider = getOptional(attributes, ATTRIBUTE_PROVIDER, "");
6363
break;
6464
case ELEMENT_EVENT_TYPE:
65-
currentEventPath = attributes.getValue(ATTRIBUTE_NAME);
65+
currentEventName = attributes.getValue(ATTRIBUTE_NAME);
6666
break;
6767
case ELEMENT_SETTING:
6868
currentSettingsName = attributes.getValue(ATTRIBUTE_NAME);
6969
break;
7070
}
71-
currentCharacters = null;
71+
currentCharacters.setLength(0);
7272
}
7373

7474
private String getOptional(Attributes attributes, String name, String defaultValue) {
@@ -78,10 +78,9 @@ private String getOptional(Attributes attributes, String name, String defaultVal
7878

7979
@Override
8080
public void characters(char[] ch, int start, int length) throws SAXException {
81-
if (currentCharacters == null) {
82-
currentCharacters = new StringBuilder(length);
81+
if (currentSettingsName != null) {
82+
currentCharacters.append(ch, start, length);
8383
}
84-
currentCharacters.append(ch, start, length);
8584
}
8685

8786
@Override
@@ -90,17 +89,13 @@ public void endElement(String uri, String localName, String qName) {
9089
case ELEMENT_CONFIGURATION:
9190
break;
9291
case ELEMENT_EVENT_TYPE:
93-
currentEventPath = null;
92+
currentEventName = null;
9493
break;
9594
case ELEMENT_SETTING:
96-
String settingsValue = currentCharacters == null ? "" : currentCharacters.toString();
97-
settings.put(currentEventPath + "#" + currentSettingsName, "" + settingsValue);
95+
String settingsValue = currentCharacters.toString();
96+
settings.put(currentEventName + "#" + currentSettingsName, settingsValue);
9897
currentSettingsName = null;
9998
break;
10099
}
101100
}
102-
103-
public Map<String, String> getSettings() {
104-
return settings;
105-
}
106101
}

0 commit comments

Comments
 (0)