[
https://issues.apache.org/jira/browse/CHAIN-37?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12492570
]
Niall Pemberton commented on CHAIN-37:
--------------------------------------
Its not a problem for me and hasn't been raised as an issue on the Struts list
- which uses this implementation at its core in its ComposableRequestProcessor.
Creating a new instance for each execution in that scenrio would impact
performance for web applications with many users - so IMO this implementation
should not be changed. As I said before though - creating your own
implementation with your desired behaviour would be very easy since you can
just extend ChainBase and implement your own version of the execute method. If
you think it useful to others you could always submit it for inclusion in
Commons Chain. Alternatively perhaps adding a new property to ChainBase so that
this beahvour could be configurable (but retaining backwards compatibility with
existing behaviour as the default) would also work. If you're interested in
developing that, then please submit a patch (preferrably with test cases).
> 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]