You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@isis.apache.org by "Andi Huber (Jira)" <ji...@apache.org> on 2020/07/09 09:21:00 UTC

[jira] [Resolved] (ISIS-2398) Rendering a StandaloneCollectionPage in Wicket throws Optional not serializable exception

     [ https://issues.apache.org/jira/browse/ISIS-2398?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Andi Huber resolved ISIS-2398.
------------------------------
    Resolution: Fixed

supposedly fixed ... don't memoize Optional values (as fields), just create them on the fly

From an optimization perspective, these Optional instances might not even make it to the Java heap, if these are only used as local variables at the call site.

> Rendering a StandaloneCollectionPage in Wicket throws Optional not serializable exception
> -----------------------------------------------------------------------------------------
>
>                 Key: ISIS-2398
>                 URL: https://issues.apache.org/jira/browse/ISIS-2398
>             Project: Isis
>          Issue Type: Improvement
>    Affects Versions: 2.0.0-M3
>            Reporter: Daniel Keir Haywood
>            Assignee: Andi Huber
>            Priority: Minor
>             Fix For: 2.0.0-M4
>
>
> For demo app, this occurs when Prototyping > Run Fixture Script.  See stacktrace
> This seems to be just noise in the logs, but even so....
> {code:java}
> 2020-07-09 06:36:13.588 ERROR 3524 --- [ageSavingThread] o.a.w.s.j.JavaSerializer                 : Error serializing object class org.apache.isis.viewer.wicket.ui.pages.standalonecollection.StandaloneCollectionPage [object=[Page class = org.apache.isis.viewer.wicket.ui.pages.standalonecollection.StandaloneCollectionPage, id = 4, render count = 1]]org.apache.wicket.core.util.objects.checker.CheckingObjectOutputStream$ObjectCheckException: The object type is not Serializable!
> A problem occurred while checking object with type: java.util.Optional
> Field hierarchy is:
>   4 [class=org.apache.isis.viewer.wicket.ui.pages.standalonecollection.StandaloneCollectionPage, path=4]
>     private java.lang.Object org.apache.wicket.MarkupContainer.children [class=java.util.ArrayList]
>       private java.lang.String org.apache.isis.viewer.wicket.ui.components.widgets.favicon.Favicon.contentType[write:6][write:7][write:8] [class=org.apache.wicket.markup.html.WebMarkupContainer, path=4:theme]
>         private java.lang.Object org.apache.wicket.MarkupContainer.children [class=java.util.ArrayList]
>           private org.apache.isis.viewer.wicket.ui.ComponentType org.apache.isis.viewer.wicket.ui.panels.PanelAbstract.componentType[write:12][write:13][write:20] [class=org.apache.isis.viewer.wicket.ui.components.actionprompt.ActionPromptModalWindow, path=4:theme:actionPromptModalWindow]
>             private java.lang.Object org.apache.wicket.MarkupContainer.children [class=java.util.ArrayList]
>               private java.lang.Object org.apache.wicket.MarkupContainer.children[write:3][write:5][write:8] [class=org.apache.isis.viewer.wicket.ui.components.actions.ActionParametersPanel, path=4:theme:actionPromptModalWindow:content]
>                 private java.lang.Object org.apache.wicket.MarkupContainer.children [class=java.util.ArrayList]
>                   java.lang.Object org.apache.wicket.Component.data[write:8][write:4][write:7] [class=org.apache.isis.viewer.wicket.ui.components.actions.ActionParametersFormPanel, path=4:theme:actionPromptModalWindow:content:parameters]
>                     private java.lang.Object org.apache.wicket.MarkupContainer.children [class=org.apache.isis.viewer.wicket.ui.components.actions.ActionParametersForm, path=4:theme:actionPromptModalWindow:content:parameters:inputForm]
>                       private java.lang.Object org.apache.wicket.MarkupContainer.children [class=java.util.ArrayList]
>                         private java.lang.Object org.apache.wicket.MarkupContainer.children[write:1] [class=org.apache.wicket.markup.repeater.RepeatingView, path=4:theme:actionPromptModalWindow:content:parameters:inputForm:parameters]
>                           private java.lang.Object org.apache.wicket.MarkupContainer.children [class=java.util.ArrayList]
>                             private java.lang.Object org.apache.wicket.MarkupContainer.children[write:1] [class=org.apache.wicket.markup.html.WebMarkupContainer, path=4:theme:actionPromptModalWindow:content:parameters:inputForm:parameters:1]
>                               private java.lang.Object org.apache.wicket.MarkupContainer.children [class=org.apache.isis.viewer.wicket.ui.components.scalars.valuechoices.ValueChoicesSelect2Panel, path=4:theme:actionPromptModalWindow:content:parameters:inputForm:parameters:1:scalarNameAndValue]
>                                 java.lang.Object org.apache.wicket.Component.data [class=[Ljava.lang.Object;]
>                                   java.lang.Object org.apache.wicket.Component.data[0] [class=org.apache.isis.viewer.wicket.model.models.ScalarParameterModel]
>                                     private org.apache.isis.viewer.wicket.model.models.InlinePromptContext org.apache.isis.viewer.wicket.model.models.ScalarModel.inlinePromptContext [class=org.apache.isis.viewer.wicket.model.models.InlinePromptContext]
>                                       private final org.apache.wicket.Component org.apache.isis.viewer.wicket.model.models.InlinePromptContext.scalarIfRegular [class=org.apache.isis.viewer.wicket.ui.components.widgets.bootstrap.FormGroup, path=4:theme:actionPromptModalWindow:content:parameters:inputForm:parameters:1:scalarNameAndValue:scalarTypeContainer:scalarIfRegular]
>                                         private java.lang.Object org.apache.wicket.MarkupContainer.children [class=java.util.ArrayList]
>                                           private java.lang.Object org.apache.wicket.MarkupContainer.children[write:1] [class=org.apache.isis.viewer.wicket.ui.components.widgets.select2.Select2ChoiceExt, path=4:theme:actionPromptModalWindow:content:parameters:inputForm:parameters:1:scalarNameAndValue:scalarTypeContainer:scalarIfRegular:scalarValue]
>                                             private org.wicketstuff.select2.ChoiceProvider org.wicketstuff.select2.AbstractSelect2Choice.provider [class=org.apache.isis.viewer.wicket.ui.components.widgets.select2.providers.ObjectAdapterMementoProviderForValueChoices]
>                                               private final org.apache.isis.core.commons.collections.Can org.apache.isis.viewer.wicket.ui.components.widgets.select2.providers.ObjectAdapterMementoProviderForValueChoices.choiceMementos [class=org.apache.isis.core.commons.collections.Can_Singleton]
>                                                 private final java.util.concurrent.atomic.AtomicReference org.apache.isis.core.commons.collections.Can_Singleton.singleton [class=java.util.concurrent.atomic.AtomicReference]
>                                                   private volatile java.lang.Object java.util.concurrent.atomic.AtomicReference.value [class=java.util.Optional] <----- field that is causing the problem
>  {code}
>  



--
This message was sent by Atlassian Jira
(v8.3.4#803005)