ignite-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Denis Magda (JIRA)" <j...@apache.org>
Subject [jira] [Created] (IGNITE-2947) BinaryContext doesn't honor custom loader set through IgniteConfiguration.classLoader
Date Tue, 05 Apr 2016 08:28:25 GMT
Denis Magda created IGNITE-2947:
-----------------------------------

             Summary: BinaryContext doesn't honor custom loader set through IgniteConfiguration.classLoader
                 Key: IGNITE-2947
                 URL: https://issues.apache.org/jira/browse/IGNITE-2947
             Project: Ignite
          Issue Type: Bug
          Components: binary
    Affects Versions: 1.5.0.final
            Reporter: Denis Magda
            Priority: Critical
             Fix For: 1.6


If to register a specific object with {{BinaryTypeConfiguration}} setting its {{typeName}}
and load Class of objects of this type using a custom class loader passed to {{IgniteConfiguration.classLoader}}
then at {{BinaryContext}} initialization time the context will not properly register this
{{BinaryTypeConfiguration}} because it doesn't suppose that the Class of the type can be loaded
by the custom class loader

In the code below {{Class.forName}} has to use {{IgniteConfiguration.classLoader}} if the
latest is set and fall back to {{dfltLdr}} otherwise.

{noformat}
    @SuppressWarnings("ErrorNotRethrown")
    public void registerUserType(String clsName,
        BinaryInternalMapper mapper,
        @Nullable BinarySerializer serializer,
        @Nullable String affKeyFieldName,
        boolean isEnum)
        throws BinaryObjectException {
        assert mapper != null;

        Class<?> cls = null;

        try {
            cls = Class.forName(clsName);
        }
        catch (ClassNotFoundException | NoClassDefFoundError ignored) {
            // No-op.
        }
{noformat} 

Also there are several conditions in {{BinaryContext}} that are done for {{dfltLdr}}. The
same conditions have to be executed for {{IgniteConfiguration.classLoader}}.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Mime
View raw message