Are you maybe using just the normal Main method of the main bundle? In that case, we do call system exit in there after the framework is shutdown:
http://svn.apache.org/repos/asf/felix/trunk/main/src/main/java/org/apache/felix/main/Main.java regards, Karl On Thu, Sep 16, 2010 at 3:51 PM, Damian Minkov <[email protected]> wrote: > Hi all, > > thank you all for the suggestions, I was checking them but without any > change. So I made a simple test case that reflects our behaviour. Find > it attached. > > The example just starts felix, then one bundle is started which waits > for 2 seconds then calls the stopping the same way we do and when > bundle stop method is called it creates a non daemon Thread which will > wait for 5 seconds. The whole execution must take at least 8 seconds. > But it takes no more then 3 or 4(including ant tartgets). > Here is the output of one execution: > run: > > [java] Now wait 3 sec. > [java] start the felix stopping > [java] Stopped! > [java] Now wait 5 sec. before end > > BUILD SUCCESSFUL > Total time: 3 seconds > > To run it just place felix Main jar in lib folder and do "ant run" > (I've tested with org.apache.felix.main-3.0.2.jar). > > Thanks > damencho > > > On Thu, Sep 16, 2010 at 3:13 PM, peter lawrey <[email protected]> wrote: >> The JVM will also die if it crashes. E.g. you might have a JNI library you >> are using and it has a bug in its shutdown/unload. Have a look for a >> hs_err_pid*.log file in the working directory of your instance. >> >> Otherwise, you really are calling System.exit() if not directly. In which >> case you should be able to debug your instance and breakpoint this call to >> see if it being called. >> >> AFAIK, Even if all your thread are daemons, felix has threads which are not >> so this is unlikely to be the cause of your problem. >> >> -----Original Message----- >> From: Felix Meschberger [mailto:[email protected]] >> Sent: 16 September 2010 12:40 >> To: [email protected] >> Subject: Re: Stopping and non daemon threads >> >> Hi, >> >> Well, the JVM can of course only exit after all non-daemon threads have >> been stopped or after a call to System.exit(int). >> >> Now, if you have a bundle which starts a thread, you must make sure to >> stop that thread when the bundle stopped. Otherwise you create a memory >> and performance leak if the bundle is repeatedly started, stopped, >> updated etc. >> >> Regards >> Felix >> >> Am 16.09.2010 13:01, schrieb Damian Minkov: >>> Hi, >>> >>> I'm currently looking at a problem in sip-communicator on shutting >>> down. To shut down we stop bundle with id 0. But in some of our >>> bundles we need to do some stuff which involves network operations, >>> and so we create a non daemon Thread in order to do it. But just a >>> little after the Thread is created and started the application exits >>> and don't finish all the operations. >>> Any ideas why this happen or just am I missing some configuration? >>> >>> Thanks >>> damencho >>> >>> --------------------------------------------------------------------- >>> To unsubscribe, e-mail: [email protected] >>> For additional commands, e-mail: [email protected] >>> >>> >> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: [email protected] >> For additional commands, e-mail: [email protected] >> >> > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [email protected] > For additional commands, e-mail: [email protected] > -- Karl Pauls [email protected] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]

