Skip to content

ConstructingParser complains OutOfMemoryError when parsing invalid XML nodes #7311

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
scabug opened this issue Mar 29, 2013 · 3 comments
Closed

Comments

@scabug
Copy link

scabug commented Mar 29, 2013

ConstructingParser seems to consume heaps of memory when parsing invalid XML nodes:

Welcome to Scala version 2.10.1 (Java HotSpot(TM) 64-Bit Server VM, Java 1.7.0_17).
Type in expressions to have them evaluated.
Type :help for more information.

scala> import scala.xml.parsing._
import scala.xml.parsing._

scala> import scala.xml._
import scala.xml._

scala> import scala.io._
import scala.io._

scala> ConstructingParser.fromSource(Source.fromString("<node attr=\""), true).document.docElem
java.lang.OutOfMemoryError: Java heap space
	at java.util.Arrays.copyOf(Arrays.java:2367)
	at java.lang.AbstractStringBuilder.expandCapacity(AbstractStringBuilder.java:130)
	at java.lang.AbstractStringBuilder.ensureCapacityInternal(AbstractStringBuilder.java:114)
	at java.lang.AbstractStringBuilder.append(AbstractStringBuilder.java:587)
	at java.lang.StringBuilder.append(StringBuilder.java:214)
	at scala.collection.mutable.StringBuilder.append(StringBuilder.scala:264)
	at scala.xml.parsing.MarkupParserCommon$class.xAttributeValue(MarkupParserCommon.scala:66)
	at scala.xml.parsing.ConstructingParser.xAttributeValue(ConstructingParser.scala:47)
	at scala.xml.parsing.MarkupParserCommon$class.xAttributeValue(MarkupParserCommon.scala:74)
	at scala.xml.parsing.ConstructingParser.xAttributeValue(ConstructingParser.scala:47)
	at scala.xml.parsing.MarkupParser$class.xAttributes(MarkupParser.scala:310)
	at scala.xml.parsing.ConstructingParser.xAttributes(ConstructingParser.scala:47)
	at scala.xml.parsing.MarkupParser$class.mkAttributes(MarkupParser.scala:282)
	at scala.xml.parsing.ConstructingParser.mkAttributes(ConstructingParser.scala:47)
	at scala.xml.parsing.ConstructingParser.mkAttributes(ConstructingParser.scala:47)
	at scala.xml.parsing.MarkupParserCommon$class.xTag(MarkupParserCommon.scala:44)
	at scala.xml.parsing.ConstructingParser.xTag(ConstructingParser.scala:47)
	at scala.xml.parsing.MarkupParser$class.element1(MarkupParser.scala:553)
	at scala.xml.parsing.ConstructingParser.element1(ConstructingParser.scala:47)
	at scala.xml.parsing.MarkupParser$class.content1(MarkupParser.scala:418)
	at scala.xml.parsing.ConstructingParser.content1(ConstructingParser.scala:47)
	at scala.xml.parsing.MarkupParser$class.document(MarkupParser.scala:239)
	at scala.xml.parsing.ConstructingParser.document(ConstructingParser.scala:47)
	at .<init>(<console>:17)
	at .<clinit>(<console>)
	at .<init>(<console>:7)
	at .<clinit>(<console>)
	at $print(<console>)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:601)
@scabug
Copy link
Author

scabug commented Mar 29, 2013

Imported From: https://issues.scala-lang.org/browse/SI-7311?orig=1
Reporter: Howard Guo (howard)
Affected Versions: 2.10.1

@scabug
Copy link
Author

scabug commented Jul 17, 2015

@SethTisue said:
The scala-xml library is now community-maintained. Issues with it are now tracked at https://github.com/scala/scala-xml/issues instead of here in the Scala JIRA.

Interested community members: if you consider this issue significant, feel free to open a new issue for it on GitHub, with links in both directions.

@scabug scabug closed this as completed Jul 17, 2015
@scabug
Copy link
Author

scabug commented Jul 18, 2015

@som-snytt said:
scala/scala-xml#35

and

scala/scala-xml#44

if only anyone visited.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant