| 
     
      
      
      From: Lieven D. (JIRA) <no...@sp...> - 2009-09-21 12:49:25
      
     
   | 
    [ https://jira.springsource.org/browse/RCP-611?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=46850#action_46850 ] 
Lieven Doclo commented on RCP-611:
----------------------------------
Also, recreating the popup every time you right click isn't the best option. Normally your listener will hold an instance of that popup and reuse that popup when called. 
Normally, you're creating something like this:
{code}
public class MyMouseAdapter extends MouseAdapter
{
    private JPopupMenu menu;
    public MyMouseAdapter(CommandGroup group)
    {
        menu = commandGroup.createPopupMenu();
    }
    public void mouseReleased(MouseEvent e) {
        if (e.isPopupTrigger()) {
            menu.show(table, e.getPoint().x, e.getPoint().y);
        }
    }
}
{code}
But in any case I'll take a look at the weakhashmap issue
> "OutOfMemoryError" exception occurs after the popup menu has been shown repeatedly
> ----------------------------------------------------------------------------------
>
>                 Key: RCP-611
>                 URL: https://jira.springsource.org/browse/RCP-611
>             Project: Spring Rich Client Project
>          Issue Type: Bug
>          Components: Core
>    Affects Versions: 1.1.0
>         Environment: JRE: Sun Microsystems Inc., 1.6.0_07
> Operating System: Windows XP x86 5.1
>            Reporter: yangqinghe
>            Assignee: Lieven Doclo
>         Attachments: jmap.txt, popup.jpg
>
>
> There is a simple implement for showing popup menu.Below is the source codes
>             @Override
>             public void mouseReleased(MouseEvent e) {
>                 if (e.isPopupTrigger()) {
>                     JPopupMenu popupMenu = commandGroup.createPopupMenu();\\ commandGroup is a CommandGroup instance if spring rich client
>                     popupMenu.show(table, e.getPoint().x, e.getPoint().y);
>                 }
>             }
> If that popup menu has been shown repeatedly in our app, the "OutOfMemoryError" exception will occur finally.
> Below is the error tracks:
> 2009-05-13 23:26:13,892 ERROR [org.springframework.richclient.application.config.ApplicationLifecycleAdvisor] Java heap space
> java.lang.OutOfMemoryError: Java heap space
> 2009-05-13 23:26:18,752 ERROR [org.springframework.richclient.application.config.ApplicationLifecycleAdvisor] Java heap space
> java.lang.OutOfMemoryError: Java heap space
> 2009-05-13 23:26:23,611 ERROR [org.springframework.richclient.application.config.ApplicationLifecycleAdvisor] Java heap space
> java.lang.OutOfMemoryError: Java heap space
> 2009-05-13 23:26:28,470 ERROR [org.springframework.richclient.application.config.ApplicationLifecycleAdvisor] Java heap space
> java.lang.OutOfMemoryError: Java heap space
> 2009-05-13 23:26:33,345 ERROR [org.springframework.richclient.application.config.ApplicationLifecycleAdvisor] Java heap space
> java.lang.OutOfMemoryError: Java heap space
> 2009-05-13 23:26:38,205 ERROR [org.springframework.richclient.application.config.ApplicationLifecycleAdvisor] Java heap space
> java.lang.OutOfMemoryError: Java heap space
> 2009-05-13 23:26:43,080 ERROR [org.springframework.richclient.application.config.ApplicationLifecycleAdvisor] Java heap space
> java.lang.OutOfMemoryError: Java heap space
> 2009-05-13 23:26:47,970 ERROR [org.springframework.richclient.application.config.ApplicationLifecycleAdvisor] Java heap space
> java.lang.OutOfMemoryError: Java heap space
> 2009-05-13 23:26:52,830 ERROR [org.springframework.richclient.application.config.ApplicationLifecycleAdvisor] Java heap space
> java.lang.OutOfMemoryError: Java heap space
> 2009-05-13 23:26:57,673 ERROR [org.springframework.richclient.application.config.ApplicationLifecycleAdvisor] Java heap space
> java.lang.OutOfMemoryError: Java heap space
> 2009-05-13 23:27:02,548 ERROR [org.springframework.richclient.application.config.ApplicationLifecycleAdvisor] Java heap space
> java.lang.OutOfMemoryError: Java heap space
> 2009-05-13 23:27:07,423 ERROR [org.springframework.richclient.application.config.ApplicationLifecycleAdvisor] Java heap space
> java.lang.OutOfMemoryError: Java heap space
> 2009-05-13 23:27:13,220 ERROR [org.springframework.richclient.application.config.ApplicationLifecycleAdvisor] Java heap space
> java.lang.OutOfMemoryError: Java heap space
> 2009-05-13 23:27:18,095 ERROR [org.springframework.richclient.application.config.ApplicationLifecycleAdvisor] Java heap space
> java.lang.OutOfMemoryError: Java heap space
> 2009-05-13 23:27:22,955 ERROR [org.springframework.richclient.application.config.ApplicationLifecycleAdvisor] Java heap space
> java.lang.OutOfMemoryError: Java heap space
> 2009-05-13 23:27:27,814 ERROR [org.springframework.richclient.application.config.ApplicationLifecycleAdvisor] Java heap space
> java.lang.OutOfMemoryError: Java heap space
> 2009-05-13 23:27:32,689 ERROR [org.springframework.richclient.application.config.ApplicationLifecycleAdvisor] Java heap space
> java.lang.OutOfMemoryError: Java heap space
> 2009-05-13 23:27:37,564 ERROR [org.springframework.richclient.application.config.ApplicationLifecycleAdvisor] Java heap space
> java.lang.OutOfMemoryError: Java heap space
> 2009-05-13 23:27:42,439 ERROR [org.springframework.richclient.application.config.ApplicationLifecycleAdvisor] Java heap space
> java.lang.OutOfMemoryError: Java heap space
-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.springsource.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
        
 |