[
https://issues.apache.org/jira/browse/JCS-69?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Scott Archer updated JCS-69:
----------------------------
Description:
When using the JCSWorker threads lock indefinitely.
I believe the synchronized block in the finally block is synchronizing on and
notifying the wrong object.
Once a thread locks it never unlocks.
Class: org.apache.jcs.utils.access.JCSWorker
Method: private Object run( Serializable aKey, String aGroup, JCSWorkerHelper
aHelper ) throws Exception
Bad Code (in finally block):
synchronized ( this )
{
aHelper.setFinished( true );
// Wake everyone waiting on us
notifyAll();
}
Suggested Fix:
synchronized ( aHelper )
{
aHelper.setFinished( true );
// Wake everyone waiting on aHelper
aHelper.notifyAll();
}
was:
When using the JCSWorker threads lock indefinitely.
I believe the synchronized block in the finally block is synchronizing on the
wrong object.
Once a thread locks it never unlocks.
Class: org.apache.jcs.utils.access.JCSWorker
Method: private Object run( Serializable aKey, String aGroup, JCSWorkerHelper
aHelper ) throws Exception
Bad Code (in finally block):
synchronized ( this )
{
aHelper.setFinished( true );
// Wake everyone waiting on us
notifyAll();
}
Suggested Fix:
synchronized ( aHelper )
{
aHelper.setFinished( true );
// Wake everyone waiting on aHelper
aHelper.notifyAll();
}
> Synchronization Problem in JCSWorker
> ------------------------------------
>
> Key: JCS-69
> URL: https://issues.apache.org/jira/browse/JCS-69
> Project: JCS
> Issue Type: Bug
> Affects Versions: jcs-1.3, jcs-1.4-dev
> Environment: Linux 2.6.28-15-generic #52-Ubuntu SMP Wed Sep 9
> 10:48:52 UTC 2009 x86_64 GNU/Linux
> java version "1.6.0_16"
> Java(TM) SE Runtime Environment (build 1.6.0_16-b01)
> Java HotSpot(TM) 64-Bit Server VM (build 14.2-b01, mixed mode)
> Reporter: Scott Archer
> Assignee: Aaron Smuts
>
> When using the JCSWorker threads lock indefinitely.
> I believe the synchronized block in the finally block is synchronizing on and
> notifying the wrong object.
> Once a thread locks it never unlocks.
> Class: org.apache.jcs.utils.access.JCSWorker
> Method: private Object run( Serializable aKey, String aGroup, JCSWorkerHelper
> aHelper ) throws Exception
> Bad Code (in finally block):
> synchronized ( this )
> {
> aHelper.setFinished( true );
> // Wake everyone waiting on us
> notifyAll();
> }
> Suggested Fix:
> synchronized ( aHelper )
> {
> aHelper.setFinished( true );
> // Wake everyone waiting on aHelper
> aHelper.notifyAll();
> }
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]