[jboss-dev] org.jboss.util.threadpool.BasicThreadPool issue

Dimitris Andreadis dandread at redhat.com
Tue Sep 11 11:41:08 EDT 2007


Yea, move it to 2.2.2-snapshot, as we may be having more fixes in common-core.

Anil Saldhana wrote:
> Sorry to have pointed at you. Scott has a nice comment also:
> -------
> 
> /**
> * A basic thread pool.
> * TODO: this port to jdk concurrent still needs to be tested.
> *
> * @author <a href="mailto:adrian at jboss.org">Adrian Brock</a>
> * @author Scott.Stark at jboss.org
> * @version $Revision$
> */
> -------
> 
> 
> A combination of head, tail, cat, vi were needed to see through the maze 
> of the logging - 900MB of server.log is not easy to deal with. :)
> 
> So should I make the fix to this class and do a snapshot release for 
> common-core? What should it be 2.2.2-SNAPSHOT?
> 
> 
> Adrian wrote:
>> I'm not making use of anything, Scott wrote this code. :-)
>>
>> The issue looks to be related to the conversion
>> of the code from using Heap (which returns null when empty)
>> to PriorityQueue.
>> http://viewvc.jboss.org/cgi-bin/viewvc.cgi/common/common-core/trunk/src/main/java/org/jboss/util/threadpool/BasicThreadPool.java?view=diff&r1=2390&r2=2391 
>>
>>
>> Contrary to your comment, PriorityQueue throws an Exception when empty 
>> on the remove() as opposed to remove(Object):
>> http://java.sun.com/j2se/1.5.0/docs/api/java/util/AbstractQueue.html#remove() 
>>
>>
>> A simple check for isEmpty() and return null
>> (assuming the code is already thread safe) should stop the logging?
>>
>> On Tue, 2007-09-11 at 09:57 -0500, Anil Saldhana wrote:
>>  
>>> Adrian,
>>>     with some progressive changes in my AS5 trunk workspace, while 
>>> running one of the tests in the test suite, the server log is filling 
>>> up with the following exception (it is reaching something like 800MB 
>>> in log size)
>>> =================
>>> 2007-09-11 09:40:10,843 DEBUG 
>>> [org.jboss.util.threadpool.BasicThreadPool] Timeou
>>> t monitor saw unexpected error
>>> java.util.NoSuchElementException
>>>         at java.util.AbstractQueue.remove(AbstractQueue.java:80)
>>>         at 
>>> org.jboss.util.threadpool.BasicThreadPool.getNextTimeout(BasicThreadPool.java:475) 
>>>
>>>         at 
>>> org.jboss.util.threadpool.BasicThreadPool$TimeoutMonitor.run(BasicThreadPool.java:593) 
>>>
>>>         at java.lang.Thread.run(Thread.java:595)
>>>
>>> =====================
>>>
>>> I am still checking why this issue is happening.  But I see that you 
>>> are making use of a PriorityQueue and whose remove is supposed to be 
>>> safe from any exception.
>>>
>>> Regards,
>>> Anil
>>>     
> _______________________________________________
> jboss-development mailing list
> jboss-development at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/jboss-development



More information about the jboss-development mailing list