Guillaume Smet created WICKET-5538: -------------------------------------- Summary: When using Component.setDefaultModel, only detach the previous model if the new one is different Key: WICKET-5538 URL: https://issues.apache.org/jira/browse/WICKET-5538 Project: Wicket Issue Type: Improvement Components: wicket Reporter: Guillaume Smet Priority: Minor
>From my post on the list: {quote} Hi, I don't see the point of detaching the prevModel if the model is not changing. I was thinking about changing the logic of Component.setDefaultModel like that: public Component setDefaultModel(final IModel<?> model) { IModel<?> prevModel = getModelImpl(); IModel<?> wrappedModel = prevModel; if (prevModel instanceof IWrapModel) { wrappedModel = ((IWrapModel<?>)prevModel).getWrappedModel(); } // Change model if (wrappedModel != model) { // Detach current model only if we really change the model if (prevModel != null) { prevModel.detach(); } modelChanging(); setModelImpl(wrap(model)); modelChanged(); } return this; } Note that it's something that hurts us a lot in a particular pattern we have here. We change the default model in onConfigure and every time we do it it's detached even if it's the exact same model. We could add a check in our code but I'm thinking it could be better to do it in Wicket directly. Thoughts? {quote} -- This message was sent by Atlassian JIRA (v6.2#6252)