You might be able to get away with simply adding 'synchronized' to the
execute method's signature.


    synchronized public ActionForward execute(...) {
         updateXml();
    }

    private void updateXml() { ... }


The lock/key threading techniques have to do with, I think, a more
complex threading issue than the one you've presented.


- Dave  


> -----Original Message-----
> From: Behrang Saeedzadeh [mailto:[EMAIL PROTECTED] 
> Sent: Tuesday, December 14, 2004 4:34 PM
> To: [EMAIL PROTECTED]
> Subject: Preventing concurrent execution of an Action
> 
> Hi
> 
> I've an action that creates an XML file on the server. It's executed
> by clicking on a link. I don't want multiple instances of it to be
> executed concurrently.
> 
> Does an approach like the following work?
> 
> public class UpdateXmlAction ...
> {
>        private static final boolean locked;
> 
>        public void execute(...) {
> 
>                if (UpdateXmlAction.locked) {
>                        return;
>                }
> 
>                Synchronized(UpdateXmlAction.class) {
>                        locked = true;
>                        updateXml();
>                        locked = false;
>                }
> 
>        }
> }
> 
> Thanks in advance.
> 
> 
> -- 
> 
> Behrang Saeedzadeh
> http://www.jroller.com/page/behrangsa
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
> 
> 

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to