You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@isis.apache.org by "Dan Haywood (JIRA)" <ji...@apache.org> on 2015/03/20 15:23:38 UTC

[jira] [Created] (ISIS-1101) Avoid unexpected concurrency exceptions if using a custom page.

Dan Haywood created ISIS-1101:
---------------------------------

             Summary: Avoid unexpected concurrency exceptions if using a custom page.
                 Key: ISIS-1101
                 URL: https://issues.apache.org/jira/browse/ISIS-1101
             Project: Isis
          Issue Type: Improvement
          Components: Core: Viewer: Wicket
    Affects Versions: core-1.8.0
            Reporter: Dan Haywood
            Assignee: Dan Haywood
            Priority: Minor
             Fix For: 1.9.0


The Wicket viewer uses the redirect-after-post strategy, meaning that after an action is invoked, an EntityModel (wrapping the oid of the entity) is serialized as the content of the next page to show, but the browser is then returned as 30x response.  The browser then reloads the page afresh.

However, the entity model will (normally) encode the oid of the entity before the xactn of the first request has completed; if that entity is modified (as is normally the case) then that oid is stale.

To counteract this the EntityPage page uses the onBeforeRender hook to load the objectAdapter from the EntityModel without concurrency checking.

So far so good.

However, the Wicket viewer also supports custom home pages.  If these are rendered for the resultant entity then this hook is not called, resulting in a concurrency check exception.

This ticket is therefore for the component factories (that render the object after the redirect) to load the entity without concurrent checking; this will allow them to work even if embedded in custom pages.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)