[
http://issues.apache.org/jira/browse/WICKET-142?page=comments#action_12457030 ]
Orion Letizi commented on WICKET-142:
-------------------------------------
Here's a little more info about this issue that showed up on the Terracotta
development mailing list. I'm also going to attach a Terracotta config file
that I cooked up when I was getting Wicket running in Terracotta.
On 12/8/06, Gary Keim <[EMAIL PROTECTED]> wrote:
Java transient fields are not replicated unless you've set honor-transient=true
in your config:
<include>
<class-expression>.....</class-expression>
<honor-transient>true</honor-transient>
</include>
Honor-transient defaults to false.
The other way it will not be replicated is if you've explicity declared it a
DSO transient field.
A non-replicated field can be initialized using BeanShell script in your
config file
<include>
<class-expression>wicket.util.concurrent.CopyOnWriteArrayList
</class-expression>
<on-load>
<execute>self.array_ = new Object[0];</execute>
</on-load>
</include>
> NullPointerException after deserialize
> wicket.util.concurrent.CopyOnWriteArrayList
> ----------------------------------------------------------------------------------
>
> Key: WICKET-142
> URL: http://issues.apache.org/jira/browse/WICKET-142
> Project: Wicket
> Issue Type: Bug
> Components: wicket
> Affects Versions: 1.2.3
> Reporter: Ingram Chen
> Assigned To: Igor Vaynberg
>
> wicket.feedback.FeedbackMessages by default using
> wicket.util.concurrent.CopyOnWriteArrayList for storage. however
> CopyOnWriteArrayList internally use a transient Object[] array_ without
> checking null and lazy initialization. This may cause NullPointerException
> after session replication or the like. Below is stack trace while testing
> terracotta session clustering :
> WicketMessage: unable to get object, model:
> Model:classname=[wicket.feedback.FeedbackMessagesModel]:attached=true, called
> with component [MarkupContainer [Component id = messages, page =
> ngc.wicket.pages.MainPage , path =
> 7:globalFeedback:feedbackul:messages.FeedbackPanel$MessageListView, isVisible
> = true, isVersioned = false]]
> Root cause:
> java.lang.NullPointerException
> at wicket.util.concurrent.CopyOnWriteArrayList.size
> (CopyOnWriteArrayList.java:152)
> at wicket.feedback.FeedbackMessages.messages(FeedbackMessages.java:258)
> at
> wicket.feedback.FeedbackMessagesModel.onGetObject(FeedbackMessagesModel.java:101)
> at wicket.model.AbstractDetachableModel.getObject
> (AbstractDetachableModel.java:104)
> at wicket.Component.getModelObject(Component.java:990)
> at
> wicket.markup.html.panel.FeedbackPanel.updateFeedback(FeedbackPanel.java:234)
> at wicket.Page$2.component (Page.java:372)
> at wicket.MarkupContainer.visitChildren(MarkupContainer.java:744)
> at wicket.Page.renderPage(Page.java:368)
>
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira