OutOfMemoryError

java.lang.OutOfMemoryError
at com.solvoterra.xmlengine.Element.<init>(Element.java:9)
at com.solvoterra.xmlengine.XML_Handler_Main.startElement(XML_Handler_Main.java:71)
at org.apache.harmony.xml.ExpatParser.startElement(ExpatParser.java:146)
at org.apache.harmony.xml.ExpatParser.append(Native Method)
at org.apache.harmony.xml.ExpatParser.parseFragment(ExpatParser.java:505)
at org.apache.harmony.xml.ExpatParser.parseDocument(ExpatParser.java:492)
at org.apache.harmony.xml.ExpatReader.parse(ExpatReader.java:308)
at org.apache.harmony.xml.ExpatReader.parse(ExpatReader.java:264)
at com.solvoterra.xmlengine.Project_Man.readXML_File(Project_Man.java:148)
at com.solvoterra.xmlengine.Project_Man.run(Project_Man.java:83)
at java.lang.Thread.run(Thread.java:1102)

I see that an error occurred while starting a new process that contains only the SAX function. Parse the XML file into memory (RAM). I do not know all the details, because this information was provided by an anonymous user in the market.

Before the Parse function is called, all buffers and memory are cleared of existing data.

Q: Is it possible that the user is trying to analyze a huge XML database in memory, and the RAM allocated by his phone is simply not enough to process his database?

+3
source share
2 answers

The Sax parsing method does not load things in memory itself (unlike the DOM). Only your way of handling events generated by SAX can cause memory overload.

XML, :

  • , BD
  • , X- XML , , (paginate)
  • XML ,

OutOfMemoryError , XML. , , , . , OutOfMemoryError , .

+1

( , XML ). SAX Parser - , ( DOM Parser). , SAX . XML / SAX Parser. SAX.

0
source

Source: https://habr.com/ru/post/1782599/


All Articles