Uploaded image for project: 'PUBLIC - Liferay Portal Community Edition'
  1. PUBLIC - Liferay Portal Community Edition
  2. LPS-82509

Unable to find class when serialized objects are transfered between nodes with different versions even if class is compatible

    Details

      Description

      Our ClassLoaderPool takes into account the version of the module to save and retrieve classloaders. When a module contains a class that's going to be serialized/deserialized and its version is different between nodes there is no way to find in the pool the correct classloader, hence neither the class.

       

      Steps to Reproduce:

      1. Start a node with an specific version for com.liferay.portal.scheduler.quartz
      2. Start a node with a different version for com.liferay.portal.scheduler.quartz with no need to have changes in QuartzTrigger class.

       

      Expected Results:

      No exception should be thrown

       

      Actual Results:

      An exception similar to the following appears in the logs:

      2018-06-14 14:59:59.515 WARN  [Incoming-2,liferay-channel-control,malvaro-ThinkPad-T450s-53405][JGroupsReceiver:79] Unable to deserialize message payload
      java.lang.ClassNotFoundException: Unable to load class com.liferay.portal.scheduler.quartz.internal.QuartzTrigger

        Attachments

          Issue Links

            Activity

              People

              • Votes:
                0 Vote for this issue
                Watchers:
                4 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved:
                  Days since last comment:
                  1 year, 3 weeks, 4 days ago

                  Packages

                  Version Package
                  7.0.0 DXP FP59
                  7.0.0 DXP SP9
                  7.0.X
                  7.1.X
                  Master