Skip to content

Commit 1782096

Browse files
committed
fixup! fixup! Forced use of Woodstox parser for FormatCommand and fixed bug
1 parent 44dc4f9 commit 1782096

File tree

1 file changed

+14
-3
lines changed
  • plugins/codemodder-plugin-maven/src/main/java/io/codemodder/plugins/maven/operator

1 file changed

+14
-3
lines changed

plugins/codemodder-plugin-maven/src/main/java/io/codemodder/plugins/maven/operator/FormatCommand.java

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22

33
import static io.github.pixee.security.XMLInputFactorySecurity.hardenFactory;
44

5-
import com.ctc.wstx.evt.CompactStartElement;
65
import com.ctc.wstx.stax.WstxInputFactory;
76
import com.ctc.wstx.stax.WstxOutputFactory;
87
import java.io.ByteArrayInputStream;
@@ -327,14 +326,26 @@ private void parseXmlAndCharset(POMDocument pomFile) throws XMLStreamException,
327326
String originalPomCharsetString =
328327
new String(pomFile.getOriginalPom(), pomFile.getCharset());
329328

329+
var prev = prevEvents.get(prevEvents.size() - 1);
330330
String untrimmedOriginalContent = "";
331331
// is self-closing element, tag is contained within the offset of the next element
332-
if (prevEvents.get(prevEvents.size() - 1) instanceof CompactStartElement) {
332+
if (prev instanceof StartElement
333+
&& prev.getLocation().getCharacterOffset()
334+
== endElementEvent.getLocation().getCharacterOffset()) {
333335
untrimmedOriginalContent =
334336
originalPomCharsetString.substring(
335337
offset, eventReader.peek().getLocation().getCharacterOffset());
336338
} else {
337-
untrimmedOriginalContent = originalPomCharsetString.substring(elementStart, offset);
339+
// is empty tag, the last character events is not in between the tags
340+
if (prev.isStartElement()) {
341+
untrimmedOriginalContent =
342+
originalPomCharsetString.substring(
343+
prev.getLocation().getCharacterOffset(),
344+
eventReader.peek().getLocation().getCharacterOffset());
345+
346+
} else {
347+
untrimmedOriginalContent = originalPomCharsetString.substring(elementStart, offset);
348+
}
338349
}
339350

340351
String trimmedOriginalContent = untrimmedOriginalContent.trim();

0 commit comments

Comments
 (0)