>  > Hi,
>  >
>  > I am a bit surprised to see that classes are not getting unloaded when I
>  > uninstall my bundle. In my program, I try to force the GC by calling
>  > Runtime.gc() a couple of times. Looking at the gc log, I do see "Full
>  > GC" happening. I am using -verbose:gc option to see class unloading
>  > details. If I run the same program using some other implementation, I
>  > see classes are getting unloaded. I have verified the same using
>  > jconsole as well. Am I missing any flag? Is it a known issue?
>
>
>  I just tried a very simple bundle with trunk and see classes unloaded:
>  ( note - I customized shell.tui to force a couple of GCs per command )
>
>  ==========================================================
>  -> ps
>  START LEVEL 1
>    ID   State         Level  Name
>  [Loaded java.util.TreeMap$3 from
>  /home/stuart/Tools/j2sdk1.4.2_15/jre/lib/rt.jar]
>  [   0] [Active     ] [    0] System Bundle (1.1.0.SNAPSHOT)
>  [   1] [Active     ] [    1] Apache Felix Shell Service (1.0.0)
>  [   2] [Active     ] [    1] Apache Felix Shell TUI (1.1.0.SNAPSHOT)
>  [   3] [Active     ] [    1] Apache Felix Bundle Repository (1.1.0.SNAPSHOT)
>  -> ps
>  START LEVEL 1
>    ID   State         Level  Name
>  [   0] [Active     ] [    0] System Bundle (1.1.0.SNAPSHOT)
>  [   1] [Active     ] [    1] Apache Felix Shell Service (1.0.0)
>  [   2] [Active     ] [    1] Apache Felix Shell TUI (1.1.0.SNAPSHOT)
>  [   3] [Active     ] [    1] Apache Felix Bundle Repository (1.1.0.SNAPSHOT)
>  -> install file:/tmp/foo.jar
>  Bundle ID: 4
>  -> ps
>  START LEVEL 1
>    ID   State         Level  Name
>  [   0] [Active     ] [    0] System Bundle (1.1.0.SNAPSHOT)
>  [   1] [Active     ] [    1] Apache Felix Shell Service (1.0.0)
>  [   2] [Active     ] [    1] Apache Felix Shell TUI (1.1.0.SNAPSHOT)
>  [   3] [Active     ] [    1] Apache Felix Bundle Repository (1.1.0.SNAPSHOT)
>  [   4] [Installed  ] [    1] foo (1.0.0.SNAPSHOT)
>  -> start 4
>  DEBUG: WIRE: 4.0 -> foo -> 4.0
>  DEBUG: WIRE: 4.0 -> org.osgi.framework -> 0
>  [Loaded foo.internal.ExampleActivator]
>  STARTING foo
>  REGISTER foo.ExampleService
>  [Loaded foo.ExampleService]
>  [Loaded foo.internal.ExampleServiceImpl]
>  -> ps
>  START LEVEL 1
>    ID   State         Level  Name
>  [   0] [Active     ] [    0] System Bundle (1.1.0.SNAPSHOT)
>  [   1] [Active     ] [    1] Apache Felix Shell Service (1.0.0)
>  [   2] [Active     ] [    1] Apache Felix Shell TUI (1.1.0.SNAPSHOT)
>  [   3] [Active     ] [    1] Apache Felix Bundle Repository (1.1.0.SNAPSHOT)
>  [   4] [Active     ] [    1] foo (1.0.0.SNAPSHOT)
>  -> uninstall 4
>  STOPPING foo
>  [Loaded org.apache.felix.framework.Felix$RefreshHelper]
>  [Unloading class foo.internal.ExampleServiceImpl]
>  [Unloading class foo.ExampleService]
>  [Unloading class foo.internal.ExampleActivator]
>  -> ps
>  START LEVEL 1
>    ID   State         Level  Name
>  [   0] [Active     ] [    0] System Bundle (1.1.0.SNAPSHOT)
>  [   1] [Active     ] [    1] Apache Felix Shell Service (1.0.0)
>  [   2] [Active     ] [    1] Apache Felix Shell TUI (1.1.0.SNAPSHOT)
>  [   3] [Active     ] [    1] Apache Felix Bundle Repository (1.1.0.SNAPSHOT)
>  ->
>  ==========================================================
>
>  the foo bundle installs a simple service with the OSGi framework.
>
>  if you can provide a simplified testcase that shows a bundle not
>  unloading, please open a JIRA issue and attach the files needed
>  to recreate it so we can investigate.
>
>  ( diagnosing the issue is much faster when we have a testcase )
>
>  alternatively, if you want to diagnose it yourself, I'd suggest using
>  a heap profiling tool to find out what's holding on to your application
>  classes - and see what's different between other frameworks.
>
>  HTH
>
>
>
>  Thanks,
>  > Sahoo
>  >
>  > ---------------------------------------------------------------------
>  > To unsubscribe, e-mail: [EMAIL PROTECTED]
>  > For additional commands, e-mail: [EMAIL PROTECTED]
>  >
>  >
>  --
>  Cheers, Stuart


Furthermore, If you uninstall a bundle that has a used export you
while have to refresh before the classes can get unloaded.

regards,

Karl

-- 
Karl Pauls
[EMAIL PROTECTED]

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to