An issue I had with threading was that the activate function was never completing because I had a loop waiting for the thread. I ended up moving the thread creation out of activate and using an executor to run the thread instead of a while loop which took the whole cpu. I also check to make sure the executer is null and if it is not then I kill the old thread.
if (_executor != null) { _executor.shutdownNow(); while(!_executor.isTerminated()){ } } _executor = Executors.newSingleThreadExecutor(); SseWriter writer = new SseWriter(eventQueue, pout, _uri); int circuitBreaker = 0; _executor.execute(writer); while(!writer.isStreaming() && circuitBreaker < 10 ) { circuitBreaker++; Thread.sleep(1000); } _executor.awaitTermination(5, TimeUnit.MINUTES); On Wed, Nov 23, 2016 at 9:43 AM, Christian Schneider < ch...@die-schneider.net> wrote: > If you get this: "osgi.enroute.configurer.simple.provider" > Then the configurer is still active. > > Christian > > > On 23.11.2016 15:37, Tim Ward wrote: > > No difference. It still activates my @Component twice, with no > deactivation in between, so I start two threads and one of them crashes. > > 2016-11-23 14:35:42,487 | INFO | pool-37-thread-3 | > provider | 73 - > osgi.enroute.configurer.simple.provider > - 2.0.0.201610141744 | Reading configurations for bundle > com.telensa.apps.planet.p2c.provider 1.0.0.201611231201 in > configuration/configuration.json > 2016-11-23 14:35:42,487 | INFO | pool-37-thread-3 | > provider | 73 - > osgi.enroute.configurer.simple.provider > - 2.0.0.201610141744 | Reading configuration for bundle > com.telensa.apps.planet.p2c.provider 1.0.0.201611231201 in > configuration/configuration.json null > 2016-11-23 14:35:42,498 | INFO | pool-37-thread-3 | > P2cImpl | 74 - com.telensa.apps.planet.p2c.provider > - 1.0.0.201611231201 | activate > 2016-11-23 14:35:42,517 | INFO | pool-37-thread-3 | > P2cImpl | 74 - com.telensa.apps.planet.p2c.provider > - 1.0.0.201611231201 | activate > 2016-11-23 14:35:42,517 | INFO | pool-37-thread-3 | > provider | 73 - > osgi.enroute.configurer.simple.provider > - 2.0.0.201610141744 | Reading configurations for bundle > com.telensa.apps.planet.p2c.provider 1.0.0.201611231201 in > configuration/configuration.json > 2016-11-23 14:35:42,518 | INFO | pool-37-thread-3 | > provider | 73 - > osgi.enroute.configurer.simple.provider > - 2.0.0.201610141744 | Reading configuration for bundle > com.telensa.apps.planet.p2c.provider 1.0.0.201611231201 in > configuration/configuration.json null > 2016-11-23 14:35:42,522 | INFO | Thread-47 | > P2cImpl | 74 - com.telensa.apps.planet.p2c.provider > - 1.0.0.201611231201 | Thread started running > 2016-11-23 14:35:42,527 | INFO | Thread-48 | > P2cImpl | 74 - com.telensa.apps.planet.p2c.provider > - 1.0.0.201611231201 | Thread started running > > > On 23/11/2016 14:15, Dirk Fauth wrote: > > I don't know how it looks like in karaf, but probably yes > > Am 23.11.2016 15:09 schrieb "Tim Ward" <t...@telensa.com>: > >> Do you mean delete karaf\data and start all over again? - no, I haven't >> tried that. >> >> On 23/11/2016 13:38, Dirk Fauth wrote: >> >> Have you cleared the bundle cache in between? >> >> Am 23.11.2016 13:42 schrieb "Tim Ward" <t...@telensa.com>: >> >>> I have a @Component with immediate=true which fires up a thread in its >>> @Activate to listen on a socket. The @Deactivate, if it were ever called, >>> would kill the thread. >>> >>> What I appear to be seeing is that the @Activate is called twice with no >>> call to @Deactivate (so I get two threads, one of which crashes because the >>> port is in use). >>> >>> There may be a hint that this is connected to the processing of >>> configuration.json, even though there is nothing in configuration.json for >>> this particular @Component. >>> >>> Any ideas? >>> >>> When I shut down the system some time later there *are* two calls to the >>> @Deactivate method logged, which suggests that it is being called and the >>> logging is working. If I leave out the "immediate=true" there are no calls >>> to @Activate. >>> >> >> -- >> Tim Ward >> >> >> _______________________________________________ >> OSGi Developer Mail List >> osgi-dev@mail.osgi.org >> https://mail.osgi.org/mailman/listinfo/osgi-dev >> > > > _______________________________________________ > OSGi Developer Mail > listosgi-...@mail.osgi.orghttps://mail.osgi.org/mailman/listinfo/osgi-dev > > > > -- > Tim Ward > > > > _______________________________________________ > OSGi Developer Mail > listosgi-...@mail.osgi.orghttps://mail.osgi.org/mailman/listinfo/osgi-dev > > > > -- > Christian Schneiderhttp://www.liquid-reality.de > > Open Source Architecthttp://www.talend.com > > > _______________________________________________ > OSGi Developer Mail List > osgi-dev@mail.osgi.org > https://mail.osgi.org/mailman/listinfo/osgi-dev >
_______________________________________________ OSGi Developer Mail List osgi-dev@mail.osgi.org https://mail.osgi.org/mailman/listinfo/osgi-dev