Von: RAVI K. THAPLIYAL
[mailto:RAVI.THAPLIYAL@xxxxxxxxxx]
Gesendet: Freitag, 8. Januar 2010 07:00
An: Christian Saad
Betreff: RE: Regarding fix for excessive GDI object usage
Hi Chris,
Thanks for your
reply.
Since, I didn’t
hear from you for long I started porting my app to JWT 0.7 in parallel. Now,
I’ve been able to get my App compile and start without errors and
currently I’m identify the code changes required to work with 0.7 and its
overall impact on testing. I just have some concerns and would like to hear
your thoughts on the following:
#1. Our customized
New Workflow wizard creates a 0.6 version file which when opened in the editor
is automatically converted to 0.7. If we stick to creating files in 0.6 and
suppress the file format change information dialog is there a way to have the
same layout info for both technical and business views. Currently, it would ask
if the user wants to import it from technical view which would confuse the
users.
#2. If we would like
to keep the layout algorithms out of the picture and keep it as simple as
– what you’ll draw is what you’ll get. Can we auto sync the
layout info between tech and biz views without any prompts? Idea is to keep it
exactly like 0.6 in spite of having a separate _view file.
#3. Even if we stick
to creating 0.6 workflow file (when a new workflow is created and when an
existing workflow is checked out from db) the check in workflow op that saves
it to db would now have to parse 3 files. We can’t maintain multiple view
layouts in db so would really want to keep the layout info in sync between
views without any prompts. Please point towards any API that would help us do
all this behind the scenes.
#4. Unlike other
integrators of JWT like AgilPro and Scarbo, our App makes heavy use of Aspects.
Do you foresee any major changes required for them to work with 0.7? In
addition to separating the meta model out of the editor has it also been
changed that may impact Aspects that were developed on 0.6.
I personally feel
that we should move to 0.7 rather than doing it later and ending up doing maintenance
for two architecturally very different versions. So, I would really appreciate
your thoughts on the above concerns.
Regards,
Ravi
From: Christian Saad
[mailto:christian.saad@xxxxxxxxxxxxxxxxxxxxxxxxxx]
Sent: Thursday, January 07, 2010 6:30 PM
To: RAVI K. THAPLIYAL
Subject: AW: Regarding fix for excessive GDI object usage
Hi Ravi,
sorry for the late
answer, unfortunately I was not available during the holidays :(
The fix for the GDI
leak addressed two main issues: On the one hand the fonts and colors which are
created in the PreferenceWrappers but these should be fixed once the patch for
these has been included. To make sure that the cached resources are released
when the last editor is closed you should also update the following method in
the GeneralHelper:
public static void
deregisterEditor(WEEditor ed)
{
editorinstances.remove(ed);
// dispose gid resources
if (editorinstances.size()
== 0)
{
Plugin.getDefault().getImageRegistry().dispose();
FontPreferenceWrapper.disposeFonts();
ColorPreferenceWrapper.disposeColors();
}
}
The other major leak
was due to inconsistent use of the ImageFactory. You could try to replace the
ImageFactory with the new one but I’m not sure if this will help a lot
since many methods used to create their own images instead of using the
factory. It is very difficult to provide a patch for this since it affects many
files. A possible approach would be to search for getImage() calls in the code
and make sure they are redirected to the factory but I guess this would also
require a certain amount of work.
I’m really
sorry that I can’t provide you with a complete solution here, but the
major internal changes which happened during the implementation of 0.7.0 make
it almost impossible to extract a useful patch which works with the previous
version. If you still have the time I would therefore suggest to nevertheless
consider a move to 0.7.0 since from an external point of view, the
compatibility with 0.6.0 shouldn’t be too difficult to achieve.
Regards,
Chris
Von: RAVI K. THAPLIYAL
[mailto:RAVI.THAPLIYAL@xxxxxxxxxx]
Gesendet: Donnerstag, 24. Dezember 2009 07:45
An: Christian Saad
Betreff: RE: Regarding fix for excessive GDI object usage
Hi Chris,
I’ve verified
that the problem really is due to the leaked GDI resources. As you rightly
said, once the app crosses 10,000 GDI objects it simply closes itself.
I’m sending you a sample .workflow and as it uses aspects its
.workflow_conf file too.
The file when opened
uses around 1450 GDI objects of which only around 70 are disposed when the
editor is closed. The number is too high when compared to JWT 0.7 which opens
and closes around 300 handles only for the same file after conversion and
creation of the required .workflow_view file of course.
I’ve verified
that I’m using the patched files that you shared with me. I would
appreciate if you could test the attached workflow at your end and share your
findings.
Regards,
Ravi
From: Christian Saad
[mailto:christian.saad@xxxxxxxxxxxxxxxxxxxxxxxxxx]
Sent: Wednesday, December 23, 2009 6:10 PM
To: RAVI K. THAPLIYAL
Subject: AW: Regarding fix for excessive GDI object usage
Hi Ravi,
I’m suprised
that this didn’t fix the problem for you since the fonts accounted for
most (I guess >60%) of the lost GDI resources. Could you take a look in the
task manager to see if the behavior is really caused by a too big number of
those (the screen usually goes blank once 10000 is reached).
Regards,
Chris
Von: RAVI K. THAPLIYAL
[mailto:RAVI.THAPLIYAL@xxxxxxxxxx]
Gesendet: Mittwoch, 23. Dezember 2009 10:28
An: christian.saad@xxxxxxxxxxxxxxxxxxxxxxxxxx
Betreff: Regarding fix for excessive GDI object usage
Hi Chris,
I tried using the patched versions of font
and color preference wrappers but they haven’t helped me much. With
the kind of complex workflows that are being opened, my RCP app’s
lifetime is 10 mins tops.
Due to release constraints, I’m
unable to switch to JWT 0.7. We really can’t afford to have another test
cycle with the kind of timelines we have right now. So, I would really
appreciate if you could list down all the files that have been patched in 0.6
and the ones that have been newly introduced in 0.7 to fix this issue.
As I already have prior experience with
image registries etc. I’m trying to see if I can patch my copy of 0.6 by
merging code from 0.7 if required. I know the meta model has been separated
from the editor and that might make this task near impossible but I need to
have the files involved to verify this and then convince my superiors about the
same.
Thanking you in anticipation.
Regards,
Ravi
MASTEK LTD.
Mastek is in NASSCOM's 'India Top 20' Software Service Exporters List.
In the US, we're called MAJESCOMASTEK
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Opinions expressed in this e-mail are those of the individual and not that of Mastek Limited, unless specifically indicated to that effect. Mastek Limited does not accept any responsibility or liability for it. This e-mail and attachments (if any) transmitted with it are confidential and/or privileged and solely for the use of the intended person or entity to which it is addressed. Any review, re-transmission, dissemination or other use of or taking of any action in reliance upon this information by persons or entities other than the intended recipient is prohibited. This e-mail and its attachments have been scanned for the presence of computer viruses. It is the responsibility of the recipient to run the virus check on e-mails and attachments before opening them. If you have received this e-mail in error, kindly delete this e-mail from desktop and server.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|