[jboss-jira] [JBoss JIRA] (JGRP-1860) Custom classloader in RpcDispatcher

Bela Ban (Jira) issues at jboss.org
Mon Jan 27 04:57:07 EST 2020


    [ https://issues.redhat.com/browse/JGRP-1860?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13956888#comment-13956888 ] 

Bela Ban commented on JGRP-1860:
--------------------------------

Are you using JGroups directly? It shouldn't be difficult to port your app from 3.6 to 4.x.

{{Marshaller}} was moved out of {{RpcDispatcher}} into its own interface. {{UUID}} may not be backwards-compatible, but it should be trivial to change your subclass...

Note that running 3.6 and 4.x instances in the same cluster is not supported. You have to resort to an external package to make this happen: [1].

[1] https://github.com/jgroups-extras/RollingUpgrades

> Custom classloader in RpcDispatcher
> -----------------------------------
>
>                 Key: JGRP-1860
>                 URL: https://issues.redhat.com/browse/JGRP-1860
>             Project: JGroups
>          Issue Type: Feature Request
>    Affects Versions: 3.2.13
>            Reporter: Dennis Reed
>            Assignee: Bela Ban
>            Priority: Major
>             Fix For: 3.4.5, 3.5
>
>
> RpcDispatcher is hard-coded to use JGroups' classloader when marshalling the users's custom objects over RPC.
> RpcDispatcher uses Util.objectFromByteBuffer to unmarshall, which uses an ObjectInputStream.  ObjectInputStream uses the classloader of its caller's class (Util).
> RpcDispatcher does allow a custom marshaller to be used (implementing RpcDispatcher.Marshaller), but since Util.objectFromByteBuffer hard-codes the use of ObjectInputStream, a custom marshaller cannot simply set the classloader and then delegate back to the default JGroups code.
> Util.objectFromBuffer should be enhanced to use a custom ObjectInputStream implementation that overrides resolveClass to use a custom classloader, and an API should be added to RpcDispatcher to pass in the classloader to use.



--
This message was sent by Atlassian Jira
(v7.13.8#713008)


More information about the jboss-jira mailing list