The following issue has been updated:
Updater: James Carman (mailto:[EMAIL PROTECTED])
Date: Sat, 4 Sep 2004 6:24 AM
Comment:
Here's a patch that makes the two aforementioned methods synchronized. All
tests pass with this patch in the current HEAD branch.
Changes:
Attachment changed to patch.txt
---------------------------------------------------------------------
For a full history of the issue, see:
http://issues.apache.org/jira/browse/HIVEMIND-44?page=history
---------------------------------------------------------------------
View the issue:
http://issues.apache.org/jira/browse/HIVEMIND-44
Here is an overview of the issue:
---------------------------------------------------------------------
Key: HIVEMIND-44
Summary: Race Conditions in Construction of Threaded Service
Type: Bug
Status: Reopened
Priority: Major
Project: HiveMind
Components:
framework
Versions:
1.0
Assignee: Howard M. Lewis Ship
Reporter: Harald Meyer
Created: Thu, 12 Aug 2004 11:03 AM
Updated: Sat, 4 Sep 2004 6:24 AM
Environment: J2SDK 1.4.2, Windows XP, Eclipse, Log4J
Description:
Basically the problem occours when two threads simultaneously construct
instances of threaded service.
You can reconstruct the bug, by creating 10-20 threads in a for loop, and let
each of this threads call the threaded service. A stack trace similar to this
should appear:
org.apache.hivemind.ApplicationRuntimeException: Unable to construct service
Service.ThreadedService1: org.apache.hivemind.ApplicationRuntimeException
at
org.apache.hivemind.impl.servicemodel.ThreadedServiceModel.constructServiceForCurrentThread(ThreadedServiceModel.java:162)
at
org.apache.hivemind.impl.servicemodel.ThreadedServiceModel.getServiceImplementationForCurrentThread(ThreadedServiceModel.java:139)
at
$ThreadedProxy_fe54269949_6._service($ThreadedProxy_fe54269949_6.java)
at $ThreadedProxy_fe54269949_6.foo($ThreadedProxy_fe54269949_6.java)
at testing.bugs.TestCase1$1.run(TestCase1.java:50)
As this is time-critical problem it does not always happen. My observation is
that the longer the construction of the service takes (e.g. a lot of (at least
3-4) service properties) the more likely the problem occours. It also "helps"
to have logging at debug level.
If neccessary I've got source code to reproduce the problem (but with SDL
module descriptors). The same problem occours with pooled service module, too.
To fix this I guess constructServiceForCurrentThread() should be synchronized.
From looking at the source code of getServiceImplementationForCurrentThread it
seems like it has to be synchronized, too.
---------------------------------------------------------------------
JIRA INFORMATION:
This message is automatically generated by JIRA.
If you think it was sent incorrectly contact one of the administrators:
http://issues.apache.org/jira/secure/Administrators.jspa
If you want more information on JIRA, or have a bug to report see:
http://www.atlassian.com/software/jira
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]