[ https://issues.apache.org/jira/browse/CHAIN-37?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12492564 ]
Niall Pemberton commented on CHAIN-37: -------------------------------------- True its not thread safe - but AFAIK thats the way it was designed, using singleton instances of the Command - rather than creating a new instance for each execution as in your proposal. ChainBase is a convenience implementation, you're free to re-use and create your own implementation with the behaviour you want - I think we should close this as "WONT FIX" though > The problem of org.apache.commons.chain.impl.ChainBase.execute > -------------------------------------------------------------- > > Key: CHAIN-37 > URL: https://issues.apache.org/jira/browse/CHAIN-37 > Project: Commons Chain > Issue Type: Bug > Affects Versions: 1.0, 1.1 > Reporter: kylin > Priority: Critical > > The ChainBase.execute metod is not thread safety,I Change the code like that: > // Execute the commands in this list until one returns true > // or throws an exception > boolean saveResult = false; > Exception saveException = null; > int i = 0; > int n = commands.length; > for (i = 0; i < n; i++) { > try { > > Command command = (Command)commands[i]; > > Command newCommand = > ((Command)commands[i].getClass().newInstance()); > > PropertyUtils.copyProperties(newCommand,command); > > saveResult = newCommand.execute(context); > > if (saveResult) { > break; > } > } catch (Exception e) { > saveException = e; > break; > } > } -- 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]