You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@struts.apache.org by "Bartek Wasko (JIRA)" <ji...@apache.org> on 2008/07/28 11:45:08 UTC

[jira] Updated: (STR-3161) Servlet not injected into newly created action in higly concurrent env

     [ https://issues.apache.org/struts/browse/STR-3161?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Bartek Wasko updated STR-3161:
------------------------------

    Attachment: RequestProcessor.patch

Patch - synchronisation extended (RequestProcessor.processActionCreate) to cover also code, where servlet is injected into action.

> 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
>         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.