sorry I didn't see it before, thanks for pinging me privately, no thanks for the html :(
 
The test does cover what you talk about: a remove that is working in parallel with a passivation. 
 
What I would really want to do is trigger passivation (in the job thread not C) and timeouts.  Frankly the test didn't break the cache but showed the Locking waiting bug (that you didn't fix, just removed the message but it is still a busy wait).
 
I decided to go ahead and just fix the code, please if you have the time do make teh test more "high grade" by forcing timeouts and pasivation, but I suspect it is all configuration isn't it?
 
guys I really need to "over and out" I have been 50/50 with code and list and that is really not what I should be doing.
 
TIME TO SYNCHRONIZE and LOCK on myself :)
 
talkToMarc()
 
if (heIsCodingBugs)
 
synchronized(inbox) {
 
wait();
}
 
Peace Love, and good Code
 
marcf
 
________________________________________
"The vibe is definitely going out and wide tonight"
-- colin Dale, <a href="http://www.groovetech.com/PhoenixData/SilverStream/Pages/srvltRecMed?RecordedMediaID=53462"> Abstrakt Dance</a> --
________________________________________
-----Original Message-----
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]]On Behalf Of Bill Burke
Sent: Monday, June 25, 2001 10:05 PM
To: Jboss-Development@Lists. Sourceforge. Net
Subject: [JBoss-dev] new Threads.java (cache bug tests) is incomplete.

Marc,
 
Don't get annoyed with me, but your new threads test is incomplete:
 
- You need to also randomize on the bean's primary key.  I say this because some of the cache bugs I encountered were as a result of one thread throwing a context back into the InstancePool(via a rollback or remove) while another thread(i.e. PassivationJob) had a reference to it and was using it.  Also, with your test the way it stands, your entity calls will be serialized, so you have almost no chance of creating a race condition.
 
- You should test the state of your entity bean
i.e.
 
class EJBThreadsBean implement EntityBean {
public void test(String shouldBe)
{
    if (!shouldBe.equals(id)) { throw new RemoteException("state invalid"); }
}
}
 
- You should test against option 'A', 'B', and 'C' since they are all totally different behaviour.
 
- You should test with reentrant "true"
 
 
You could turn this around and say, "Bill, why don't you do it then?", then I'd happily say, "Sure!".
 
Regards,
 
Bill

Reply via email to