No onAfterTargetsDetached (or similar) available in IRequestCycleListener
-------------------------------------------------------------------------

                 Key: WICKET-3695
                 URL: https://issues.apache.org/jira/browse/WICKET-3695
             Project: Wicket
          Issue Type: Bug
          Components: wicket-core
    Affects Versions: 1.5-RC4
            Reporter: Emond Papegaaij


In Wicket 1.4, we used to override onAfterTargetsDetached to check if all 
models in our pages are fully detached. In onEndRequest we closed the hibernate 
session and destroyed several threadlocals. In IRequestCycleListener, 
onEndRequest has been moved to execute before onDetach, and nothing executes 
after detach. The order in Wicket 1.4 was detach, onAfterTargetsDetached, 
onEndRequest, in Wicket 1.5 it has become onEndRequest, onDetach. This gives no 
place to run code after the detach, whereas Wicket 1.4 provided 2 options. In 
my opinion, either a new method should be added (onRequestDestroyed?) or 
onEndRequest should be moved to execute after onDetach (which, to me, makes 
more sense).

The current behavior makes it very difficult to work with request cycle 
listeners. For example, we can't close the hibernate session before pages are 
detached. Some of our models use the hibernate session during detach to record 
changes made to the objects stored in these models. This will fail if the 
hibernate session is already closed. Also, the detach-checker needs to run 
after the pages are detached. The only solutions for these problems I can think 
of right now is not to use request cycle listeners or to use a custom 
IRequestCycleProvider, which adds the listeners even before the wicket internal 
ones.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to