[jboss-jira] [JBoss JIRA] (WFLY-9541) Storing a LinkedHashMap subclass in the session breaks replication.

Paul Ferraro (JIRA) issues at jboss.org
Thu Nov 9 08:17:00 EST 2017


    [ https://issues.jboss.org/browse/WFLY-9541?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13488111#comment-13488111 ] 

Paul Ferraro commented on WFLY-9541:
------------------------------------

[~klaasjanb] For the moment, you could workaround this issue by providing a custom Externalizer for your class (which would trump the LinkedHashMap externalizer).  To do this create an implementation of org.wildfly.clustering.marshalling.Externalizer and list the implementation class in a META-INF/services/org.wildfly.clustering.marshalling.Externalizer file.
The org.wildfly.clustering.marshalling.api module, which contains this interface, is public and is exposed to deployments by default.

In general, it is a good idea to provide externalizers for custom classes like this, as it avoid the need to serialize class definitions and can reduce the replication payload significantly.

That said, this needs to be fixed.  I'll alter the WFLY-9497 to be more discerning.  Thanks for the report.

> Storing a LinkedHashMap subclass in the session breaks replication.
> -------------------------------------------------------------------
>
>                 Key: WFLY-9541
>                 URL: https://issues.jboss.org/browse/WFLY-9541
>             Project: WildFly
>          Issue Type: Bug
>          Components: Clustering
>    Affects Versions: 12.0.0.Alpha1
>         Environment: Tested on JDK 1.8.0_152 on OS X 10.12
>            Reporter: Klaasjan Brand
>            Assignee: Paul Ferraro
>
> Context: trying to get one of our applications to work with Wildfly session replication.
> After trying out a build from the Wildfly master branch to test another bug I submitted I noticed another issue which works fine in the Wildfly 11 release.
> Our application has a custom LinkedHashMap subclass (MostRecentlyUsedMap from the Wicket framework) which it stores in the session. It also keeps a reference to the subclass since that one has a few extra fields.
> When marshalling the session the MostRecentlyUsedMap is converted to a LinkedHashMap. When unmarshalling the session this causes an error since the field is of the subclass type.
> This behaviour is new in WF 12 and is related to this commit:
> https://github.com/wildfly/wildfly/commit/143527f595206c5f2bf037b47c797f052cbe5d2
> (fix for the WFLY-9497 issue).



--
This message was sent by Atlassian JIRA
(v7.5.0#75005)


More information about the jboss-jira mailing list