[ 
https://issues.apache.org/jira/browse/IGNITE-5038?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16138113#comment-16138113
 ] 

Vladimir Ozerov commented on IGNITE-5038:
-----------------------------------------

[~v.pyatkov], my comments:
1) {{IgniteUtils.forName}} - {{noCache=true}} is ignored if passed classloader 
is null
2) {{GridBinaryMarshaller.unmarshal(..., ClassLoader)}} - why {{true}}? Looks 
like it should depend on passed classloader

As a whole I am very concerned of passing {{true}} flag all over the code. Why 
do we need it? As I understand, in order to understand whether cache should be 
used or not, we only need node's classloader and current classloader. Node's 
classloader is always somewhere near. Let's try to get rid of {{useCache}} as 
much as possible to minimize chance of error. We need clear invariant here.

> BinaryMarshaller might need to use context class loader for deserialization
> ---------------------------------------------------------------------------
>
>                 Key: IGNITE-5038
>                 URL: https://issues.apache.org/jira/browse/IGNITE-5038
>             Project: Ignite
>          Issue Type: New Feature
>          Components: cache
>    Affects Versions: 2.0
>            Reporter: Dmitry Karachentsev
>            Assignee: Vladislav Pyatkov
>              Labels: features
>             Fix For: 2.2
>
>         Attachments: results-compound-20170802.zip, 
> results-compound-20170808.zip
>
>
> There is a special use case discussed on the dev list:
> http://apache-ignite-developers.2346864.n4.nabble.com/Re-BinaryObjectImpl-deserializeValue-with-specific-ClassLoader-td17126.html#a17224
> According to the use case, BinaryMarshaller might need to try to deserialize 
> an object using a context class loader if it failed to do so with a custom 
> classloader (`IgniteConfiguration.getClassLoader()`) or the system one.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to