Skip to main content

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

Hi Ravi,

 

yepp, currently you are specifying the variable layoutData twice and the second time it overwrites the first time:

 

rule Action2Action {

      from input : jwtSource!"model::processes::Action"

      to action : jwtTarget!Action (

            name <- input.name,

            icon <- input.icon,

            targetexecutiontime <- input.targetexecutiontime,

            realizes <- input.realizes, --Function

            performedBy <- input.performedBy, --Role

            executedBy <- input.executedBy, --Application

            inputs <- input.getInputs(), --Data

            outputs <- input.getOutputs()

      ),

      layoutData : jwtTargetView!LayoutData (

            initialized <- true,

 

 

Says that the rule called Action2Action takes each Action from the jwtSource and generates

1)      an Action the jwtTarget with variable name action

2)      a LayoutData in the jwtTargetView file with variable name layoutData

 

Adding

 

),

      layoutData : jwtTargetView!LayoutData (

            initialized <- true,

            viewid <- 'Business',

 

 

now overwrites the existing variable layoutData before it is written in the file. Of course, you need again a jwtTargetView!LayoutData, but this one can of course have a different variable name (as you are not referencing it again.

Changing the variable name layoutData to layoutData2 should fix this.

See also http://wiki.eclipse.org/ATL/User_Guide for further information about ATL.

 

Good luck and best regards,

 

Florian

 

 

Von: jwt-dev-bounces@xxxxxxxxxxx [mailto:jwt-dev-bounces@xxxxxxxxxxx] Im Auftrag von RAVI K. THAPLIYAL
Gesendet: Dienstag, 19. Januar 2010 16:03
An: christian.saad@xxxxxxxxxxxxxxxxxxxxxxxxxx
Cc: 'Java Workflow Toolbox'
Betreff: RE: [jwt-dev] AW: Regarding fix for excessive GDI object usage

 

Hi Chris,

 

I’ve been able to update the asm but I don’t think I’ve modified the atl correctly as the layout data is now being generated for the Business view only. Could you please have a look at the atl file attached and explain how do I duplicate the layout data for both the views correctly?

 

I’m not familiar with the atl syntax at all. I’ve simply added another layoutData transformation op with viewid <- 'Business' within every rule that was doing it for ‘Technical’. I guess, instead of appending, I’m overwriting the ‘Technical’ layout with the ‘Business’ layout data.

 

Regards,

Ravi

 

From: jwt-dev-bounces@xxxxxxxxxxx [mailto:jwt-dev-bounces@xxxxxxxxxxx] On Behalf Of Christian Saad
Sent: Tuesday, January 19, 2010 4:24 PM
To: 'Java Workflow Toolbox'
Subject: AW: [jwt-dev] AW: Regarding fix for excessive GDI object usage

 

Hi Ravi,

 

atl files have to be compiled into asm files before execution. The converter project has been assigned an ATL project nature so that each time you save the atl file, the asm file should be updated automatically. You could check if this is really the case. If not, simply create a new ATL project and use it to modify the atl file and copy the automatically generated asm file back to the converter when you’re done.

 

Regards,

Chris

 

Von: jwt-dev-bounces@xxxxxxxxxxx [mailto:jwt-dev-bounces@xxxxxxxxxxx] Im Auftrag von RAVI K. THAPLIYAL
Gesendet: Dienstag, 19. Januar 2010 11:40
An: Florian Lautenbacher; 'Java Workflow Toolbox'
Betreff: RE: [jwt-dev] AW: Regarding fix for excessive GDI object usage

 

Hi Florian,

 

I tried modifying the JWT60toJWT70.atl as you explained but it didn’t work for me. I’ve attached the modified file for reference. While going through the source code I found that ATLTransformation makes use of ASMEMFModel and loads the .asm file instead of the .atl as below:

 

// launch

JWT2JWT_TransfoResource = ATLTransformation.class

      .getResource("resources/transformations/" + "JWT" + sourceVersion

            + "toJWT" + targetVersion + ".asm");//$NON-NLS-1$

 

I guess I need to modify JWT60toJWT70.asm too or update it somehow. Am I correct?

 

Regards,

Ravi

 

From: Florian Lautenbacher [mailto:florian.lautenbacher@xxxxxxxxxxxxxxxxxxxxxxxxxx]
Sent: Monday, January 11, 2010 2:45 PM
To: 'Java Workflow Toolbox'; RAVI K. THAPLIYAL
Subject: AW: [jwt-dev] AW: Regarding fix for excessive GDI object usage

 

Hi Ravi, hi Chris,

 

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

 

Of course, creating the layoutdata for all existing views is not an issue. Currently the layout data is only generated once with the view “Technical” assigned. If you have several views, then simply the same rule in the ATL-transformation can be copied and the term “Technical” could be replaced by “Business” or others (depending on the views that you have). If you have some problems here, just let me know.

 

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

 

Yes, there are several bug fixes concerning aspects which Marc and I have been working on. If you experience some problems such as  the ones described below, I guess Marc is the best to answer:

 

>>I’ve noticed that in 0.7 I’m not being able to attach new aspects to any action node by the right-click > New Child context menu option. Existing aspects however are being displayed correctly. The Manage Profiles tab info is identical between the two versions.

 

>>I’ve observed that in 0.7, the child descriptors passed to ActionBarContributor.generateCreateChildActions() do not include AspectCommandParameter(s) that get passed for every Aspect defined via extensions in 0.6.

 

Best regards,

 

Florian

 

 

 

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

 

 

 

 


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

 

 

 

 


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