Skip to main content

Report Display

31 replies [Last post]
ganesh.bhat
Offline
Joined: 2006-02-17

Hi,

I am creating a software for displaying reports. The report contains more than
18000 lines of data and at least 60 images
.Also, the requirements are such
that when the user clicks on the header of a particular topic (in a separate
page/panel/tree node) it should take him to the line mapped exactly against the
header.
This line can be any one of the 18000 lines and its position can be dynamic ie. changing every time.

My Implementation

I just wanted to keep the whole thing simple, so i built a html page containing the
data and the images and loaded them into a JEditorPane. Everything woks
fine here, except for the OutOfmemory error that is inherent in JEditorPane.
Also, when this report is loaded with the -Xmx option, the memory consumption
of the software raises from around 30M to 144M, but with no outofmemory
errors. But, the application and the underlying OS slowed down considerably
and the performance reached down to a level that is simply unacceptable. So, I
had to look for a change.

The second thing that i tried was a JLabel. Here again, the problem was same
as above. Just to check how much memory intensive a JLabel was, i wrote a
program where i created 900 JLabels and added them to a panel, once with
plain text and the other time, with HTML text. The one with plain text took 11M
while the one with HTML Text took 34M. So, JLabel (and any other HTML
implementation) was out of question.

My Question

1) Is there some way where the HTML page can be displayed in a Non<br />
memory hogging manner?</p>
<p>2) Can anyone get any other design idea on how to get about this thing? Just<br />
consider it as a problem of displaying a HTML page with inline hyperlinks, with<br />
the inline hyperlinks residing in a separate space. The main criteria is that the<br />
thing should look good, be efficient, load images well and must be able to drill<br />
down to an exact line. There is no restriction on how it is implemented.

if anyone has a solution to any of my above questions, pls respond.

