|
Hi !
I have a problem where I'm not sure if this is
thread safe can anyone pls tell me?
Objective of this 2 classes is to support the
porcessing of business rules. Hence, the follow classes? (Questions are
below class)
Criteria Class
public abstract class Criteria implements IRule { protected Status criteriaStatus = new Status(Status.SUCCESS); // Holds statuspublic synchronized void fire(RequestToValidate aRequest){ criteriaStatus.setStatus(Status.SUCCESS); // Intitalise for each request setup(aRequest);execute(aRequest); cleanup(aRequest); } protected void setup(RequestToValidate aRequest){} protected abstract void execute(RequestToValidate aRequest); protected void cleanup(RequestToValidate aRequest){aRequest.setTestResult( this.getClass(), criteriaStatus, "");}
}// end class
Question :
Using Synchronized in Fire method
will that stop anyone altering the criteriaStatus ?
If not, what is rememdy?
Should I create new fire signature of
:
public synchronized void fire(RequestToValidate
aRequest) ?
Is it possible for criteriaStatus to be altered between Setup, Execute
& CleanUp methods?
|
- Re: Thread Safety!!!! Is it? pls help Glenn Dickson
- Re: Thread Safety!!!! Is it? pls help Doug Bateman
