Prototype scoped Spring beans
-----------------------------

                 Key: WICKET-613
                 URL: https://issues.apache.org/jira/browse/WICKET-613
             Project: Wicket
          Issue Type: Bug
          Components: wicket-spring
    Affects Versions: 1.3.0-beta1, trunk
         Environment: JDK 6, Jetty
            Reporter: RĂ¼diger Schulz
            Priority: Critical
             Fix For: 1.3.0-rc1


I copied the following text from my discussion on wicket-user, and was asked to 
open an issue, so here it is:
http://www.nabble.com/Prototype-scoped-Spring-beans-tf3849285.html

For a more complex form I wanted to use a "stateful" Springbean, to which I 
applied scope="prototype". The idea is to have one bean instance for every Form 
instance. I would access the bean with PropertyModels and direct method calls 
during construction (i.e. setting initial state from input parameters) and 
during events, which would alter the state. I inject the bean into the Form 
with @SpringBean annotation.

This works somehow, but sometimes, especially after using the backbutton, I had 
the problem that the internal state was reset. So I analyzed the stack in  the 
constructor of the bean implementation, and found out that it was called twice 
during construction of the Form. First, during the super() call, and then again 
in the next line during a method call on that bean. I appended both stacktraces 
below. The  proxy itself does not change.

This happens again after going back and e.g. submitting again. This results in 
a NPE, because the internal state is reset.

I understand from reading the mailing list that the Wicket-Proxy does nothing 
but a lookup in the Application context, and does not know or care about spring 
scope.

And here I'm a little stuck. I am already considering to put the state into the 
Form, and make the Bean a singleton without any internal state. As that would 
mean some heavy refactoring, I would prefer a way where the Spring acces would 
work as I want. Or is this a wrong way altogether?


-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to