[I have also posted this topic in Java Forums [http://forum.java.sun.com/thread.jspa?threadID=576758]]

Thanks,
Ganesh

Reply viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.
ganesh.bhat
Offline
Joined: 2006-02-17

Hi,

One more thing: How do you clear the memory occupied by a BufferedImage? I tried flush and then set it to null before calling a gc, but it did not have much effect.

Thanks,
Ganesh

ganesh.bhat
Offline
Joined: 2006-02-17

Just closing the post...

Igor, your approach worked. A little slow yes, but absolutely useful.

Thanks for your time and help. Thanks also to Shannon and Scott.

Rgds,
Ganesh

shan-man
Offline
Joined: 2006-02-17

Ganesh,

That's fantastic! I'm thrilled to hear you have things working now :)

Shannon

Scott Violet

Ganesh,

If your machine has the memory for it you could up the maximum heap
size. Would that work for you?

If that doesn't do it I think you're going to have to load and unload
the images as necessary. By that I mean if your machine can't handle
loading everything at one time try and only load the things that are
going to be displayed. You might look into SoftReferences as a way to
manage that.

-Scott

idk
Offline
Joined: 2005-01-12

Scott,

>If that doesn't do it I think you're going to have to load and unload the images as necessary.

This is what JList is doing. Neither rendered html nor loaded images persist in memory. For every list item to display renderer handles html and loads images from scratch every time.

Thanks,
Igor

ganesh.bhat
Offline
Joined: 2006-02-17

Hi Igor,

I tried your suggestion. The memory usage went up from 31M to 70M, and I did not get an OutOfMemory Exception. Also, it went to 70M because I still have a stack of labels having HTML text, and they are taking a lot of memory.

One more thing: I am using java 1.4.2.

Also, i went through Chet's blogs. However, I could not find anything much on how to create PNG/GIF images without consuming much memory. It will be good if i get some pointers on that.

is it possible to optimize JEditorPane so that it does not pop up a OOm error? Also, in a JList what is the difference in memory consumption if i try loading 36 images in PNG format in 36 labels and 36 images in 1 label?

Thanks,
Ganesh

idk
Offline
Joined: 2005-01-12

Hi Ganesh,

> I tried your suggestion

Which one of them did you try?

> I still have a stack of labels having HTML text, and they are taking a lot of memory.

How does it relate to my suggestions?

> Also, in a JList what is the difference in memory consumption if i try loading 36 images in PNG format in 36 labels and 36 images in 1 label?

It is all depends on your implementation. If images are part of ListModel then memory usage should be the same. If they are created in renderer than no more than one image will be in memory at at time.

> is it possible to optimize JEditorPane so that it does not pop up a OOm error?

If JEditorPane does not throw OutOfMemory exception when you load the document without images then it is already optimized for your needs.
You were saying "The memory usage went up from 31M to 70M". For document of that size (without images) 30m is to be expected. Is it to much in your case? What memory boundaries do you have in mind?

> Also, i went through Chet's blogs. However, I could not find anything much on how to create PNG/GIF images without consuming much memory

You did not indicate how big the images are. I can not tell whether Chet's suggestions are relevant to your case.
The part I was referring to is
Copied from http://java.sun.com/developer/technicalArticles/Media/intimages/
----
Example: Pre-Transformed Images

The basic approach with intermediate images is to create an image of the type and size that you need, perform your expensive operations to that intermediate image, and thereafter copy from that image instead of performing your rendering operations directly.
---

Could you load document whiteout images and see what happens with memory? Could you load images without the document and see what goes on with memory ?
Which of these cases are you concerned about ?

Say document loading takes 30M and image loading takes 200M. Optimizing JEditorPane would not not help you problem much.

Best,
Igor

Message was edited by: idk

ganesh.bhat
Offline
Joined: 2006-02-17

Hi Igor,

Sorry for the ambiguity.

I tried the JList implementation and it is working well without OOm Errors. There is some performance tuning to be done still (speed especially), but for the present, i can say it is working well.

> I still have a stack of labels having HTML text, and they are taking a lot of memory.
>How does it relate to my suggestions?
This, I was just explaining that the memory occupied by the JList implementation is actually much lesser than what is obtained by checking the windows task manager. I am implementing the hyperlink concept in my report, and for the hyperlinks i have a set of labels that contain the link to a particular place in the detailed report (the JList implementation). I have implemented these using HTML text, as these were more than 500 and for working around the GridBagLayout array index out of bounds (512) problem, I had to combine 2 labels into one.

>It is all depends on your implementation. If images are part of ListModel then memory usage should be the same. If they are created in renderer than no more than one image will be in memory at at time
The images are links of the type http://java.sun.com/developer/technicalArticles/Media/intimages/

yes, I had been through this blog and also teh other about buffered and volatile images. The above blog is for loading images, but for me, the image loading part is not under my control, as i use HTML. So, what i wanted to know was how to optimize image creation, where some memory is consumed.

>Could you load document whiteout images and see what happens with memory? Could you load images without the document and see what goes on with memory ?
>Which of these cases are you concerned about ?

Yes. I tried both (Using JEditorPane). Document without images gives OOM exception afer the setPage() method is called 5 or 6 times. Document with only images gives OOM exception after loading 12 images, with the size of each image equal to 14KB, 1315x485 pixels in 24bit format. I am concerned with both as sometimes I have to display only text, sometimes only images and sometimes both.
Without images -> Memory goes up from 30M to 81M
With Images -> 30M to 93M, OOM , and then back to 19M
With both -> 30M to 93M, OOm, and then back to 28M.

>What memory boundaries do you have in mind?
I just need something that works well within the default heap boundaries of the VM. if i use the -Xmx128 option, everything works fine. Otherwise, OOM error is guaranteed.And, always it happens when loading images. When an OOM error occurs, that particular image is not loaded. The ones after it are loaded.

I would like to clarify that the OOM error encountered by me is for JEditorPane, and the position is the same right from the start. For the JList implementation, the application does get a bit slow, but I guess that is because I am using DefaultListModel. I will optimize that and post the results here.

I would like to thank you again for the priceless info u have given on JList.

Thanks,
Ganesh

ganesh.bhat
Offline
Joined: 2006-02-17

Hi Igor,

When i profiled the application, most of the space was occupied by the JList display component. The DefaultListModel occupied the maximum space.

Am i doing the right thing by using the defaultlistmodel and using cellrenderer that extends a JLabel? Also, whenever any image is involved, i have changed my code such that the image path is returned and i set it as an imageicon for the JList cell. So, a cell (Label) will not have more than one image at a time.

Also, is there any other implementation/design alternative to this?

Sorry for the trouble, but a solution to this problem is very important to me. Hope you understand.

Thanks,
Ganesh

idk
Offline
Joined: 2005-01-12

Hi,

> Finally, the OutOfMemory Error came to the surface in the JList implementation also.

If JList is in fact the reason for this exception that means that there is a single list item which requires so much memory.

> When i profiled the application, most of the space was occupied by the JList display component. The DefaultListModel occupied the maximum space.

What do you store in ListModel ? It should not occupy much more than the original html document. How did you profile? How do you know that ListModel occupied maximum space but not has the maximum number of objects?

>Also, even if the same JLabel renderer is used for all the JList cells, will not separate HTMLEditorKit components be initialized for each of them? is it not a source of OOM exception?

The same JLabel uses the same HTMLEditorKit most likely. If you do not store renderer it does not matter anyway.

> Also, for a JList containing 370 cells, rendering was done 1700 times

It should be once per list item to get sizes and once for every paint. Did you scroll JList back and forth? If the answer is yes than there is nothing to worry about.

> I make two calls to the scrollRectToVisible function simultaneously. One is to scroll to 0,0,0,0 and the other is to scroll to the required text. Does this lead to the OOM?

It should not lead to OOM. Only what you store in ListModel affects memory.
It might affect CPU. If scrolling to 0,0 and scrolling to required text triggers painting for two different rectangles then it leads to creating more renderers then needed. Which is expensive because html handling is involved. Is there a reason to scroll it this way?

-Igor

Message was edited by: idk

ganesh.bhat
Offline
Joined: 2006-02-17

Hi,

>If your machine has the memory for it you could up the maximum heap size. Would that work for you?
Yes Scott. This option works. But, in one isolated case, someone told that application gets slow when the -Xmx option is used and I was asked to find other fix for this.:( There were no OOM though.

>If JList is in fact the reason for this exception that means that there is a single list item which requires so much memory.
Always, it occurs when rendering a particular JLabel containing 1500+ ( < 2K) lines of text. Is there any optimization limit on the number of lines of text that can be accomodated?

>What do you store in ListModel ?
Since I have to dynamically add and replace data, the DefaultListModel contains all the texts and images. I am adding Images by directly passing ImageIcon to the addElement(Object) method, and in the renderer I check using instanceof.

>How did you profile?
I am using Eclipse 3.0 and profiled using Eclipse Profiler Plugin (http://eclipsecolorer.sourceforge.net).

>How do you know that ListModel occupied maximum space but not has the maximum number of objects
Sorry for the ambiguity in my previous post.ListModel has the maximum number of objects. Within it, Vector comes first, followed by image objects.

>Did you scroll JList back and forth? If the answer is yes than there is nothing to worry about.
I have two panels on my screen. One of them is visible at a time. Initially, JList is not visible. The Panel on the front contains hyperlinks (MouseListeners) to the JList headers. the first time I set the panel containing the JList visible, rendering is done 1700 times for a List of 353 items. After that, rendering is done only for the List item being displayed.

Is there a reason to scroll it this way?
Done to implement the hyperlink concept. I scroll to (0, [combined height of previous list items],[list width], [list height]). I use list height so that the header text within the list is displayed on the top of the screen. Now, if I scroll to (0, 200, 200, [list height]) then scrolling back to [0, 50, 200, [list height]) does not happen(as the whole list is set to be the displayed region). I can replace [list height] by [list item height], but it does not scroll that particular item to the top of the screen if the list item height is less than the screen height.

>then it leads to creating more renderers then needed.
Is ensureIndexIsVisible(index) option better than the scrollRectTo... Option then or do they require the same amount of rendering as both do the same thing?

Regards,
Ganesh

idk
Offline
Joined: 2005-01-12

Hi,

> rendering is done 1700 times for a List of 353 items. After that, rendering is done only for the List item being displayed.

I guess it happens because JList's width is changing. It needs to layout the same cell many times. You might make width constant to work around it.

>Since I have to dynamically add and replace data, the DefaultListModel contains all the texts and images.

You do not want images there. What you have in ListModel is 'persistent'. The goal is to have it as small as possible.

> Is ensureIndexIsVisible(index) option better than the scrollRectTo... Option then or do they require the same amount of rendering as both do the same thing?

scrollRectTo is fine.
From your previous post
"Also, I make two calls to the scrollRectToVisible function simultaneously. One is to scroll to 0,0,0,0 and the other is to scroll to the required text" I was under impression that you do both :)

Best,
Igor

ganesh.bhat
Offline
Joined: 2006-02-17

Hi Igor,

Thanks for the reply.

I have now moved the images away from the ListModel to the ListRenderer. It is a big improvement:)

Setting a Width for the List would have been good, but since my images have varying widths and the texts within each header have varying heights, I cant do both:)

