Thomas Watson created FELIX-3608:
------------------------------------
Summary: ThreadIOImpl.checkIO can be called after ThreadIOImpl.stop
Key: FELIX-3608
URL: https://issues.apache.org/jira/browse/FELIX-3608
Project: Felix
Issue Type: Bug
Components: Gogo Runtime
Affects Versions: gogo.runtime-0.10.0
Environment: All
Reporter: Thomas Watson
ThreadIOImpl.checkIO() can be called after ThreadIOImpl.stop() is called. It
appears the ThreadIOImpl.close() method always calls checkIO() which always
resets the System streams even after ThreadIOImpl.stop() has been called. In
my environment the gogo shell thread is sitting waiting for input after the
gogo.runtime bundle has been stopped. If it receives input then it tries to
interact with some cached ThreadIO service (the one that is stopped) and ends
up calling close on it.
This will leave the System streams set even though the ThreadIOImpl object has
been stopped and the runtime bundle is no longer active. This causes a number
of issues since now we have an invalid set of streams set in the System. I
also think it is probably a bug that the gogo shell is acting upon a ThreadIO
service that is unregistered.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira