   | Mailing List | | Home | | Forum Home | | JBoss - Java Application Server | | Struts - A MVC web framework | | Tomcat - JSP/Servlet container | | iText - An open source PDF Java Library | | JDOM - JDOM XML Parser | | J2EE - A mailing list for Java(tm) 2 Platform, Enterprise Edition | | J2EE Pattern - An interest list for Sun Java Center J2EE Pattern Catalog | | Servlet - A mailing list for discussion about Sun Microsystem's Java Servlet API Technology | | JSP - A mailing list about Java Server Pages specification and reference | |
Struts & Hibernate
|
|
|
  | |  | Memory problems | Memory problems 2003-12-29 - By Pramodh Peddi
Back Hi, I am using JDOM for XML processing. I use SAXBuilder. I am having memory problems when it deals with huge documents (like 10MB), even though it is using SAXBuidler. It throws OutOfMemoryError when I try to build a 8MB document. I assume it does not keep the whole tree in memory if I use SAXBuilder. Does it ? If what I assume is right, why is it running out of memory while building the doc of 8MB xml? 8MB should not be enough to make fail because of memory problems. right?
This is how I build a document: ******************************************************************************* ********************* public Document getDocumentfromString(String xmlString) throws JDOMException, IOException { Document schemaDoc = null; SAXBuilder builder = new SAXBuilder(false); String resultingXML = null; byte[] xmlBytes = null;
try { //get the UTF 8 encoded bytes xmlBytes = xmlString.getBytes("UTF8"); schemaDoc = builder.build(new ByteArrayInputStream(xmlBytes)); } catch (UnsupportedEncodingException usee) { // system does not support UTF-8 encoding. use default encoding schemaDoc = builder.build(new StringReader(xmlString)); }
return schemaDoc; } ******************************************************************************* **********************
Am I doing anything wrong to make it fail while building a 8MB doc?
Do you think using JAXP API (again, using SAX) is better memory wise?
Any help would be greatly appreciated!
Thanks,
Pramodh. ?<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML><HEAD> <META http-equiv=Content-Type content="text/html; CHARSET=UTF-8"> <META content="MSHTML 6.00.2800.1276" name=GENERATOR> <STYLE></STYLE> </HEAD> <BODY bgColor=#ffffff> <DIV><FONT face=Arial size=2>Hi,</FONT></DIV> <DIV><FONT face=Arial size=2>I am using JDOM for XML processing. I use SAXBuilder. I am having memory problems when it deals with huge documents (like 10MB), even though it is using SAXBuidler. It throws OutOfMemoryError when I try to build a 8MB document.</FONT></DIV> <DIV><FONT face=Arial size=2>I assume it does not keep the whole tree in memory if I use SAXBuilder. Does it? If what I assume is right, why is it running out of memory while building the doc of 8MB xml? 8MB should not be enough to make fail because of memory problems. right?</FONT></DIV> <DIV><FONT face=Arial size=2></FONT> </DIV> <DIV><FONT face=Arial size=2>This is how I build a document:</FONT></DIV> <DIV><FONT face=Arial size=2>************************************************************************ ****************************</FONT></DIV> <DIV><FONT face=Arial size=2> public Document getDocumentfromString(String xmlString)<BR> throws JDOMException, IOException {<BR> Document schemaDoc = null;<BR> SAXBuilder builder = new SAXBuilder(false);<BR> String resultingXML = null;<BR> byte[] xmlBytes = null;</FONT></DIV> <DIV> </DIV> <DIV><FONT face=Arial size=2> try {<BR> //get the UTF 8 encoded bytes<BR> xmlBytes = xmlString.getBytes("UTF8");<BR> schemaDoc = builder.build(new ByteArrayInputStream(xmlBytes));<BR> } catch (UnsupportedEncodingException usee) {<BR> // system does not support UTF-8 encoding. use default encoding <BR> schemaDoc = builder.build(new StringReader(xmlString));<BR> }</FONT></DIV> <DIV> </DIV> <DIV><FONT face=Arial size=2> return schemaDoc;<BR> }</FONT></DIV> <DIV><FONT face=Arial size=2>************************************************************************ *****************************</FONT></DIV> <DIV><FONT face=Arial size=2></FONT> </DIV> <DIV><FONT face=Arial size=2>Am I doing anything wrong to make it fail while building a 8MB doc?</FONT></DIV> <DIV><FONT face=Arial size=2></FONT> </DIV> <DIV><FONT face=Arial size=2>Do you think using JAXP API (again, using SAX) is better memory wise?</FONT></DIV> <DIV><FONT face=Arial size=2></FONT> </DIV> <DIV><FONT face=Arial size=2>Any help would be greatly appreciated!</FONT></DIV> <DIV><FONT face=Arial size=2></FONT> </DIV> <DIV><FONT face=Arial size=2>Thanks,</FONT></DIV> <DIV><FONT face=Arial size=2></FONT> </DIV> <DIV><FONT face=Arial size=2>Pramodh.</FONT></DIV></BODY></HTML>
Earn $52 per hosting referral at Lunarpages.
|
|
 |