I guess i will have to use the -Xmx option anyway..For a report containing 19K+ lines, i think it is impossible to accomodate everything within 64M of memory. Is it possible to pass the option in the manifest file?

Is there no way to display HTML text without limiting the amount of memory consumed?

Regards,
Ganesh

idk
Offline
Joined: 2005-01-12

Hi,

> I guess i will have to use the -Xmx option anyway..For a report containing 19K+ lines, i think it is impossible to accomodate everything within 64M of memory.

If you do not keep all images in memory than only size of a single listItem matters. If you can not split original document into pieces so that there are no huge pieces than you might have to use -Xmx options.

Best
-Igor

ganesh.bhat
Offline
Joined: 2006-02-17

Hi,

The 19K+ lines of report is split by me into 365 pieces, ranging form 1.5K lines to 75 lines. I guess the one that has 1.5K+ of html text needs more memory...

Thanks,
Ganesh

idk
Offline
Joined: 2005-01-12

Hi,

I think the one with images takes so much memory.
Text itself is not that expensive

Igor

ganesh.bhat
Offline
Joined: 2006-02-17

Hi igor,

Images are not passed through the ListModel Now. In list model, i am passing a string with an unique prefix. In the renderer, I am drawing the image.

Thanks,
Ganesh

ganesh.bhat
Offline
Joined: 2006-02-17

