[
https://issues.apache.org/struts/browse/STR-3161?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Niall Pemberton resolved STR-3161.
----------------------------------
Resolution: Fixed
Fix Version/s: 1.3.10
Assignee: Niall Pemberton
Thanks, I have applied your patch:
http://svn.apache.org/viewvc?view=rev&revision=680345
However I'm wondering why you're still using the RequestProcessor with Struts
1.3.x? The new ComposableRequestProcessor delegates this to the CreateAction
command and the whole method is synchronized (so should resolve this issue for
you):
http://svn.apache.org/repos/asf/struts/struts1/trunk/core/src/main/java/org/apache/struts/chain/commands/servlet/CreateAction.java
> Servlet not injected into newly created action in higly concurrent env
> ----------------------------------------------------------------------
>
> Key: STR-3161
> URL: https://issues.apache.org/struts/browse/STR-3161
> Project: Struts 1
> Issue Type: Bug
> Components: Core
> Affects Versions: 1.3.8
> Environment: win xp, jvm 1.5.0_12
> Reporter: Bartek Wasko
> Assignee: Niall Pemberton
> Fix For: 1.3.10
>
> Attachments: RequestProcessor.patch
>
>
> In struts 1.3.8 we encountered such an issue
> getServlet() invoked from action code returns null.
> After quick investigation I found a bit susspicious place in the
> RequestProcessor#processActionCreate code.
> The synchronized block seems to be a bit risky in highly concurrent
> environment because it does not cover also the code injecting servlet into
> freshly created action:
> if (instance.getServlet() == null) {
> instance.setServlet(this.servlet);
> }
> After I had extended synchronisation to above code fragment, it seems, our
> nullpointer vanished.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.