[ 
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)

Reply via email to