[ 
https://issues.apache.org/jira/browse/QPID-8533?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Marek Laca updated QPID-8533:
-----------------------------
    Description: 
SelectorThread in Broker-J code extends Thread but it should not be used as a 
thread.
 SelectorThread works as a command parameter (Runnable) that is put in a new 
thread:
{code:java}
SelectorThread command = new SelectorThread(scheduler, numberOfSelectors);
Thread t = new Thread(command);
{code}
There has to be exactly one SelectorThread for every 
NetworkConnectionScheduler, the SelectorThread maintain a common data that are 
shared among IO-threads from the scheduler thread pool. We can find the 
following code in the SelectorThread:
{code:java}
Thread.currentThread().setName(_scheduler.getSelectorThreadName());
{code}
If anybody replaced previous code and set the name directly (calling the 
inherited setName method) then it would be a bug and the name would not be set 
to the current thread. The code lure a developer in using the methods inherited 
from Thread, but these methods would not have the expected effect. 
SelectorThread is not mentioned to be used as a thread and SelectorThread 
should only implement Runnable interface instead of extending Thread.

  was:
SelectorThread in Broker-J code extends Thread but it should not be used as a 
thread.
 SelectorThread works as a command parameter (Runnable) that is put in a new 
thread:
{code:java}
SelectorThread command = new SelectorThread(scheduler, numberOfSelectors);
Thread t = new Thread(command);
{code}
There has to be exactly one SelectorThread for every 
NetworkConnectionScheduler, the SelectorThread maintain a common data that are 
share among IO-threads from the scheduler thread pool. We can find the 
following code in the SelectorThread:
{code:java}
Thread.currentThread().setName(_scheduler.getSelectorThreadName());
{code}
If anybody replaced previous code and set the name directly (calling the 
inherited setName method) then it would be a bug and the name would not be set 
to the current thread. The code lure a developer in using the methods inherited 
from Thread, but these methods would not have the expected effect. 
SelectorThread is not mentioned to be used as a thread and SelectorThread 
should only implement Runnable interface instead of extending Thread.


> [Broker-J] SelectorThread is not actual thread
> ----------------------------------------------
>
>                 Key: QPID-8533
>                 URL: https://issues.apache.org/jira/browse/QPID-8533
>             Project: Qpid
>          Issue Type: Improvement
>          Components: Broker-J
>            Reporter: Marek Laca
>            Priority: Minor
>              Labels: Broker, Java, Thread
>
> SelectorThread in Broker-J code extends Thread but it should not be used as a 
> thread.
>  SelectorThread works as a command parameter (Runnable) that is put in a new 
> thread:
> {code:java}
> SelectorThread command = new SelectorThread(scheduler, numberOfSelectors);
> Thread t = new Thread(command);
> {code}
> There has to be exactly one SelectorThread for every 
> NetworkConnectionScheduler, the SelectorThread maintain a common data that 
> are shared among IO-threads from the scheduler thread pool. We can find the 
> following code in the SelectorThread:
> {code:java}
> Thread.currentThread().setName(_scheduler.getSelectorThreadName());
> {code}
> If anybody replaced previous code and set the name directly (calling the 
> inherited setName method) then it would be a bug and the name would not be 
> set to the current thread. The code lure a developer in using the methods 
> inherited from Thread, but these methods would not have the expected effect. 
> SelectorThread is not mentioned to be used as a thread and SelectorThread 
> should only implement Runnable interface instead of extending Thread.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org
For additional commands, e-mail: dev-h...@qpid.apache.org

Reply via email to