Hi Igor,

Finally, the OutOfMemory Error came to the surface in the JList implementation also.

My implementation is almost similar to what you had written, except for the following change:

I use a DefaultListModel instead of ListModel, to facilitate adding and replacing of List items.

As I had told in my previous post, the data for the report is obtained dynamically. It starts from 0 lines/characters and goes to as far as 19K lines. Some of the data is analysed by me and a bar chart in PNG 24-bit format is created by me. So, there are two types of reports being built by me:

a) Dynamic reports - In this type of report, the data is processed and appended to the end of the list as it is obtained. The data is obtained in chunks of at least 30 lines. Also, the images(bar charts)have to be constantly updated to reflect the updated data. Since I parse the data to HTML format, all the images for a particular set of data are put in a single JLabel renderer itself.
b) Static reports - Here, all the data for building the report is present beforehand. So, there are no replace functions here.

Also, even if the same JLabel renderer is used for all the JList cells, will not separate HTMLEditorKit components be initialized for each of them? is it not a source of OOM exception?

Coming back to the source of OOM exception, it occurs during JList rendering. Also, for a JList containing 370 cells, rendering was done 1700 times (the getCellRenderer() function was called that many times). Whenever the JList item is displayed, I use the scrollRectToVisible function to display a particular text. Also, I make two calls to the scrollRectToVisible function simultaneously. One is to scroll to 0,0,0,0 and the other is to scroll to the required text. Does this lead to the OOM?

Please provide me some help on this. Or, do I have to increase my heap space while starting the application? If there are some solutions within Swing, please let me know of it. I would like to use the -Xmx option as the last resort.

Regards,
Ganesh

idk
Offline
Joined: 2005-01-12

Hi,

> I checked out that previous post regarding the outofmemory error in jeditorpane, but as claimed by Igor in that post, i don't think the outofmemory error has been fixed in java 5.

That outOfMemory error was fixed in 1.5.
Your cases is different. JEditorPane does not do anything wrong. It tries to load and display the document. Because of the size of the document and because of the implementation details on our side it needs huge amount of memory.

While it is possible yet challenging to customize JEditorPane for your needs may I suggest to use another swing component?

JList seems to be a good match for your needs.
[code]
import java.awt.*;
import javax.swing.*;
import javax.swing.event.ListDataListener;

public class Test {

public static void main(String[] args) {
JFrame frame = new JFrame();
JList list = new JList(new MyListModel());
list.setCellRenderer(new MyListCellRenderer());
frame.getContentPane().add(new JScrollPane(list));
frame.pack();
frame.setVisible(true);

}
static class MyListCellRenderer implements ListCellRenderer {
public MyListCellRenderer() {
label = new JLabel();
label.setOpaque(true);
}
public Component getListCellRendererComponent(JList list, Object value,
int index, boolean isSelected, boolean cellHasFocus) {
label.setText(value.toString());
if (index % 2 == 0) {
label.setBackground(Color.WHITE);
} else {
label.setBackground(Color.GREEN);
}

return label;
}
private JLabel label;
}
static class MyListModel implements ListModel {
public int getSize() {
return 18000;
}
public Object getElementAt(int index) {
return "this is raw: " + Integer.toString(index);
}
public void addListDataListener(ListDataListener l) {
}
public void removeListDataListener(ListDataListener l) {
}
}
}
[/code]

Thanks,
Igor

ganesh.bhat
Offline
Joined: 2006-02-17

Hi Igor,

By "Fixed", I thought that the problem is fixed irrespective of the data size:).

I will give JList a try, and get back to you once I implement that.

One more query: how do i ensure that bufferedimage does not occupy too much memory while creating an image. Is there any other option for creating PNG image on the from Graphics context without buffering it? (I am using ImageIO.write()).

Thanks,
Ganesh

shan-man
Offline
Joined: 2006-02-17

Hi Ganesh,

Unfortunately, I personally can't think of any suggestions that would make JEditorPane work better for you, as your document is just so large. Igor is the expert on text - hopefully his suggestions will help you.

Good luck!
Shannon

ganesh.bhat
Offline
Joined: 2006-02-17

Hi Shannon,

Thanks for the help.

Igor, I need some more help out there with the JList. How do I append data to the list without updating all the previous data? I need this because the report data grows incrementally from zero lines to a maximum of 18k or 19k lines. In between, some images will have to be inserted also, and the same image will have to be updated depending upon the data recieved.

Also, you had mentioned that it is possible to customize JEditorPane to our needs, can you give me some pointers to that?

Also, when I implement the report using multiple JLabels with HTML text, why do I get OOM error then also? Each label will have a maximum of 1.5K lines of text, and yes, in one instance it will have 36 Images.

Thanks,
Ganesh

idk
Offline
Joined: 2005-01-12

Hi Ganesh,

I wonder what html and what images you have.
JEditorPane has no problem working with 18k lines long html.
I get JComponent.html from the jdk's javadoc. Coped the content to get larger.
My new file has 24k lines and 1.2M size. JEditorPane can handle it no problem.
Heap used is about 30M.
(
tools used:
java -Dcom.sun.management.jmxremote
jconsole

see:

Using jconsole
http://java.sun.com/j2se/1.5.0/docs/guide/management/jconsole.html
Monitoring and Management Using JMX
http://java.sun.com/j2se/1.5.0/docs/guide/management/agent.html#local
)

My statement regarding "huge amount of memory" is not correct.

> How do I append data to the list without updating all the previous data?

You might want to take a look at java tutorial "how to use lists" section http://java.sun.com/docs/books/tutorial/uiswing/components/list.html

> multiple JLabels with HTML text, why do I get OOM error then also? Each label will have a maximum of 1.5K lines of text,

JLable use the same code path as JEditorPane does to work with html. Thus JLabel needs almost the same amount of memory as JEditorPane does. It does not make a lot of difference to load 18k lines in one JEditorPane or in one JLabel or split text to 1.5k lines pieces and load in multiple JLabels from memory usage stand point.

Using JList changes all of that. It is like stack of JLables without memory penalty for having all of them in memory. JList might use JLabel as a list cell renderer (it does so by default) and each and every item will be rendered using JLabel and would look exactly the same as if you have stack of JLables. Only one JLabel will be in memory at a time. The penalty for this is html will be parsed and rendered for every visible cell on every paint. If there are not that many cells visible and there are not that many lines per cell then parsing and rendering will be almost instant.

Could it be possible to split text in smaller pieces than 1.5k lines? The smaller the piece is the faster it all will work.

> and yes, in one instance it will have 36 Images.

I wonder how big are the images and what resolutions they have. Say image is 1000 by 1000 and it will be painted in 100 by 100. One might want to downscale it before using. Otherwise it uses much more memory than needed and gets downscaled on every paint.

Intermediate Images By Chet Haase
http://java.sun.com/developer/technicalArticles/Media/intimages/

Thanks,
Igor

ganesh.bhat
Offline
Joined: 2006-02-17

Hi Igor,

Thanks for your time and patience.

>My new file has 24k lines and 1.2M size. JEditorPane can handle it no problem. Heap used is about 30M.

Please try an HTML file with 18K lines of text and at least 15 images of PNG format, with one of them having a size of 1200 x 400 pixels or more. There will be a marked difference in the heap consumption.

>I wonder what html and what images you have.
I have a HTML page with the following tags(not in correct order): TABLE,IMG,STYLE,BODY,HTML,A,H2,P,U. The table has a border set to it.

As regards the images, Please refer to this thread to see how I am creating the images:
http://www.javadesktop.org/forums/thread.jspa?threadID=7053

