Skip to content

Commit 063c03a

Browse files
committed
Call reset on reusable SAXParser instance
1 parent e2b3913 commit 063c03a

File tree

2 files changed

+8
-3
lines changed

2 files changed

+8
-3
lines changed

jvm/src/test/scala/scala/xml/XMLTest.scala

+3-2
Original file line numberDiff line numberDiff line change
@@ -667,13 +667,14 @@ class XMLTestJVM {
667667
@UnitTest
668668
def checkThatErrorHandlerIsNotOverwritten(): Unit = {
669669
var gotAnError: Boolean = false
670-
XML.reader.setErrorHandler(new org.xml.sax.ErrorHandler {
670+
val reader = XML.reader
671+
reader.setErrorHandler(new org.xml.sax.ErrorHandler {
671672
override def warning(e: SAXParseException): Unit = gotAnError = true
672673
override def error(e: SAXParseException): Unit = gotAnError = true
673674
override def fatalError(e: SAXParseException): Unit = gotAnError = true
674675
})
675676
try {
676-
XML.loadString("<a>")
677+
XML.adapter.loadDocument(Source.fromString("<a>"), reader)
677678
} catch {
678679
case _: org.xml.sax.SAXParseException =>
679680
}

shared/src/main/scala/scala/xml/factory/XMLLoader.scala

+5-1
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,11 @@ trait XMLLoader[T <: Node] {
4545
}
4646

4747
/* Override this to use a different SAXParser. */
48-
def parser: SAXParser = parserInstance.get
48+
def parser: SAXParser = {
49+
val p = parserInstance.get
50+
p.reset()
51+
p
52+
}
4953

5054
/* Override this to use a different XMLReader. */
5155
def reader: XMLReader = parser.getXMLReader

0 commit comments

Comments
 (0)