This Bugzilla instance is a read-only archive of historic NetBeans bug reports. To report a bug in NetBeans please follow the project's instructions for reporting issues.

Bug 55015

Summary: java.lang.OutOfMemoryError: PermGen space
Product: webservices Reporter: Lukas Jungmann <jungi>
Component: CodeAssignee: _ rkubacki <rkubacki>
Status: CLOSED FIXED    
Severity: blocker CC: issues, lkotouc
Priority: P1 Keywords: PERFORMANCE
Version: 4.x   
Hardware: PC   
OS: Windows XP   
Issue Type: DEFECT Exception Reporter:
Attachments: projects for reproducing this

Description Lukas Jungmann 2005-02-16 09:41:33 UTC
[build 200502151900]

   This error very often occurs when i'm working
with web service clients. Sometimes also when i'm
working with web services.
   I have never recieved this error when i was
working with projects without web services/ws-clients.
Comment 1 Lukas Jungmann 2005-02-16 09:42:39 UTC
I don't have exact steps to reproduce this issue.
Comment 2 Lukas Jungmann 2005-02-16 11:26:24 UTC
Some problems which may occur after this Error:

- all web service clients are removed from web service registry in
runtime tab
- IDE does not store all of its settings (there's some timeout) and
this implies problems for the next runs of IDE
Comment 3 Lukas Jungmann 2005-02-16 14:52:11 UTC
Other problem which may occur:
- if the appserver is running then it is not stopped by IDE and IDE's
console window remains open for a long time (I'm talking about time
from minutes to tens of minutes, not about seconds) and only way how
to close it earlier is to "kill" it .
Comment 4 Libor Kotouc 2005-02-16 16:11:46 UTC
1. create web module with web service
2. run/deploy web module
3. add web service into registry
4. create web module with web service client (of 1.)
5. create servlet in web module 4.
6. add web service call into this servlet
7. debug web module (from 4.)

6. experiment with servlet (add breakpoint, step inside of it, step
into web service).

After a while (during first or second ws call) the OOE: PermGen space
error displays and only way how to end the IDE is kill it.

I use:
Windows XP SP1, JDK1.5.0_03-ea (JVM Java Hotspot Client VM
1.5.0_03-b03), trunk build of NB4.1, Sun App Server 8.1 (build b41-fcs).

IDE is run with following parameters:
nb.exe -J-Xmx512M -J-Xdebug
-J-Xrunjdwp:server=y,transport=dt_socket,address=1111,suspend=n

This error occures on Linux, too.
Comment 5 Martin Grebac 2005-02-17 15:14:09 UTC
I'll work with PERF team on this one.
Comment 6 _ rkubacki 2005-02-17 16:20:55 UTC
reassigning to myself. It seems that there can be problem with web
service testing - when trying to test a ws operation a bunch of
classes is loaded and after several iterations I get to some strange
state. Though there is no OOME I lost AWT thread and jstats reports 
18528 Loaded  vs 4760 Unloaded  classes and 
 65535.1 kB of 65536.0 in PermGen used.
Comment 7 _ rkubacki 2005-02-18 09:05:26 UTC
Though I did not get OOME I have a reproducible test that eats
continually PermGen (and heap as well but not so fast).

Have an IDE + web module w/ web service having at least two operation
that can be deployed to SJAS.
Start IDE, start app server and add WS to registry.
Test all these operations repeatedly.

After each iteration there is a new
org.netbeans.modules.websvc.registry.ui.TestWebServiceMethodDlg that
holds its own URL classloader. All these dialog are held through this
chain (thanks to Insane):

sun.awt.SunToolkit.peerMap->
sun.awt.AWTAutoShutdown$PeerMap@1774->
[Ljava.util.Hashtable$Entry;@34cc->
java.util.Hashtable$Entry@64bd->
sun.awt.X11.XDialogPeer@a921->
org.netbeans.core.windows.services.NbDialog@a91b->
org.netbeans.modules.websvc.registry.ui.TestWebServiceMethodDlg@efda
Comment 8 _ rkubacki 2005-02-18 10:21:13 UTC
Now when dispose is called the VM can collect unused classes and their
classloader and it does not grow over 7800 classes in my test case.

Checking in
websvc/registry/src/org/netbeans/modules/websvc/registry/ui/TestWebServiceMethodDlg.java;
/cvs/websvc/registry/src/org/netbeans/modules/websvc/registry/ui/TestWebServiceMethodDlg.java,v
 <--  TestWebServiceMethodDlg.java
new revision: 1.3; previous revision: 1.2
Comment 9 Lukas Jungmann 2005-02-18 12:32:03 UTC
rkubacki, could you please commit the fix also to beta branch?
Comment 10 _ rkubacki 2005-02-21 12:00:05 UTC
Checking in
websvc/registry/src/org/netbeans/modules/websvc/registry/ui/TestWebServiceMethodDlg.java;
/cvs/websvc/registry/src/org/netbeans/modules/websvc/registry/ui/TestWebServiceMethodDlg.java,v
 <--  TestWebServiceMethodDlg.java
new revision: 1.2.8.1; previous revision: 1.2
Comment 11 Lukas Jungmann 2005-03-16 14:31:07 UTC
Didn't see it in several latest builds, so marked as verified.
Comment 12 Lukas Jungmann 2006-04-06 15:35:15 UTC
I have to reopen this because I'm able to reproduce this again in latest 5.5
build, but only using jdk 1.5.0_06-64bit on winXP-64bit - so reopening with
lower priority.

Current steps are:
-start IDE with clean userdir
-register glassfish (promoted build 43)
-open all attached projects at once
-resolve missing dependencies (required library is in $GLASSFISH_HOME/lib)
-deploy "HelloEndService" project
-add HelloService to the registry (using Add to registry action on ws node)
-test operations of HelloService
-deploy "PingHelloService" project
-add PingHelloService to the registry (using Add to registry action on ws node)
-test "getPing" operation on PingHelloService websvc
-test "getPingPerson" operation on PingHelloService websvc

=> OOME: PermGen space

Note: it does not occur when I use 32bit JDK and it seems to be unreproducible
on 32bit windows too
Comment 13 Lukas Jungmann 2006-04-06 15:39:11 UTC
Created attachment 29667 [details]
projects for reproducing this
Comment 14 _ rkubacki 2006-04-06 15:49:08 UTC
Rather than reopening this one I suggest to close it and track the problem of
64-bit VM in issue #73553. This original one was about different bug. Can you
add your comment there?
Comment 15 Lukas Jungmann 2006-04-06 16:08:41 UTC
Thanks for the pointer to correct issue, my comments will be moved there...
Setting issue to the previous state...
Comment 16 Lukas Jungmann 2006-04-06 16:09:04 UTC
which was closed...