>My statement regarding "huge amount of memory" is not correct.
Yes. You are right here. JEditorPane standalone will not take huge memory. Only when images are created using the BufferedImage Concept, will it lead to an OOM error.

>Could it be possible to split text in smaller pieces than 1.5k lines? The smaller the piece is the faster it all will work.
Well, it is possible to split the text to smaller than 1.5K lines. But, these 1.5K lines form a bloak in an HTML document that have to be displayed within a

. So, i dont think multiple JLabels will give the same effect.

>I wonder how big are the images and what resolutions they have. Say image is 1000 by 1000 and it will be painted in 100 by 100. One might want to downscale it before using. Otherwise it uses much more memory than needed and gets downscaled on every paint.
This is a great piece of advice. I will try this aspect along with that of JList.

Well, sometimes we get so used to the great features offered by some Java Components/Classes that we forget there are alternatives to be explored. Thanks for showing the path.

Regards,
Ganesh

zander
Offline
Joined: 2003-06-13

The Document interface and the JTextPane components are pretty weak quality and if they don't do what you want, well, you're lost.

I suggest you write a new component to display this info for you. I created one for a different task, and found its only 1-man-month of hours. Depends on how many features you want.. Mine does not allow the user to select text, for instance, but loading of many megabytes of text is almost instant.

Simply building the widget on JComponent and Java2D looks like the best way to go IMO.

ganesh.bhat
Offline
Joined: 2006-02-17

Hi Zander,

The problem here is that I dont have that much amount of time to complete the work. I will just check if it is possible for me to do the whole thing with 1 or 2 weeks, and only if it is, will i go ahead with the implementation.

BTW, is there no performance tuning options for JEditorPane and BufferedImage? Functionality wise, JEditorPane is giving me all the things that I want. But, the performance bottleneck just overrides everything.

Another query : for HTML text, does JEditorPane and JLabel use the same document interface? Looking at the performance while displaying HTML text, i believe both do. I guess it is one thing that needs to be fine tuned.

Thanks,
Ganesh

ganesh.bhat
Offline
Joined: 2006-02-17

Hi Zander,

If I use Java2D and JComponent, how do i implement the hyperlink concept, where the user has to drill down to the details of a particular header?

Thanks,
Ganesh

shan-man
Offline
Joined: 2006-02-17

Hi Ganesh,

I can't imagine someone actually wanting to scroll to somewhere within an 18000 line document. They'd instead use the index that you've provided. Have you considered breaking this into multiple HTML pages and only loading the one that the user is currently wanting to look at?

Regards,
Shannon

ganesh.bhat
Offline
Joined: 2006-02-17

Hi Shannon,

Thanks for the reply.

Hard to imagine, but it is a requirement:(. The application that I am building at present is made to order, so the requirement cannot be changed. Also, based on the type of data, the particular line where the user scrolls to should be colored differently.

Initially, even i had thought of breaking up the data and displaying what is required. Then, I was told that in addition to being drill down enabled, it should be scroll enabled. So, once the user goes into the page containing the detailed report, he should be able to scroll through the texts of the other header also.

If you need, I can send you the screen shot of the report screen(s). Also, a lot of images are involved here, which add further to the memory usage by the application. I checked out that previous post regarding the outofmemory error in jeditorpane, but as claimed by Igor in that post, i dont think the outofmemory error has been fixed in java 5. On the other side, the fact that each image is created using a bufferedimage and imageio class may add to the extra memory, but that in itself may not cause the memory leak.

Even using JLabels to display each report in HTML format causes the OutOfmemory Error. Is there any other alternative for displaying the report? As i have said earlier, I am using HTML only for the drill down purpose. If there is a better alternative, then i am ready to give up HTML also.

If you need the screenshots, please inform me. I guess it will make the picture clearer.

Sorry for the late reply. Being in india, the timezones are very different and hence the day-night reply pattern:).

Thanks,
Ganesh

ganesh.bhat
Offline
Joined: 2006-02-17

Hi,

Just a continuation to my previous post.

I look at Eclipse IDE, where we are allowed to go to the definition of a particular function by clicking on any of its invocation in the same/other module. This is done in a non memory hogging manner. If i get to know how this is done, i guess i can use the same in my reports.

by the way, the images that i am building and loading is in PNG format.

Thanks,
Ganesh

ganesh.bhat
Offline
Joined: 2006-02-17

Hi Shannon,

I have updated my email ID to my official ID. If you can access it and you need the screenshots, please send me a mail so that i can mail the screenshots back to you.

Thanks,
Ganesh