Java Mailing List Archive

http://www.junlu.com/

Google
Google
Mailing List
Home
Forum Home
JBoss - Java Application Server
Tomcat - JSP/Servlet container
Struts - A MVC web framework
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
JSP - A mailing list about Java Server Pages specification and reference
Servlet - A mailing list for discussion about Sun Microsystem's Java Servlet API Technology
Struts & Hibernate
Subjects
JSP editor plugin for eclipse ?
org apache jasper JasperException: Unable to compile class for JSP
Tomcat: Connection reset by peer: socket write error
Cannot retrieve definition for form bean null
Struts Tiles Tutorial (free Struts training)
Where do I download Tomcat 4 0 6?
Data Access Object (DAO) pattern, example DAO 's
Where to download Tomcat v 4 1 24 from?
Tomcat 5 0 16 Requested resource not available
Oracle Connection Pooling in 3 2 2
Servlet : Session invalidate
Servlet action is currently unavailable
Tomcat/Struts Unicode Encoding/Decoding problems
Tomcat and webapplication specific java library path
Running a Simple JMS Example
Mapping in workers2 properties
org apache jasper JasperException
Cannot find message resources under key org apache struts action
   MESSAGE
problem with html:text bean throwing exception
Cannot find message resources under key org apache struts action MESSAGE
invalid direct reference problem with solution
Tool for jsp debug Try Sysdeo Eclipse Plugin
Tomcat 5 Cannot load JDBC driver class 'null ' SQL state: null
weblogic ejbc
java properties file
Jboss 3 2 3 Coyote Can 't re
Tomcat 5, Apache2 and mod jk2 integration problem
JBoss example problem new to J2EE
url string for connecting jboss to oracle
Value attribute of <html:checkbox
javax servlet ServletException: BeanUtils populate
HTTP Status 404 The requested resource is not available
5 0 18: Windows XP Pro vs Windows 2000
 
RtfWriter2: OutOfMemory, with patch

RtfWriter2: OutOfMemory, with patch

2006-08-23       - By Dirk M?bius

 Back
Reply:     1     2     3  

Hi,

RtfWriter2 reads the whole document in memory, even if dataCacheStyle is
set to CACHE_DISK. When generating large documents, this could lead to
OutOfMemory exceptions. This happened to be the case in our reporting
system.

The problem is in RtfDocument.writeDocument(), which reads the whole disk
cache into memory before writing it into the final output stream.

The following simple patch fixes this problem. The patch is for the latest
stable release itext-1 (See http://ext-1.ora-code.com).4.3, but can -- with small modifications --- easily
be applied to the latest CVS revision. We would be glad to see it in the
next official release.

Thanks for your great and valuable project!

Dirk Moebius


diff -u -x compile.xml -r ../src.orig/com/lowagie/text/rtf/RtfWriter2.java
./com/lowagie/text/rtf/RtfWriter2.java
--- ../src.orig/com/lowagie/text/rtf/RtfWriter2.java  2005-09-11
21:09:58.000000000 +0200
+++ ./com/lowagie/text/rtf/RtfWriter2.java      2006-08-22
18:14:51.335937500 +0200
@@ -167,7 +167,7 @@
     */
    public void close() {
        try {
-            os.write(rtfDoc.writeDocument());
+            rtfDoc.writeDocument(os);
            if(this.closeStream) {
                os.close();
            }
diff -u -x compile.xml -r
../src.orig/com/lowagie/text/rtf/document/RtfDocument.java
./com/lowagie/text/rtf/document/RtfDocument.java
--- ../src.orig/com/lowagie/text/rtf/document/RtfDocument.java
2005-12-24 13:15:00.000000000 +0100
+++ ./com/lowagie/text/rtf/document/RtfDocument.java  2006-08-22
18:14:22.382812500 +0200
@@ -60,6 +60,7 @@
import com.lowagie.text.rtf.graphic.RtfImage Source code of com.lowagie.text.rtf.graphic.RtfImage;

import java.io.ByteArrayOutputStream Source code of java.io.ByteArrayOutputStream;
+import java.io.OutputStream Source code of java.io.OutputStream;
import java.io.IOException Source code of java.io.IOException;
import java.util.ArrayList Source code of java.util.ArrayList;

@@ -131,11 +132,7 @@
    public byte[] writeDocument() {
        ByteArrayOutputStream docStream = new ByteArrayOutputStream();
        try {
-            docStream.write(OPEN_GROUP);
-            docStream.write(RtfDocument.RTF_DOCUMENT);
-            docStream.write(documentHeader.write());
-            data.writeTo(docStream);
-            docStream.write(CLOSE_GROUP);
+            writeDocument(docStream);
        } catch(IOException ioe) {
            ioe.printStackTrace();
        }
@@ -143,6 +140,19 @@
    }

    /**
+     * Writes the document to the specified output stream
+     *
+     * @(protected) os The OutputStream to write to
+     */
+    public void writeDocument(OutputStream os) throws IOException {
+        os.write(OPEN_GROUP);
+        os.write(RtfDocument.RTF_DOCUMENT);
+        os.write(documentHeader.write());
+        data.writeTo(os);
+        os.write(CLOSE_GROUP);
+    }
+
+    /**
     * Adds an element to the rtf document
     *
     * @(protected) element The element to add



--
Dirk Moebius
Developer, Planning Support Systems
E-Plus, Germany.


-- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- -----
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
__ ____ ____ ____ ____ ____ ____ ____ ____ ____
iText-questions mailing list
iText-questions@(protected)
https://lists.sourceforge.net/lists/listinfo/itext-questions

©2008 junlu.com - Jax Systems, LLC, U.S.A.