Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[jwt-dev] AW: Regarding fix for excessive GDI object usage

Hi Ravi,

 

it’s great to hear that you already started to migrate to 0.7 and that there don’t seem to be any major problems so far.

 

Concerning your questions:

 

#1

I think it should be possible to adapt the ATL transformation in the converter (converter/internal/resources/transformations/JWT60toJWT70.atl) so that layoutdata is created for both views at the same time but Florian has probably more knowledge in that matter. Maybe the method described in #2 could help you here.

 

#2:

An automatic sync mode between different views (in the form of a “sticky” flag for certain elements) is currently being discussed. But you can also simulate this behavior now if you select “Import based on best guess” in the JWT view preferences (if you distribute JWT, you can set this as default in PreferenceInitializer).

 

#3:

I guess this concerns also the sync as described in #2?

 

#4:

As far as I know there haven’t been any substantial changes to aspects in 0.7  (apart from bugfixes of course ;) ). Also, apart from removing view data (point, dimension, reference, referenceedge), the meta model hasn’t changed.

 

I’m putting jwt-dev on CC in case I missed something.

 

Regards,

Chris

 

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.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

 


Back to the top