This is an automated email from the ASF dual-hosted git repository. nizhikov pushed a commit to branch IGNITE-25928 in repository https://gitbox.apache.org/repos/asf/ignite.git
commit a88e3448f1d99de7eaf078d7a854e2c55a02f4a6 Author: Nikolay Izhikov <[email protected]> AuthorDate: Thu Jul 17 12:18:55 2025 +0300 IGNITE-25928 WIP --- .../apache/ignite/internal/binary/BinaryArray.java | 2 +- .../ignite/internal/binary/BinaryContext.java | 48 ++++++++++++++-------- .../internal/binary/BinaryEnumObjectImpl.java | 2 +- .../ignite/internal/binary/BinaryObjectImpl.java | 4 +- .../internal/binary/BinaryObjectOffheapImpl.java | 2 +- .../ignite/internal/binary/BinaryReaderExImpl.java | 2 +- .../apache/ignite/internal/binary/BinaryUtils.java | 2 +- .../ignite/internal/binary/BinaryWriterExImpl.java | 2 +- .../internal/binary/builder/BinaryBuilderEnum.java | 2 +- .../binary/builder/BinaryBuilderReader.java | 6 +-- .../binary/builder/BinaryEnumArrayLazyValue.java | 2 +- .../binary/builder/BinaryObjectArrayLazyValue.java | 2 +- .../binary/builder/BinaryObjectBuilderImpl.java | 2 +- .../client/thin/ClientBinaryMarshaller.java | 2 +- .../internal/client/thin/TcpClientChannel.java | 2 +- .../internal/jdbc/thin/JdbcThinConnection.java | 4 +- .../ignite/internal/jdbc/thin/JdbcThinTcpIo.java | 2 +- .../binary/CacheObjectBinaryProcessorImpl.java | 3 +- .../processors/odbc/ClientListenerNioListener.java | 2 +- .../apache/ignite/internal/util/IgniteUtils.java | 21 +++++++--- .../binary/BinaryFieldExtractionSelfTest.java | 2 +- .../binary/BinaryFieldsAbstractSelfTest.java | 2 +- .../BinaryFooterOffsetsAbstractSelfTest.java | 2 +- .../internal/binary/BinaryMarshallerSelfTest.java | 2 + .../GridBinaryMarshallerCtxDisabledSelfTest.java | 2 +- .../binary/RawBinaryObjectExtractorTest.java | 2 +- .../platform/PlatformGetInternalCachesTask.java | 2 +- .../session/GridSessionCheckpointSelfTest.java | 1 + .../testframework/junits/GridAbstractTest.java | 1 + .../junits/GridTestBinaryMarshaller.java | 1 + .../ignite/testframework/junits/IgniteMock.java | 1 + .../testframework/junits/IgniteTestResources.java | 2 +- 32 files changed, 83 insertions(+), 51 deletions(-) diff --git a/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryArray.java b/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryArray.java index b5269f4a11d..fef7e7d746a 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryArray.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryArray.java @@ -103,7 +103,7 @@ class BinaryArray implements BinaryObjectEx, Externalizable, Comparable<BinaryAr /** {@inheritDoc} */ @Override public <T> T deserialize(ClassLoader ldr) throws BinaryObjectException { - ClassLoader resolveLdr = ldr == null ? ctx.configuration().getClassLoader() : ldr; + ClassLoader resolveLdr = ldr == null ? ctx.classLoader() : ldr; if (ldr != null) GridBinaryMarshaller.USE_CACHE.set(Boolean.FALSE); diff --git a/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryContext.java b/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryContext.java index edf10d7791c..83eeaea5485 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryContext.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryContext.java @@ -63,7 +63,6 @@ import org.apache.ignite.binary.BinaryTypeConfiguration; import org.apache.ignite.cache.affinity.AffinityKey; import org.apache.ignite.cache.affinity.AffinityKeyMapped; import org.apache.ignite.configuration.BinaryConfiguration; -import org.apache.ignite.configuration.IgniteConfiguration; import org.apache.ignite.internal.DuplicateTypeIdException; import org.apache.ignite.internal.UnregisteredBinaryTypeException; import org.apache.ignite.internal.UnregisteredClassException; @@ -79,7 +78,6 @@ import org.apache.ignite.internal.processors.query.QueryUtils; import org.apache.ignite.internal.util.IgniteUtils; import org.apache.ignite.internal.util.lang.GridMapEntry; import org.apache.ignite.internal.util.typedef.T2; -import org.apache.ignite.internal.util.typedef.internal.CU; import org.apache.ignite.internal.util.typedef.internal.U; import org.apache.ignite.lang.IgniteBiTuple; import org.apache.ignite.lang.IgniteUuid; @@ -160,15 +158,18 @@ public class BinaryContext { /** */ private BinaryMetadataHandler metaHnd; + /** Node name. */ + private final String igniteInstanceName; + + /** Class loader. */ + private final ClassLoader clsLdr = null; + /** Actual marshaller. */ private BinaryMarshaller marsh; /** */ private MarshallerContext marshCtx; - /** */ - private final IgniteConfiguration igniteCfg = null; - /** Binary configuration. */ private final BinaryConfiguration bcfg; @@ -185,26 +186,34 @@ public class BinaryContext { private volatile Map<Integer, BinarySchemaRegistry> schemas; /** - * @param nodeName Ignite instance name. + * @param igniteInstanceName Ignite instance name. * @param bcfg Binary configuration. * @param log Logger. */ - public BinaryContext(@Nullable String nodeName, @Nullable BinaryConfiguration bcfg, IgniteLogger log) { - this(BinaryNoopMetadataHandler.instance(), nodeName, bcfg, log); + public BinaryContext(@Nullable String igniteInstanceName, @Nullable BinaryConfiguration bcfg, IgniteLogger log) { + this(BinaryNoopMetadataHandler.instance(), igniteInstanceName, null, bcfg, log); } /** * @param metaHnd Meta data handler. - * @param nodeName Ignite instance name. + * @param igniteInstanceName Ignite instance name. + * @param clsLdr Class loader. * @param bcfg Binary configuration. * @param log Logger. */ - public BinaryContext(BinaryMetadataHandler metaHnd, @Nullable String nodeName, @Nullable BinaryConfiguration bcfg, IgniteLogger log) { + public BinaryContext( + BinaryMetadataHandler metaHnd, + @Nullable String igniteInstanceName, + @Nullable ClassLoader clsLdr, + @Nullable BinaryConfiguration bcfg, + IgniteLogger log + ) { assert metaHnd != null; - MarshallerUtils.setNodeName(optmMarsh, nodeName); + MarshallerUtils.setNodeName(optmMarsh, igniteInstanceName); this.metaHnd = metaHnd; + this.igniteInstanceName = igniteInstanceName; this.bcfg = bcfg; this.log = log; @@ -328,10 +337,17 @@ public class BinaryContext { } /** - * @return Ignite configuration. + * @return Ignite instance name. + */ + public String igniteInstanceName() { + return igniteInstanceName; + } + + /** + * @return Class loader. */ - public IgniteConfiguration configuration() { - return igniteCfg; + public ClassLoader classLoader() { + return clsLdr; } /** @@ -339,7 +355,7 @@ public class BinaryContext { * @throws BinaryObjectException In case of error. */ public void configure(BinaryMarshaller marsh) throws BinaryObjectException { - configure(marsh, null, CU.affinityFields(igniteCfg)); + configure(marsh, null, new HashMap<>()); } /** @@ -1166,7 +1182,7 @@ public class BinaryContext { Class<?> cls = null; try { - cls = U.resolveClassLoader(configuration()).loadClass(clsName); + cls = U.resolveClassLoader(null, classLoader()).loadClass(clsName); } catch (ClassNotFoundException | NoClassDefFoundError ignored) { // No-op. diff --git a/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryEnumObjectImpl.java b/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryEnumObjectImpl.java index 88db71fbea4..4d69956edff 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryEnumObjectImpl.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryEnumObjectImpl.java @@ -173,7 +173,7 @@ class BinaryEnumObjectImpl implements BinaryObjectEx, Externalizable, CacheObjec /** {@inheritDoc} */ @Override public <T> T deserialize(@Nullable ClassLoader ldr) throws BinaryObjectException { - ClassLoader resolveLdr = ldr == null ? ctx.configuration().getClassLoader() : ldr; + ClassLoader resolveLdr = ldr == null ? ctx.classLoader() : ldr; if (ldr != null) GridBinaryMarshaller.USE_CACHE.set(Boolean.FALSE); diff --git a/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryObjectImpl.java b/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryObjectImpl.java index cb66242cdfb..5cbd148c31b 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryObjectImpl.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryObjectImpl.java @@ -873,7 +873,7 @@ final class BinaryObjectImpl extends BinaryObjectExImpl implements Externalizabl */ private Object deserializeValue(@Nullable CacheObjectValueContext coCtx) { BinaryReaderEx reader = reader(null, coCtx != null ? - coCtx.kernalContext().config().getClassLoader() : ctx.configuration().getClassLoader(), true); + coCtx.kernalContext().config().getClassLoader() : ctx.classLoader(), true); Object obj0 = reader.deserialize(); @@ -906,7 +906,7 @@ final class BinaryObjectImpl extends BinaryObjectExImpl implements Externalizabl private BinaryReaderEx reader(@Nullable BinaryReaderHandles rCtx, @Nullable ClassLoader ldr, boolean forUnmarshal) { if (ldr == null) - ldr = ctx.configuration().getClassLoader(); + ldr = ctx.classLoader(); return BinaryUtils.reader(ctx, BinaryStreams.inputStream(arr, start), diff --git a/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryObjectOffheapImpl.java b/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryObjectOffheapImpl.java index 57be2a50128..40ff9130c45 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryObjectOffheapImpl.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryObjectOffheapImpl.java @@ -531,7 +531,7 @@ class BinaryObjectOffheapImpl extends BinaryObjectExImpl implements Externalizab * @return Reader. */ private BinaryReaderEx reader(@Nullable BinaryReaderHandles rCtx, boolean forUnmarshal) { - return reader(rCtx, ctx.configuration().getClassLoader(), forUnmarshal); + return reader(rCtx, ctx.classLoader(), forUnmarshal); } /** diff --git a/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryReaderExImpl.java b/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryReaderExImpl.java index 7e8605ae4c1..025e33eb52f 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryReaderExImpl.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryReaderExImpl.java @@ -1701,7 +1701,7 @@ class BinaryReaderExImpl implements BinaryReaderEx { /** {@inheritDoc} */ @Override public @Nullable Object deserialize() throws BinaryObjectException { - String newName = ctx.configuration().getIgniteInstanceName(); + String newName = ctx.igniteInstanceName(); String oldName = IgniteUtils.setCurrentIgniteName(newName); try { diff --git a/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryUtils.java b/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryUtils.java index 7fff65e3721..150073fe022 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryUtils.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryUtils.java @@ -1874,7 +1874,7 @@ public class BinaryUtils { ByteArrayInputStream input = new ByteArrayInputStream(in.array(), in.position(), len); try { - return ctx.optimizedMarsh().unmarshal(input, U.resolveClassLoader(clsLdr, ctx.configuration())); + return ctx.optimizedMarsh().unmarshal(input, U.resolveClassLoader(clsLdr, ctx.classLoader())); } catch (IgniteCheckedException e) { throw new BinaryObjectException("Failed to unmarshal object with optimized marshaller", e); diff --git a/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryWriterExImpl.java b/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryWriterExImpl.java index 7c2dcc5d787..9bb268c3ccc 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryWriterExImpl.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryWriterExImpl.java @@ -130,7 +130,7 @@ class BinaryWriterExImpl implements BinaryWriterEx { * @throws org.apache.ignite.binary.BinaryObjectException In case of error. */ void marshal(Object obj, boolean enableReplace) throws BinaryObjectException { - String newName = ctx.configuration().getIgniteInstanceName(); + String newName = ctx.igniteInstanceName(); String oldName = IgniteUtils.setCurrentIgniteName(newName); try { diff --git a/modules/core/src/main/java/org/apache/ignite/internal/binary/builder/BinaryBuilderEnum.java b/modules/core/src/main/java/org/apache/ignite/internal/binary/builder/BinaryBuilderEnum.java index 6831ea27dde..23bd32b6d83 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/binary/builder/BinaryBuilderEnum.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/binary/builder/BinaryBuilderEnum.java @@ -57,7 +57,7 @@ class BinaryBuilderEnum implements BinaryBuilderSerializationAware { Class cls; try { - cls = U.forName(reader.readString(), reader.binaryContext().configuration().getClassLoader()); + cls = U.forName(reader.readString(), reader.binaryContext().classLoader()); } catch (ClassNotFoundException e) { throw new BinaryInvalidTypeException("Failed to load the class: " + clsName, e); diff --git a/modules/core/src/main/java/org/apache/ignite/internal/binary/builder/BinaryBuilderReader.java b/modules/core/src/main/java/org/apache/ignite/internal/binary/builder/BinaryBuilderReader.java index 9232f60ee63..be39b33304f 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/binary/builder/BinaryBuilderReader.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/binary/builder/BinaryBuilderReader.java @@ -69,7 +69,7 @@ class BinaryBuilderReader implements BinaryPositionReadable { reader = BinaryUtils.reader(ctx, BinaryStreams.inputStream(arr, pos), - ctx.configuration().getClassLoader(), + ctx.classLoader(), false); objMap = new HashMap<>(); @@ -491,7 +491,7 @@ class BinaryBuilderReader implements BinaryPositionReadable { case GridBinaryMarshaller.OPTM_MARSH: { final BinaryInputStream bin = BinaryStreams.inputStream(arr, pos + 1); - final Object obj = BinaryUtils.doReadOptimized(bin, ctx, U.resolveClassLoader(ctx.configuration())); + final Object obj = BinaryUtils.doReadOptimized(bin, ctx, U.resolveClassLoader(null, ctx.classLoader())); return obj; } @@ -843,7 +843,7 @@ class BinaryBuilderReader implements BinaryPositionReadable { case GridBinaryMarshaller.OPTM_MARSH: { final BinaryInputStream bin = BinaryStreams.inputStream(arr, pos); - final Object obj = BinaryUtils.doReadOptimized(bin, ctx, U.resolveClassLoader(ctx.configuration())); + final Object obj = BinaryUtils.doReadOptimized(bin, ctx, U.resolveClassLoader(null, ctx.classLoader())); pos = bin.position(); diff --git a/modules/core/src/main/java/org/apache/ignite/internal/binary/builder/BinaryEnumArrayLazyValue.java b/modules/core/src/main/java/org/apache/ignite/internal/binary/builder/BinaryEnumArrayLazyValue.java index 4dcf30fcb78..f966abca5bf 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/binary/builder/BinaryEnumArrayLazyValue.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/binary/builder/BinaryEnumArrayLazyValue.java @@ -50,7 +50,7 @@ class BinaryEnumArrayLazyValue extends BinaryAbstractLazyValue { Class cls; try { - cls = U.forName(reader.readString(), reader.binaryContext().configuration().getClassLoader()); + cls = U.forName(reader.readString(), reader.binaryContext().classLoader()); } catch (ClassNotFoundException e) { throw new BinaryInvalidTypeException("Failed to load the class: " + clsName, e); diff --git a/modules/core/src/main/java/org/apache/ignite/internal/binary/builder/BinaryObjectArrayLazyValue.java b/modules/core/src/main/java/org/apache/ignite/internal/binary/builder/BinaryObjectArrayLazyValue.java index 335b9129f6f..ebdf96c04d6 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/binary/builder/BinaryObjectArrayLazyValue.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/binary/builder/BinaryObjectArrayLazyValue.java @@ -49,7 +49,7 @@ class BinaryObjectArrayLazyValue extends BinaryAbstractLazyValue { Class cls; try { - cls = U.forName(reader.readString(), reader.binaryContext().configuration().getClassLoader()); + cls = U.forName(reader.readString(), reader.binaryContext().classLoader()); } catch (ClassNotFoundException e) { throw new BinaryInvalidTypeException("Failed to load the class: " + clsName, e); diff --git a/modules/core/src/main/java/org/apache/ignite/internal/binary/builder/BinaryObjectBuilderImpl.java b/modules/core/src/main/java/org/apache/ignite/internal/binary/builder/BinaryObjectBuilderImpl.java index 87cb045262b..b39c5d5e7ea 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/binary/builder/BinaryObjectBuilderImpl.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/binary/builder/BinaryObjectBuilderImpl.java @@ -147,7 +147,7 @@ class BinaryObjectBuilderImpl implements BinaryObjectBuilder { Class cls; try { - cls = U.forName(clsNameToWrite, ctx.configuration().getClassLoader()); + cls = U.forName(clsNameToWrite, ctx.classLoader()); } catch (ClassNotFoundException e) { throw new BinaryInvalidTypeException("Failed to load the class: " + clsNameToWrite, e); diff --git a/modules/core/src/main/java/org/apache/ignite/internal/client/thin/ClientBinaryMarshaller.java b/modules/core/src/main/java/org/apache/ignite/internal/client/thin/ClientBinaryMarshaller.java index 89e6e84b5f9..e0a443c0353 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/client/thin/ClientBinaryMarshaller.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/client/thin/ClientBinaryMarshaller.java @@ -108,7 +108,7 @@ class ClientBinaryMarshaller { igniteCfg.setBinaryConfiguration(binCfg); - BinaryContext ctx = new BinaryContext(metaHnd, null, null, NullLogger.INSTANCE); + BinaryContext ctx = new BinaryContext(metaHnd, null, null, null, NullLogger.INSTANCE); BinaryMarshaller marsh = new BinaryMarshaller(); diff --git a/modules/core/src/main/java/org/apache/ignite/internal/client/thin/TcpClientChannel.java b/modules/core/src/main/java/org/apache/ignite/internal/client/thin/TcpClientChannel.java index 0c418f90934..eeebd6313b7 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/client/thin/TcpClientChannel.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/client/thin/TcpClientChannel.java @@ -839,7 +839,7 @@ class TcpClientChannel implements ClientChannel, ClientMessageHandler, ClientCon /** Send handshake request. */ private void handshakeReq(ProtocolVersion proposedVer, String user, String pwd, Map<String, String> userAttrs) throws ClientConnectionException { - BinaryContext ctx = new BinaryContext(BinaryUtils.cachingMetadataHandler(), null, null, null); + BinaryContext ctx = new BinaryContext(BinaryUtils.cachingMetadataHandler(), null, null, null, null); try (BinaryWriterEx writer = BinaryUtils.writer(ctx, BinaryStreams.outputStream(32), null)) { ProtocolContext protocolCtx = protocolContextFromVersion(proposedVer); diff --git a/modules/core/src/main/java/org/apache/ignite/internal/jdbc/thin/JdbcThinConnection.java b/modules/core/src/main/java/org/apache/ignite/internal/jdbc/thin/JdbcThinConnection.java index 24070d51bd7..a5cc2cb6247 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/jdbc/thin/JdbcThinConnection.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/jdbc/thin/JdbcThinConnection.java @@ -296,7 +296,7 @@ public class JdbcThinConnection implements Connection { netTimeout = connProps.getConnectionTimeout(); qryTimeout = connProps.getQueryTimeout(); maintenanceExecutor = Executors.newScheduledThreadPool(2, - new IgniteThreadFactory(ctx.configuration().getIgniteInstanceName(), "jdbc-maintenance")); + new IgniteThreadFactory(ctx.igniteInstanceName(), "jdbc-maintenance")); schema = JdbcUtils.normalizeSchema(connProps.getSchema()); @@ -325,7 +325,7 @@ public class JdbcThinConnection implements Connection { BinaryConfiguration binCfg = new BinaryConfiguration().setCompactFooter(true); - BinaryContext ctx = new BinaryContext(metaHnd, null, null, new NullLogger()); + BinaryContext ctx = new BinaryContext(metaHnd, null, null, null, new NullLogger()); ctx.configure(marsh, binCfg, CU.affinityFields(null)); diff --git a/modules/core/src/main/java/org/apache/ignite/internal/jdbc/thin/JdbcThinTcpIo.java b/modules/core/src/main/java/org/apache/ignite/internal/jdbc/thin/JdbcThinTcpIo.java index 70ec0fa0f93..b9be9141742 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/jdbc/thin/JdbcThinTcpIo.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/jdbc/thin/JdbcThinTcpIo.java @@ -268,7 +268,7 @@ public class JdbcThinTcpIo { * @throws SQLException On connection reject. */ private HandshakeResult handshake(ClientListenerProtocolVersion ver) throws IOException, SQLException { - BinaryContext ctx = new BinaryContext(BinaryUtils.cachingMetadataHandler(), null, null, null); + BinaryContext ctx = new BinaryContext(BinaryUtils.cachingMetadataHandler(), null, null, null, null); BinaryMarshaller marsh = new BinaryMarshaller(); diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/binary/CacheObjectBinaryProcessorImpl.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/binary/CacheObjectBinaryProcessorImpl.java index 428efd825ee..4a5bbd4892f 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/binary/CacheObjectBinaryProcessorImpl.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/binary/CacheObjectBinaryProcessorImpl.java @@ -283,6 +283,7 @@ public class CacheObjectBinaryProcessorImpl extends GridProcessorAdapter impleme : new BinaryContext( metaHnd, ctx.config().getIgniteInstanceName(), + ctx.config().getClassLoader(), ctx.config().getBinaryConfiguration(), ctx.log(BinaryContext.class) ); @@ -1643,7 +1644,7 @@ public class CacheObjectBinaryProcessorImpl extends GridProcessorAdapter impleme */ public TestBinaryContext(BinaryMetadataHandler metaHnd, IgniteConfiguration cfg, IgniteLogger log) { - super(metaHnd, cfg.getIgniteInstanceName(), cfg.getBinaryConfiguration(), log); + super(metaHnd, cfg.getIgniteInstanceName(), cfg.getClassLoader(), cfg.getBinaryConfiguration(), log); } /** {@inheritDoc} */ diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/odbc/ClientListenerNioListener.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/odbc/ClientListenerNioListener.java index 04828c92a4a..51e134cdf98 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/odbc/ClientListenerNioListener.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/odbc/ClientListenerNioListener.java @@ -356,7 +356,7 @@ public class ClientListenerNioListener extends GridNioServerListenerAdapter<Clie * @param msg Message bytes. */ private void onHandshake(GridNioSession ses, ClientMessage msg) { - BinaryContext ctx = new BinaryContext(BinaryUtils.cachingMetadataHandler(), null, null, null); + BinaryContext ctx = new BinaryContext(BinaryUtils.cachingMetadataHandler(), null, null, null, null); BinaryMarshaller marsh = new BinaryMarshaller(); diff --git a/modules/core/src/main/java/org/apache/ignite/internal/util/IgniteUtils.java b/modules/core/src/main/java/org/apache/ignite/internal/util/IgniteUtils.java index f21b0dc2cc9..e1dc14ebc04 100755 --- a/modules/core/src/main/java/org/apache/ignite/internal/util/IgniteUtils.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/util/IgniteUtils.java @@ -2114,14 +2114,23 @@ public abstract class IgniteUtils extends CommonUtils { * ClassLoader at IgniteConfiguration in case it is not null or * ClassLoader used to start Ignite. */ - public static ClassLoader resolveClassLoader(ClassLoader ldr, IgniteConfiguration cfg) { + public static ClassLoader resolveClassLoader(@Nullable ClassLoader ldr, IgniteConfiguration cfg) { assert cfg != null; - return (ldr != null && ldr != gridClassLoader) ? - ldr : - cfg.getClassLoader() != null ? - cfg.getClassLoader() : - gridClassLoader; + return resolveClassLoader(ldr, cfg.getClassLoader()); + } + + /** + * @param ldr Custom class loader. + * @param cfgLdr Class loader from config. + * @return ClassLoader passed as param in case it is not null or cfgLdr in case it is not null or ClassLoader used to start Ignite. + */ + public static ClassLoader resolveClassLoader(@Nullable ClassLoader ldr, @Nullable ClassLoader cfgLdr) { + return (ldr != null && ldr != gridClassLoader) + ? ldr + : cfgLdr != null + ? cfgLdr + : gridClassLoader; } /** diff --git a/modules/core/src/test/java/org/apache/ignite/internal/binary/BinaryFieldExtractionSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/binary/BinaryFieldExtractionSelfTest.java index f443a5882fb..c999c7c9c12 100644 --- a/modules/core/src/test/java/org/apache/ignite/internal/binary/BinaryFieldExtractionSelfTest.java +++ b/modules/core/src/test/java/org/apache/ignite/internal/binary/BinaryFieldExtractionSelfTest.java @@ -43,7 +43,7 @@ public class BinaryFieldExtractionSelfTest extends GridCommonAbstractTest { * @throws Exception If failed. */ protected BinaryMarshaller createMarshaller() throws Exception { - BinaryContext ctx = new BinaryContext(BinaryUtils.cachingMetadataHandler(), null, null, + BinaryContext ctx = new BinaryContext(BinaryUtils.cachingMetadataHandler(), null, null, null, log()); BinaryMarshaller marsh = new BinaryMarshaller(); diff --git a/modules/core/src/test/java/org/apache/ignite/internal/binary/BinaryFieldsAbstractSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/binary/BinaryFieldsAbstractSelfTest.java index c27cf753c82..31c259d71c7 100644 --- a/modules/core/src/test/java/org/apache/ignite/internal/binary/BinaryFieldsAbstractSelfTest.java +++ b/modules/core/src/test/java/org/apache/ignite/internal/binary/BinaryFieldsAbstractSelfTest.java @@ -48,7 +48,7 @@ public abstract class BinaryFieldsAbstractSelfTest extends GridCommonAbstractTes * @throws Exception If failed. */ protected BinaryMarshaller createMarshaller() throws Exception { - BinaryContext ctx = new BinaryContext(BinaryUtils.cachingMetadataHandler(), null, null, + BinaryContext ctx = new BinaryContext(BinaryUtils.cachingMetadataHandler(), null, null, null, new NullLogger()); BinaryMarshaller marsh = new BinaryMarshaller(); diff --git a/modules/core/src/test/java/org/apache/ignite/internal/binary/BinaryFooterOffsetsAbstractSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/binary/BinaryFooterOffsetsAbstractSelfTest.java index c88843495b7..8c2f6919688 100644 --- a/modules/core/src/test/java/org/apache/ignite/internal/binary/BinaryFooterOffsetsAbstractSelfTest.java +++ b/modules/core/src/test/java/org/apache/ignite/internal/binary/BinaryFooterOffsetsAbstractSelfTest.java @@ -47,7 +47,7 @@ public abstract class BinaryFooterOffsetsAbstractSelfTest extends GridCommonAbst @Override protected void beforeTest() throws Exception { super.beforeTest(); - ctx = new BinaryContext(BinaryUtils.cachingMetadataHandler(), null, null, new NullLogger()); + ctx = new BinaryContext(BinaryUtils.cachingMetadataHandler(), null, null, null, new NullLogger()); marsh = new BinaryMarshaller(); diff --git a/modules/core/src/test/java/org/apache/ignite/internal/binary/BinaryMarshallerSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/binary/BinaryMarshallerSelfTest.java index 4910370573d..345fb8f676f 100644 --- a/modules/core/src/test/java/org/apache/ignite/internal/binary/BinaryMarshallerSelfTest.java +++ b/modules/core/src/test/java/org/apache/ignite/internal/binary/BinaryMarshallerSelfTest.java @@ -4169,6 +4169,7 @@ public class BinaryMarshallerSelfTest extends AbstractBinaryArraysTest { BinaryContext ctx = new BinaryContext( BinaryUtils.cachingMetadataHandler(), iCfg.getIgniteInstanceName(), + iCfg.getClassLoader(), iCfg.getBinaryConfiguration(), new NullLogger() ); @@ -4235,6 +4236,7 @@ public class BinaryMarshallerSelfTest extends AbstractBinaryArraysTest { BinaryContext ctx = new BinaryContext( BinaryUtils.cachingMetadataHandler(), iCfg.getIgniteInstanceName(), + iCfg.getClassLoader(), iCfg.getBinaryConfiguration(), new NullLogger() ); diff --git a/modules/core/src/test/java/org/apache/ignite/internal/binary/GridBinaryMarshallerCtxDisabledSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/binary/GridBinaryMarshallerCtxDisabledSelfTest.java index 1caf9750c19..3e6a07bf618 100644 --- a/modules/core/src/test/java/org/apache/ignite/internal/binary/GridBinaryMarshallerCtxDisabledSelfTest.java +++ b/modules/core/src/test/java/org/apache/ignite/internal/binary/GridBinaryMarshallerCtxDisabledSelfTest.java @@ -47,7 +47,7 @@ public class GridBinaryMarshallerCtxDisabledSelfTest extends GridCommonAbstractT BinaryMarshaller marsh = new BinaryMarshaller(); marsh.setContext(new MarshallerContextWithNoStorage()); - BinaryContext ctx = new BinaryContext(BinaryUtils.cachingMetadataHandler(), null, null, new NullLogger()); + BinaryContext ctx = new BinaryContext(BinaryUtils.cachingMetadataHandler(), null, null, null, new NullLogger()); marsh.setBinaryContext(ctx, new IgniteConfiguration()); diff --git a/modules/core/src/test/java/org/apache/ignite/internal/binary/RawBinaryObjectExtractorTest.java b/modules/core/src/test/java/org/apache/ignite/internal/binary/RawBinaryObjectExtractorTest.java index f8f90cf94c3..3f8e04164f3 100644 --- a/modules/core/src/test/java/org/apache/ignite/internal/binary/RawBinaryObjectExtractorTest.java +++ b/modules/core/src/test/java/org/apache/ignite/internal/binary/RawBinaryObjectExtractorTest.java @@ -77,7 +77,7 @@ public class RawBinaryObjectExtractorTest extends GridCommonAbstractTest { /** */ public static BinaryContext createTestBinaryContext() { - BinaryContext ctx = new BinaryContext(BinaryUtils.cachingMetadataHandler(), null, null, null); + BinaryContext ctx = new BinaryContext(BinaryUtils.cachingMetadataHandler(), null, null, null, null); BinaryMarshaller marsh = new BinaryMarshaller(); diff --git a/modules/core/src/test/java/org/apache/ignite/platform/PlatformGetInternalCachesTask.java b/modules/core/src/test/java/org/apache/ignite/platform/PlatformGetInternalCachesTask.java index 4e5ed516f6d..c8682cc7411 100644 --- a/modules/core/src/test/java/org/apache/ignite/platform/PlatformGetInternalCachesTask.java +++ b/modules/core/src/test/java/org/apache/ignite/platform/PlatformGetInternalCachesTask.java @@ -68,7 +68,7 @@ public class PlatformGetInternalCachesTask extends ComputeTaskAdapter<Object, by @Override public byte[] execute() { IgniteEx ign = (IgniteEx)ignite; - BinaryContext ctx = new BinaryContext(BinaryUtils.cachingMetadataHandler(), null, null, null); + BinaryContext ctx = new BinaryContext(BinaryUtils.cachingMetadataHandler(), null, null, null, null); try (BinaryWriterEx writer = BinaryUtils.writer(ctx, BinaryStreams.outputStream(512), null)) { diff --git a/modules/core/src/test/java/org/apache/ignite/session/GridSessionCheckpointSelfTest.java b/modules/core/src/test/java/org/apache/ignite/session/GridSessionCheckpointSelfTest.java index 012d53914e3..d72646557e5 100644 --- a/modules/core/src/test/java/org/apache/ignite/session/GridSessionCheckpointSelfTest.java +++ b/modules/core/src/test/java/org/apache/ignite/session/GridSessionCheckpointSelfTest.java @@ -103,6 +103,7 @@ public class GridSessionCheckpointSelfTest extends GridSessionCheckpointAbstract BinaryContext ctx = new BinaryContext( BinaryUtils.cachingMetadataHandler(), cfg.getIgniteInstanceName(), + cfg.getClassLoader(), cfg.getBinaryConfiguration(), new NullLogger() ); diff --git a/modules/core/src/test/java/org/apache/ignite/testframework/junits/GridAbstractTest.java b/modules/core/src/test/java/org/apache/ignite/testframework/junits/GridAbstractTest.java index b17db911372..3e2329f56bb 100755 --- a/modules/core/src/test/java/org/apache/ignite/testframework/junits/GridAbstractTest.java +++ b/modules/core/src/test/java/org/apache/ignite/testframework/junits/GridAbstractTest.java @@ -2027,6 +2027,7 @@ public abstract class GridAbstractTest extends JUnitAssertAware { BinaryContext ctx = new BinaryContext( BinaryUtils.cachingMetadataHandler(), cfg.getIgniteInstanceName(), + cfg.getClassLoader(), cfg.getBinaryConfiguration(), new NullLogger() ); diff --git a/modules/core/src/test/java/org/apache/ignite/testframework/junits/GridTestBinaryMarshaller.java b/modules/core/src/test/java/org/apache/ignite/testframework/junits/GridTestBinaryMarshaller.java index a99de4a0243..21fef4d71c0 100644 --- a/modules/core/src/test/java/org/apache/ignite/testframework/junits/GridTestBinaryMarshaller.java +++ b/modules/core/src/test/java/org/apache/ignite/testframework/junits/GridTestBinaryMarshaller.java @@ -78,6 +78,7 @@ public class GridTestBinaryMarshaller { BinaryContext ctx = new BinaryContext( BinaryUtils.cachingMetadataHandler(), iCfg.getIgniteInstanceName(), + iCfg.getClassLoader(), iCfg.getBinaryConfiguration(), new NullLogger() ); diff --git a/modules/core/src/test/java/org/apache/ignite/testframework/junits/IgniteMock.java b/modules/core/src/test/java/org/apache/ignite/testframework/junits/IgniteMock.java index 7fd56fe3058..0a0de30dfcb 100644 --- a/modules/core/src/test/java/org/apache/ignite/testframework/junits/IgniteMock.java +++ b/modules/core/src/test/java/org/apache/ignite/testframework/junits/IgniteMock.java @@ -446,6 +446,7 @@ public class IgniteMock implements IgniteEx { ctx = new BinaryContext( BinaryUtils.cachingMetadataHandler(), configuration().getIgniteInstanceName(), + configuration().getClassLoader(), configuration().getBinaryConfiguration(), new NullLogger() ) { diff --git a/modules/core/src/test/java/org/apache/ignite/testframework/junits/IgniteTestResources.java b/modules/core/src/test/java/org/apache/ignite/testframework/junits/IgniteTestResources.java index a358858cbde..d4668472873 100644 --- a/modules/core/src/test/java/org/apache/ignite/testframework/junits/IgniteTestResources.java +++ b/modules/core/src/test/java/org/apache/ignite/testframework/junits/IgniteTestResources.java @@ -251,7 +251,7 @@ public class IgniteTestResources { marsh.setContext(new MarshallerContextTestImpl()); marsh.setBinaryContext( - new BinaryContext(BinaryUtils.cachingMetadataHandler(), null, null, new NullLogger()), + new BinaryContext(BinaryUtils.cachingMetadataHandler(), null, null, null, new NullLogger()), new IgniteConfiguration() );
