Skip to content
Snippets Groups Projects
Commit 96e5b9f7 authored by Simon Urli's avatar Simon Urli
Browse files

XWIKI-18833: Wrong classloader used for deserializing messages in remote observation manager

  * Use the classloader manager to use the right classloader for
    deserializing messages

(cherry picked from commit 86855db6)
parent 290cde76
No related branches found
No related tags found
No related merge requests found
......@@ -71,6 +71,11 @@
<groupId>org.jgroups</groupId>
<artifactId>jgroups</artifactId>
</dependency>
<dependency>
<groupId>org.xwiki.commons</groupId>
<artifactId>xwiki-commons-classloader-api</artifactId>
<version>${commons.version}</version>
</dependency>
<!-- Tests dependencies -->
<dependency>
......
......@@ -25,6 +25,7 @@
import org.jgroups.Message;
import org.jgroups.ReceiverAdapter;
import org.slf4j.Logger;
import org.xwiki.classloader.ClassLoaderManager;
import org.xwiki.component.annotation.Component;
import org.xwiki.component.manager.ComponentLookupException;
import org.xwiki.component.manager.ComponentManager;
......@@ -54,6 +55,9 @@ public class DefaultJGroupsReceiver extends ReceiverAdapter implements JGroupsRe
@Inject
private ComponentManager componentManager;
@Inject
private ClassLoaderManager classLoaderManager;
/**
* The logger to log.
*/
......@@ -79,7 +83,8 @@ public RemoteObservationManager getRemoteObservationManager()
@Override
public void receive(Message msg)
{
RemoteEventData remoteEvent = (RemoteEventData) msg.getObject();
RemoteEventData remoteEvent =
(RemoteEventData) msg.getObject(this.classLoaderManager.getURLClassLoader(null, false));
this.logger.debug("Received JGroups remote event [{}]", remoteEvent);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment