[
https://issues.apache.org/jira/browse/IGNITE-1272?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14904378#comment-14904378
]
Denis Magda commented on IGNITE-1272:
-------------------------------------
Finished implementing support of custom class loader by {{PortableMarshaller}}:
- user types are arranged by class loaders. This lets custom class loaders to
reload classes when needed;
- implemented {{onUndeploy(ClassLoader ldr)}} method. The method declaration
was added to {{AbstractMarshaller}};
As a result compute engine works fine over {{PortableMarshaller}} right know.
Compute tasks classes are reloaded by the marshaller when a compute task's
class version is changed.
Checking all the changes with TC.
What is left and should be fixed separately (probably as a part of other issue)
is that {{PortableObjectImpl}} doesn't support custom class loaders. It means
that if it's needed to deserialize a portable object then a node must have
object's class in its classpath upon startup. The tests specified in the
description of this task are failing exactly because of this issue.
> PortableMarshaller: issues when different class loaders are used
> ----------------------------------------------------------------
>
> Key: IGNITE-1272
> URL: https://issues.apache.org/jira/browse/IGNITE-1272
> Project: Ignite
> Issue Type: Bug
> Affects Versions: ignite-1.4
> Reporter: Denis Magda
> Assignee: Denis Magda
> Priority: Blocker
> Fix For: ignite-1.5
>
>
> The reason is that a loader is not passed to required places when needed.
> Reproduced with the following tests:
> - {{IgniteCacheAbstractExecutionContextTest.testUserClassLoader()}} fails
> with PortableMarshaller enabled.
> - {{GridDeploymentMessageCountSelfTest.testCacheValueDeploymentOnPut()}}
> Another issue is when {{PortableContext}} returns {{PortableClassDescriptor}}
> by type id. Returned descriptor has a constructor which already has been
> loaded with another class loader. Fix is not trivial and issue is reproduced
> with {{GridP2PRemoteClassLoadersSelfTest}}
> Look for corresponding TODOs in the code.
> Unmute tests when fixed
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)