GG-9900 - Portable marshaller refactoring
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/d838a9db Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/d838a9db Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/d838a9db Branch: refs/heads/ignite-471 Commit: d838a9db947931c88fa4464053fdb80baa070c96 Parents: 6c4282a Author: Valentin Kulichenko <vkuliche...@gridgain.com> Authored: Wed Mar 11 18:08:53 2015 -0700 Committer: Valentin Kulichenko <vkuliche...@gridgain.com> Committed: Wed Mar 11 18:08:53 2015 -0700 ---------------------------------------------------------------------- .../processors/rest/TestMemcacheClient.java | 6 +- .../CacheRendezvousAffinityFunction.java | 15 ++-- .../cache/store/jdbc/CacheJdbcBlobStore.java | 5 +- .../internal/GridEventConsumeHandler.java | 14 +-- .../ignite/internal/GridJobExecuteRequest.java | 48 +++++------ .../ignite/internal/GridJobExecuteResponse.java | 36 ++++---- .../ignite/internal/GridJobSiblingsRequest.java | 12 +-- .../internal/GridJobSiblingsResponse.java | 11 +-- .../internal/GridMessageListenHandler.java | 14 +-- .../ignite/internal/GridTaskSessionRequest.java | 12 +-- .../GridClientOptimizedMarshaller.java | 14 +-- .../apache/ignite/internal/jdbc/JdbcUtils.java | 5 +- .../checkpoint/GridCheckpointManager.java | 7 +- .../managers/communication/GridIoManager.java | 7 +- .../managers/communication/GridIoMessage.java | 12 +-- .../communication/GridIoUserMessage.java | 24 +++--- .../deployment/GridDeploymentRequest.java | 12 +-- .../eventstorage/GridEventStorageManager.java | 3 +- .../eventstorage/GridEventStorageMessage.java | 48 +++++------ .../swapspace/GridSwapSpaceManager.java | 5 +- .../affinity/GridAffinityMessage.java | 11 +-- .../cache/CacheEntrySerializablePredicate.java | 8 +- .../cache/CacheInvokeDirectResult.java | 8 +- .../internal/processors/cache/CacheObject.java | 4 +- .../processors/cache/CacheObjectAdapter.java | 12 +-- .../cache/CacheObjectByteArrayImpl.java | 4 +- .../processors/cache/CacheObjectImpl.java | 6 +- .../processors/cache/GridCacheContext.java | 5 +- .../processors/cache/GridCacheEntryInfo.java | 18 ++-- .../processors/cache/GridCacheMapEntry.java | 34 ++++---- .../processors/cache/GridCacheMessage.java | 65 ++------------ .../processors/cache/GridCacheSwapManager.java | 56 ++++++------ .../processors/cache/GridCacheUtils.java | 3 +- .../processors/cache/KeyCacheObjectImpl.java | 6 +- .../distributed/GridDistributedBaseMessage.java | 16 ++-- .../GridDistributedLockResponse.java | 8 +- .../GridDistributedTxPrepareRequest.java | 16 ++-- .../GridDistributedTxPrepareResponse.java | 16 ++-- .../dht/GridDhtAffinityAssignmentResponse.java | 8 +- .../distributed/dht/GridDhtLockRequest.java | 8 +- .../dht/atomic/GridDhtAtomicUpdateRequest.java | 12 +-- .../dht/atomic/GridDhtAtomicUpdateResponse.java | 8 +- .../dht/atomic/GridNearAtomicUpdateRequest.java | 16 ++-- .../atomic/GridNearAtomicUpdateResponse.java | 8 +- .../GridDhtPartitionDemandMessage.java | 8 +- .../preloader/GridDhtPartitionSupplyPool.java | 3 +- .../preloader/GridDhtPartitionsFullMessage.java | 8 +- .../GridDhtPartitionsSingleMessage.java | 8 +- .../distributed/near/GridNearGetResponse.java | 8 +- .../near/GridNearTxFinishResponse.java | 8 +- .../cache/query/GridCacheQueryManager.java | 32 ++++--- .../cache/query/GridCacheQueryRequest.java | 32 +++---- .../cache/query/GridCacheQueryResponse.java | 16 ++-- .../continuous/CacheContinuousQueryHandler.java | 7 +- .../jdbc/GridCacheQueryJdbcMetadataTask.java | 4 +- .../query/jdbc/GridCacheQueryJdbcTask.java | 7 +- .../cache/transactions/IgniteTxEntry.java | 16 ++-- .../version/GridCacheRawVersionedEntry.java | 23 +++-- .../cacheobject/IgniteCacheObjectProcessor.java | 8 +- .../IgniteCacheObjectProcessorImpl.java | 14 +-- .../closure/GridClosureProcessor.java | 3 +- .../continuous/GridContinuousMessage.java | 12 +-- .../continuous/GridContinuousProcessor.java | 7 +- .../dataload/GridDataLoadRequest.java | 24 +++--- .../dataload/GridDataLoadResponse.java | 12 +-- .../dataload/GridDataLoaderProcessor.java | 3 +- .../dataload/IgniteDataLoaderImpl.java | 7 +- .../processors/igfs/IgfsAckMessage.java | 8 +- .../processors/igfs/IgfsDeleteMessage.java | 8 +- .../internal/processors/job/GridJobWorker.java | 5 +- .../offheap/GridOffHeapProcessor.java | 6 +- .../processors/query/GridQueryProcessor.java | 6 +- .../handlers/task/GridTaskCommandHandler.java | 3 +- .../handlers/task/GridTaskResultRequest.java | 12 +-- .../handlers/task/GridTaskResultResponse.java | 12 +-- .../rest/protocols/tcp/GridTcpRestParser.java | 2 +- .../service/GridServiceProcessor.java | 3 +- .../streamer/GridStreamerExecutionRequest.java | 12 +-- .../streamer/GridStreamerResponse.java | 12 +-- .../processors/streamer/IgniteStreamerImpl.java | 5 +- .../ignite/internal/util/GridByteArrayList.java | 2 +- .../ignite/internal/util/IgniteUtils.java | 54 ++++++++++++ .../util/io/GridByteBufferInputStream.java | 91 ++++++++++++++++++++ .../ignite/internal/util/io/GridDataInput.java | 3 +- .../internal/util/io/GridUnsafeDataInput.java | 5 -- .../ignite/marshaller/AbstractMarshaller.java | 13 +-- .../apache/ignite/marshaller/Marshaller.java | 14 +-- .../optimized/OptimizedMarshaller.java | 12 +-- .../spi/discovery/tcp/TcpDiscoverySpi.java | 5 +- .../TcpDiscoveryMulticastIpFinder.java | 25 ++++-- .../spi/swapspace/file/FileSwapSpaceSpi.java | 2 +- .../java/org/apache/ignite/GridTestIoUtils.java | 3 +- .../internal/ClusterNodeMetricsSelfTest.java | 3 +- .../cache/GridCacheEntryMemorySizeSelfTest.java | 6 +- .../cache/GridCacheVersionSelfTest.java | 5 +- .../internal/util/nio/GridNioSelfTest.java | 10 +-- .../marshaller/GridMarshallerAbstractTest.java | 47 +++++----- .../GridMarshallerPerformanceTest.java | 2 +- .../OptimizedMarshallerEnumSelfTest.java | 4 +- .../optimized/OptimizedMarshallerSelfTest.java | 17 ++-- .../optimized/OptimizedMarshallerTest.java | 13 ++- .../OptimizedObjectStreamSelfTest.java | 6 +- .../GridSessionCheckpointAbstractSelfTest.java | 7 +- .../GridSwapSpaceSpiAbstractSelfTest.java | 5 +- .../communication/HadoopMarshallerFilter.java | 5 +- .../HadoopConcurrentHashMultimapSelftest.java | 4 +- .../collections/HadoopSkipListSelfTest.java | 2 +- .../testsuites/IgniteHadoopTestSuite.java | 4 +- .../hibernate/CacheHibernateBlobStore.java | 5 +- .../processors/query/h2/IgniteH2Indexing.java | 9 +- .../query/h2/opt/GridLuceneIndex.java | 25 ++++-- .../cache/GridCacheOffHeapAndSwapSelfTest.java | 4 +- 112 files changed, 802 insertions(+), 640 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/d838a9db/modules/clients/src/test/java/org/apache/ignite/internal/processors/rest/TestMemcacheClient.java ---------------------------------------------------------------------- diff --git a/modules/clients/src/test/java/org/apache/ignite/internal/processors/rest/TestMemcacheClient.java b/modules/clients/src/test/java/org/apache/ignite/internal/processors/rest/TestMemcacheClient.java index 5f4ae8f..485e759 100644 --- a/modules/clients/src/test/java/org/apache/ignite/internal/processors/rest/TestMemcacheClient.java +++ b/modules/clients/src/test/java/org/apache/ignite/internal/processors/rest/TestMemcacheClient.java @@ -18,7 +18,6 @@ package org.apache.ignite.internal.processors.rest; import org.apache.ignite.*; -import org.apache.ignite.internal.util.*; import org.apache.ignite.internal.util.typedef.internal.*; import org.apache.ignite.logger.java.*; import org.apache.ignite.marshaller.*; @@ -27,6 +26,7 @@ import org.jetbrains.annotations.*; import java.io.*; import java.net.*; +import java.nio.*; import java.util.*; import java.util.concurrent.*; import java.util.concurrent.atomic.*; @@ -679,7 +679,7 @@ final class TestMemcacheClient { flags |= BYTE_ARR_FLAG; } else { - bytes = jdkMarshaller.marshal(obj); + bytes = U.toArray(jdkMarshaller.marshal(obj)); flags |= SERIALIZED_FLAG; } @@ -698,7 +698,7 @@ final class TestMemcacheClient { assert flags >= 0; if ((flags & SERIALIZED_FLAG) != 0) - return jdkMarshaller.unmarshal(bytes, getClass().getClassLoader()); + return jdkMarshaller.unmarshal(ByteBuffer.wrap(bytes), getClass().getClassLoader()); int masked = flags & 0xff00; http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/d838a9db/modules/core/src/main/java/org/apache/ignite/cache/affinity/rendezvous/CacheRendezvousAffinityFunction.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/cache/affinity/rendezvous/CacheRendezvousAffinityFunction.java b/modules/core/src/main/java/org/apache/ignite/cache/affinity/rendezvous/CacheRendezvousAffinityFunction.java index ac0ac5e..1e257c8 100644 --- a/modules/core/src/main/java/org/apache/ignite/cache/affinity/rendezvous/CacheRendezvousAffinityFunction.java +++ b/modules/core/src/main/java/org/apache/ignite/cache/affinity/rendezvous/CacheRendezvousAffinityFunction.java @@ -28,6 +28,7 @@ import org.apache.ignite.resources.*; import org.jetbrains.annotations.*; import java.io.*; +import java.nio.*; import java.security.*; import java.util.*; @@ -289,16 +290,20 @@ public class CacheRendezvousAffinityFunction implements CacheAffinityFunction, E Object nodeHash = hashIdRslvr.resolve(node); try { - ByteArrayOutputStream out = new ByteArrayOutputStream(); + ByteBuffer nodeHashBytes = ignite.configuration().getMarshaller().marshal(nodeHash); - byte[] nodeHashBytes = ignite.configuration().getMarshaller().marshal(nodeHash); + int len = 4 + nodeHashBytes.remaining(); - out.write(U.intToBytes(part), 0, 4); // Avoid IOException. - out.write(nodeHashBytes, 0, nodeHashBytes.length); // Avoid IOException. + ByteBuffer buf = ByteBuffer.allocate(len); + + buf.putInt(part); + buf.put(nodeHashBytes); + + assert buf.array().length == len; d.reset(); - byte[] bytes = d.digest(out.toByteArray()); + byte[] bytes = d.digest(buf.array()); long hash = (bytes[0] & 0xFFL) http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/d838a9db/modules/core/src/main/java/org/apache/ignite/cache/store/jdbc/CacheJdbcBlobStore.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/cache/store/jdbc/CacheJdbcBlobStore.java b/modules/core/src/main/java/org/apache/ignite/cache/store/jdbc/CacheJdbcBlobStore.java index 08ad789..76179d4 100644 --- a/modules/core/src/main/java/org/apache/ignite/cache/store/jdbc/CacheJdbcBlobStore.java +++ b/modules/core/src/main/java/org/apache/ignite/cache/store/jdbc/CacheJdbcBlobStore.java @@ -31,6 +31,7 @@ import org.jetbrains.annotations.*; import javax.cache.*; import javax.cache.integration.*; import javax.sql.*; +import java.nio.*; import java.sql.*; import java.util.*; import java.util.concurrent.*; @@ -560,7 +561,7 @@ public class CacheJdbcBlobStore<K, V> extends CacheStoreAdapter<K, V> { * @throws IgniteCheckedException If failed to convert. */ protected byte[] toBytes(Object obj) throws IgniteCheckedException { - return ignite.configuration().getMarshaller().marshal(obj); + return U.toArray(ignite.configuration().getMarshaller().marshal(obj)); } /** @@ -575,7 +576,7 @@ public class CacheJdbcBlobStore<K, V> extends CacheStoreAdapter<K, V> { if (bytes == null || bytes.length == 0) return null; - return ignite.configuration().getMarshaller().unmarshal(bytes, getClass().getClassLoader()); + return ignite.configuration().getMarshaller().unmarshal(ByteBuffer.wrap(bytes), getClass().getClassLoader()); } /** http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/d838a9db/modules/core/src/main/java/org/apache/ignite/internal/GridEventConsumeHandler.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/GridEventConsumeHandler.java b/modules/core/src/main/java/org/apache/ignite/internal/GridEventConsumeHandler.java index d746e5e..caccb6f 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/GridEventConsumeHandler.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/GridEventConsumeHandler.java @@ -31,6 +31,7 @@ import org.apache.ignite.marshaller.*; import org.jetbrains.annotations.*; import java.io.*; +import java.nio.*; import java.util.*; import static org.apache.ignite.events.EventType.*; @@ -57,7 +58,7 @@ class GridEventConsumeHandler implements GridContinuousHandler { private IgnitePredicate<Event> filter; /** Serialized filter. */ - private byte[] filterBytes; + private ByteBuffer filterBytes; /** Deployment class name. */ private String clsName; @@ -298,7 +299,7 @@ class GridEventConsumeHandler implements GridContinuousHandler { out.writeBoolean(b); if (b) { - U.writeByteArray(out, filterBytes); + U.writeByteBuffer(out, filterBytes); U.writeString(out, clsName); out.writeObject(depInfo); } @@ -309,11 +310,12 @@ class GridEventConsumeHandler implements GridContinuousHandler { } /** {@inheritDoc} */ + @SuppressWarnings("unchecked") @Override public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException { boolean b = in.readBoolean(); if (b) { - filterBytes = U.readByteArray(in); + filterBytes = U.readByteBuffer(in); clsName = U.readString(in); depInfo = (GridDeploymentInfo)in.readObject(); } @@ -334,7 +336,7 @@ class GridEventConsumeHandler implements GridContinuousHandler { private Event evt; /** Serialized event. */ - private byte[] bytes; + private ByteBuffer bytes; /** Cache name (for cache events only). */ private String cacheName; @@ -401,7 +403,7 @@ class GridEventConsumeHandler implements GridContinuousHandler { out.writeBoolean(b); if (b) { - U.writeByteArray(out, bytes); + U.writeByteBuffer(out, bytes); U.writeString(out, cacheName); out.writeObject(depInfo); } @@ -414,7 +416,7 @@ class GridEventConsumeHandler implements GridContinuousHandler { boolean b = in.readBoolean(); if (b) { - bytes = U.readByteArray(in); + bytes = U.readByteBuffer(in); cacheName = U.readString(in); depInfo = (GridDeploymentInfo)in.readObject(); } http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/d838a9db/modules/core/src/main/java/org/apache/ignite/internal/GridJobExecuteRequest.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/GridJobExecuteRequest.java b/modules/core/src/main/java/org/apache/ignite/internal/GridJobExecuteRequest.java index f5b8824..18f942b 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/GridJobExecuteRequest.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/GridJobExecuteRequest.java @@ -47,7 +47,7 @@ public class GridJobExecuteRequest implements Message, GridTaskMessage { /** */ @GridToStringExclude - private byte[] jobBytes; + private ByteBuffer jobBytes; /** */ @GridToStringExclude @@ -76,7 +76,7 @@ public class GridJobExecuteRequest implements Message, GridTaskMessage { /** */ @GridToStringExclude - private byte[] sesAttrsBytes; + private ByteBuffer sesAttrsBytes; /** */ @GridToStringExclude @@ -85,7 +85,7 @@ public class GridJobExecuteRequest implements Message, GridTaskMessage { /** */ @GridToStringExclude - private byte[] jobAttrsBytes; + private ByteBuffer jobAttrsBytes; /** */ @GridToStringExclude @@ -100,7 +100,7 @@ public class GridJobExecuteRequest implements Message, GridTaskMessage { private Collection<ComputeJobSibling> siblings; /** */ - private byte[] siblingsBytes; + private ByteBuffer siblingsBytes; /** Transient since needs to hold local creation time. */ @GridDirectTransient @@ -168,16 +168,16 @@ public class GridJobExecuteRequest implements Message, GridTaskMessage { String taskName, String userVer, String taskClsName, - byte[] jobBytes, + ByteBuffer jobBytes, ComputeJob job, long startTaskTime, long timeout, @Nullable Collection<UUID> top, - byte[] siblingsBytes, + ByteBuffer siblingsBytes, Collection<ComputeJobSibling> siblings, - byte[] sesAttrsBytes, + ByteBuffer sesAttrsBytes, Map<Object, Object> sesAttrs, - byte[] jobAttrsBytes, + ByteBuffer jobAttrsBytes, Map<? extends Serializable, ? extends Serializable> jobAttrs, String cpSpi, IgniteUuid clsLdrId, @@ -264,7 +264,7 @@ public class GridJobExecuteRequest implements Message, GridTaskMessage { /** * @return Serialized job bytes. */ - public byte[] getJobBytes() { + public ByteBuffer getJobBytes() { return jobBytes; } @@ -301,7 +301,7 @@ public class GridJobExecuteRequest implements Message, GridTaskMessage { /** * @return Serialized collection of split siblings. */ - public byte[] getSiblingsBytes() { + public ByteBuffer getSiblingsBytes() { return siblingsBytes; } @@ -315,7 +315,7 @@ public class GridJobExecuteRequest implements Message, GridTaskMessage { /** * @return Session attributes. */ - public byte[] getSessionAttributesBytes() { + public ByteBuffer getSessionAttributesBytes() { return sesAttrsBytes; } @@ -329,7 +329,7 @@ public class GridJobExecuteRequest implements Message, GridTaskMessage { /** * @return Job attributes. */ - public byte[] getJobAttributesBytes() { + public ByteBuffer getJobAttributesBytes() { return jobAttrsBytes; } @@ -460,14 +460,14 @@ public class GridJobExecuteRequest implements Message, GridTaskMessage { writer.incrementState(); case 6: - if (!writer.writeByteArray("jobAttrsBytes", jobAttrsBytes)) - return false; +// if (!writer.writeByteArray("jobAttrsBytes", jobAttrsBytes)) +// return false; writer.incrementState(); case 7: - if (!writer.writeByteArray("jobBytes", jobBytes)) - return false; +// if (!writer.writeByteArray("jobBytes", jobBytes)) +// return false; writer.incrementState(); @@ -484,8 +484,8 @@ public class GridJobExecuteRequest implements Message, GridTaskMessage { writer.incrementState(); case 10: - if (!writer.writeByteArray("sesAttrsBytes", sesAttrsBytes)) - return false; +// if (!writer.writeByteArray("sesAttrsBytes", sesAttrsBytes)) +// return false; writer.incrementState(); @@ -502,8 +502,8 @@ public class GridJobExecuteRequest implements Message, GridTaskMessage { writer.incrementState(); case 13: - if (!writer.writeByteArray("siblingsBytes", siblingsBytes)) - return false; +// if (!writer.writeByteArray("siblingsBytes", siblingsBytes)) +// return false; writer.incrementState(); @@ -615,7 +615,7 @@ public class GridJobExecuteRequest implements Message, GridTaskMessage { reader.incrementState(); case 6: - jobAttrsBytes = reader.readByteArray("jobAttrsBytes"); +// jobAttrsBytes = reader.readByteArray("jobAttrsBytes"); if (!reader.isLastRead()) return false; @@ -623,7 +623,7 @@ public class GridJobExecuteRequest implements Message, GridTaskMessage { reader.incrementState(); case 7: - jobBytes = reader.readByteArray("jobBytes"); +// jobBytes = reader.readByteArray("jobBytes"); if (!reader.isLastRead()) return false; @@ -647,7 +647,7 @@ public class GridJobExecuteRequest implements Message, GridTaskMessage { reader.incrementState(); case 10: - sesAttrsBytes = reader.readByteArray("sesAttrsBytes"); +// sesAttrsBytes = reader.readByteArray("sesAttrsBytes"); if (!reader.isLastRead()) return false; @@ -671,7 +671,7 @@ public class GridJobExecuteRequest implements Message, GridTaskMessage { reader.incrementState(); case 13: - siblingsBytes = reader.readByteArray("siblingsBytes"); +// siblingsBytes = reader.readByteArray("siblingsBytes"); if (!reader.isLastRead()) return false; http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/d838a9db/modules/core/src/main/java/org/apache/ignite/internal/GridJobExecuteResponse.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/GridJobExecuteResponse.java b/modules/core/src/main/java/org/apache/ignite/internal/GridJobExecuteResponse.java index 45c916a..daa602d 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/GridJobExecuteResponse.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/GridJobExecuteResponse.java @@ -45,21 +45,21 @@ public class GridJobExecuteResponse implements Message, GridTaskMessage { private IgniteUuid jobId; /** */ - private byte[] gridExBytes; + private ByteBuffer gridExBytes; /** */ @GridDirectTransient private IgniteException gridEx; /** */ - private byte[] resBytes; + private ByteBuffer resBytes; /** */ @GridDirectTransient private Object res; /** */ - private byte[] jobAttrsBytes; + private ByteBuffer jobAttrsBytes; /** */ @GridDirectTransient @@ -96,11 +96,11 @@ public class GridJobExecuteResponse implements Message, GridTaskMessage { public GridJobExecuteResponse(UUID nodeId, IgniteUuid sesId, IgniteUuid jobId, - byte[] gridExBytes, + ByteBuffer gridExBytes, IgniteException gridEx, - byte[] resBytes, + ByteBuffer resBytes, Object res, - byte[] jobAttrsBytes, + ByteBuffer jobAttrsBytes, Map<Object, Object> jobAttrs, boolean isCancelled) { @@ -137,7 +137,7 @@ public class GridJobExecuteResponse implements Message, GridTaskMessage { /** * @return Serialized job result. */ - @Nullable public byte[] getJobResultBytes() { + @Nullable public ByteBuffer getJobResultBytes() { return resBytes; } @@ -151,7 +151,7 @@ public class GridJobExecuteResponse implements Message, GridTaskMessage { /** * @return Serialized job exception. */ - @Nullable public byte[] getExceptionBytes() { + @Nullable public ByteBuffer getExceptionBytes() { return gridExBytes; } @@ -165,7 +165,7 @@ public class GridJobExecuteResponse implements Message, GridTaskMessage { /** * @return Serialized job attributes. */ - @Nullable public byte[] getJobAttributesBytes() { + @Nullable public ByteBuffer getJobAttributesBytes() { return jobAttrsBytes; } @@ -217,8 +217,8 @@ public class GridJobExecuteResponse implements Message, GridTaskMessage { switch (writer.state()) { case 0: - if (!writer.writeByteArray("gridExBytes", gridExBytes)) - return false; +// if (!writer.writeByteArray("gridExBytes", gridExBytes)) +// return false; writer.incrementState(); @@ -229,8 +229,8 @@ public class GridJobExecuteResponse implements Message, GridTaskMessage { writer.incrementState(); case 2: - if (!writer.writeByteArray("jobAttrsBytes", jobAttrsBytes)) - return false; +// if (!writer.writeByteArray("jobAttrsBytes", jobAttrsBytes)) +// return false; writer.incrementState(); @@ -247,8 +247,8 @@ public class GridJobExecuteResponse implements Message, GridTaskMessage { writer.incrementState(); case 5: - if (!writer.writeByteArray("resBytes", resBytes)) - return false; +// if (!writer.writeByteArray("resBytes", resBytes)) +// return false; writer.incrementState(); @@ -272,7 +272,7 @@ public class GridJobExecuteResponse implements Message, GridTaskMessage { switch (reader.state()) { case 0: - gridExBytes = reader.readByteArray("gridExBytes"); +// gridExBytes = reader.readByteArray("gridExBytes"); if (!reader.isLastRead()) return false; @@ -288,7 +288,7 @@ public class GridJobExecuteResponse implements Message, GridTaskMessage { reader.incrementState(); case 2: - jobAttrsBytes = reader.readByteArray("jobAttrsBytes"); +// jobAttrsBytes = reader.readByteArray("jobAttrsBytes"); if (!reader.isLastRead()) return false; @@ -312,7 +312,7 @@ public class GridJobExecuteResponse implements Message, GridTaskMessage { reader.incrementState(); case 5: - resBytes = reader.readByteArray("resBytes"); +// resBytes = reader.readByteArray("resBytes"); if (!reader.isLastRead()) return false; http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/d838a9db/modules/core/src/main/java/org/apache/ignite/internal/GridJobSiblingsRequest.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/GridJobSiblingsRequest.java b/modules/core/src/main/java/org/apache/ignite/internal/GridJobSiblingsRequest.java index 36fc1dd..cb90583 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/GridJobSiblingsRequest.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/GridJobSiblingsRequest.java @@ -39,7 +39,7 @@ public class GridJobSiblingsRequest implements Message { private Object topic; /** */ - private byte[] topicBytes; + private ByteBuffer topicBytes; /** * Empty constructor required by {@link Externalizable}. @@ -53,7 +53,7 @@ public class GridJobSiblingsRequest implements Message { * @param topic Topic. * @param topicBytes Serialized topic. */ - public GridJobSiblingsRequest(IgniteUuid sesId, Object topic, byte[] topicBytes) { + public GridJobSiblingsRequest(IgniteUuid sesId, Object topic, ByteBuffer topicBytes) { assert sesId != null; assert topic != null || topicBytes != null; @@ -79,7 +79,7 @@ public class GridJobSiblingsRequest implements Message { /** * @return Serialized topic. */ - public byte[] topicBytes() { + public ByteBuffer topicBytes() { return topicBytes; } @@ -102,8 +102,8 @@ public class GridJobSiblingsRequest implements Message { writer.incrementState(); case 1: - if (!writer.writeByteArray("topicBytes", topicBytes)) - return false; +// if (!writer.writeByteArray("topicBytes", topicBytes)) +// return false; writer.incrementState(); @@ -129,7 +129,7 @@ public class GridJobSiblingsRequest implements Message { reader.incrementState(); case 1: - topicBytes = reader.readByteArray("topicBytes"); +// topicBytes = reader.readByteArray("topicBytes"); if (!reader.isLastRead()) return false; http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/d838a9db/modules/core/src/main/java/org/apache/ignite/internal/GridJobSiblingsResponse.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/GridJobSiblingsResponse.java b/modules/core/src/main/java/org/apache/ignite/internal/GridJobSiblingsResponse.java index c558f74..98de00e 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/GridJobSiblingsResponse.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/GridJobSiblingsResponse.java @@ -40,7 +40,7 @@ public class GridJobSiblingsResponse implements Message { private Collection<ComputeJobSibling> siblings; /** */ - private byte[] siblingsBytes; + private ByteBuffer siblingsBytes; /** * Empty constructor required by {@link Externalizable}. @@ -53,7 +53,8 @@ public class GridJobSiblingsResponse implements Message { * @param siblings Siblings. * @param siblingsBytes Serialized siblings. */ - public GridJobSiblingsResponse(@Nullable Collection<ComputeJobSibling> siblings, @Nullable byte[] siblingsBytes) { + public GridJobSiblingsResponse(@Nullable Collection<ComputeJobSibling> siblings, + @Nullable ByteBuffer siblingsBytes) { this.siblings = siblings; this.siblingsBytes = siblingsBytes; } @@ -89,8 +90,8 @@ public class GridJobSiblingsResponse implements Message { switch (writer.state()) { case 0: - if (!writer.writeByteArray("siblingsBytes", siblingsBytes)) - return false; +// if (!writer.writeByteArray("siblingsBytes", siblingsBytes)) +// return false; writer.incrementState(); @@ -108,7 +109,7 @@ public class GridJobSiblingsResponse implements Message { switch (reader.state()) { case 0: - siblingsBytes = reader.readByteArray("siblingsBytes"); +// siblingsBytes = reader.readByteArray("siblingsBytes"); if (!reader.isLastRead()) return false; http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/d838a9db/modules/core/src/main/java/org/apache/ignite/internal/GridMessageListenHandler.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/GridMessageListenHandler.java b/modules/core/src/main/java/org/apache/ignite/internal/GridMessageListenHandler.java index 6412b63..07f1766 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/GridMessageListenHandler.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/GridMessageListenHandler.java @@ -26,6 +26,7 @@ import org.apache.ignite.lang.*; import org.jetbrains.annotations.*; import java.io.*; +import java.nio.*; import java.util.*; /** @@ -42,10 +43,10 @@ public class GridMessageListenHandler implements GridContinuousHandler { private IgniteBiPredicate<UUID, Object> pred; /** */ - private byte[] topicBytes; + private ByteBuffer topicBytes; /** */ - private byte[] predBytes; + private ByteBuffer predBytes; /** */ private String clsName; @@ -176,8 +177,8 @@ public class GridMessageListenHandler implements GridContinuousHandler { out.writeBoolean(depEnabled); if (depEnabled) { - U.writeByteArray(out, topicBytes); - U.writeByteArray(out, predBytes); + U.writeByteBuffer(out, topicBytes); + U.writeByteBuffer(out, predBytes); U.writeString(out, clsName); out.writeObject(depInfo); } @@ -188,12 +189,13 @@ public class GridMessageListenHandler implements GridContinuousHandler { } /** {@inheritDoc} */ + @SuppressWarnings("unchecked") @Override public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException { depEnabled = in.readBoolean(); if (depEnabled) { - topicBytes = U.readByteArray(in); - predBytes = U.readByteArray(in); + topicBytes = U.readByteBuffer(in); + predBytes = U.readByteBuffer(in); clsName = U.readString(in); depInfo = (GridDeploymentInfoBean)in.readObject(); } http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/d838a9db/modules/core/src/main/java/org/apache/ignite/internal/GridTaskSessionRequest.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/GridTaskSessionRequest.java b/modules/core/src/main/java/org/apache/ignite/internal/GridTaskSessionRequest.java index 55546be..c5ea60e 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/GridTaskSessionRequest.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/GridTaskSessionRequest.java @@ -39,7 +39,7 @@ public class GridTaskSessionRequest implements Message, GridTaskMessage { private IgniteUuid jobId; /** Changed attributes bytes. */ - private byte[] attrsBytes; + private ByteBuffer attrsBytes; /** Changed attributes. */ @GridDirectTransient @@ -58,7 +58,7 @@ public class GridTaskSessionRequest implements Message, GridTaskMessage { * @param attrsBytes Serialized attributes. * @param attrs Attributes. */ - public GridTaskSessionRequest(IgniteUuid sesId, IgniteUuid jobId, byte[] attrsBytes, Map<?, ?> attrs) { + public GridTaskSessionRequest(IgniteUuid sesId, IgniteUuid jobId, ByteBuffer attrsBytes, Map<?, ?> attrs) { assert sesId != null; assert attrsBytes != null; assert attrs != null; @@ -72,7 +72,7 @@ public class GridTaskSessionRequest implements Message, GridTaskMessage { /** * @return Changed attributes (serialized). */ - public byte[] getAttributesBytes() { + public ByteBuffer getAttributesBytes() { return attrsBytes; } @@ -110,8 +110,8 @@ public class GridTaskSessionRequest implements Message, GridTaskMessage { switch (writer.state()) { case 0: - if (!writer.writeByteArray("attrsBytes", attrsBytes)) - return false; +// if (!writer.writeByteArray("attrsBytes", attrsBytes)) +// return false; writer.incrementState(); @@ -141,7 +141,7 @@ public class GridTaskSessionRequest implements Message, GridTaskMessage { switch (reader.state()) { case 0: - attrsBytes = reader.readByteArray("attrsBytes"); +// attrsBytes = reader.readByteArray("attrsBytes"); if (!reader.isLastRead()) return false; http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/d838a9db/modules/core/src/main/java/org/apache/ignite/internal/client/marshaller/optimized/GridClientOptimizedMarshaller.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/client/marshaller/optimized/GridClientOptimizedMarshaller.java b/modules/core/src/main/java/org/apache/ignite/internal/client/marshaller/optimized/GridClientOptimizedMarshaller.java index 254962a..00f96b8 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/client/marshaller/optimized/GridClientOptimizedMarshaller.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/client/marshaller/optimized/GridClientOptimizedMarshaller.java @@ -70,17 +70,7 @@ public class GridClientOptimizedMarshaller implements GridClientMarshaller { throw new IOException("Message serialization of given type is not supported: " + obj.getClass().getName()); - byte[] bytes = opMarsh.marshal(obj); - - ByteBuffer buf = ByteBuffer.allocate(off + bytes.length); - - buf.position(off); - - buf.put(bytes); - - buf.flip(); - - return buf; + return opMarsh.marshal(obj); } catch (IgniteCheckedException e) { throw new IOException(e); @@ -90,7 +80,7 @@ public class GridClientOptimizedMarshaller implements GridClientMarshaller { /** {@inheritDoc} */ @Override public <T> T unmarshal(byte[] bytes) throws IOException { try { - return opMarsh.unmarshal(bytes, null); + return opMarsh.unmarshal(ByteBuffer.wrap(bytes), null); } catch (IgniteCheckedException e) { throw new IOException(e); http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/d838a9db/modules/core/src/main/java/org/apache/ignite/internal/jdbc/JdbcUtils.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/jdbc/JdbcUtils.java b/modules/core/src/main/java/org/apache/ignite/internal/jdbc/JdbcUtils.java index 19575b2..b47942e 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/jdbc/JdbcUtils.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/jdbc/JdbcUtils.java @@ -22,6 +22,7 @@ import org.apache.ignite.internal.util.typedef.internal.*; import org.apache.ignite.marshaller.*; import org.apache.ignite.marshaller.jdk.*; +import java.nio.*; import java.sql.*; import java.util.*; import java.util.Date; @@ -46,7 +47,7 @@ class JdbcUtils { assert args != null; try { - return MARSHALLER.marshal(args); + return U.toArray(MARSHALLER.marshal(args)); } catch (IgniteCheckedException e) { throw new SQLException("Failed to unmarshal result.", e); @@ -75,7 +76,7 @@ class JdbcUtils { assert bytes != null; try { - return MARSHALLER.unmarshal(bytes, null); + return MARSHALLER.unmarshal(ByteBuffer.wrap(bytes), null); } catch (IgniteCheckedException e) { throw new SQLException("Failed to unmarshal result.", e); http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/d838a9db/modules/core/src/main/java/org/apache/ignite/internal/managers/checkpoint/GridCheckpointManager.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/managers/checkpoint/GridCheckpointManager.java b/modules/core/src/main/java/org/apache/ignite/internal/managers/checkpoint/GridCheckpointManager.java index d811a51..2cd9306 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/managers/checkpoint/GridCheckpointManager.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/managers/checkpoint/GridCheckpointManager.java @@ -36,6 +36,7 @@ import org.jdk8.backport.*; import org.jetbrains.annotations.*; import java.io.*; +import java.nio.*; import java.util.*; import java.util.concurrent.*; @@ -137,7 +138,7 @@ public class GridCheckpointManager extends GridManagerAdapter<CheckpointSpi> { try { switch (scope) { case GLOBAL_SCOPE: { - byte[] data = state == null ? null : marsh.marshal(state); + byte[] data = state == null ? null : U.toArray(marsh.marshal(state)); saved = getSpi(ses.getCheckpointSpi()).saveCheckpoint(key, data, timeout, override); @@ -168,7 +169,7 @@ public class GridCheckpointManager extends GridManagerAdapter<CheckpointSpi> { timeout = ses.getEndTime() - now; // Save it first to avoid getting null value on another node. - byte[] data = state == null ? null : marsh.marshal(state); + byte[] data = state == null ? null : U.toArray(marsh.marshal(state)); Set<String> keys = keyMap.get(ses.getId()); @@ -293,7 +294,7 @@ public class GridCheckpointManager extends GridManagerAdapter<CheckpointSpi> { // Always deserialize with task/session class loader. if (data != null) - state = marsh.unmarshal(data, ses.getClassLoader()); + state = marsh.unmarshal(ByteBuffer.wrap(data), ses.getClassLoader()); record(EVT_CHECKPOINT_LOADED, key); http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/d838a9db/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoManager.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoManager.java b/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoManager.java index 392aa39..2e97cf1 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoManager.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoManager.java @@ -39,6 +39,7 @@ import org.jdk8.backport.*; import org.jetbrains.annotations.*; import java.io.*; +import java.nio.*; import java.util.*; import java.util.Map.*; import java.util.concurrent.*; @@ -1120,8 +1121,8 @@ public class GridIoManager extends GridManagerAdapter<CommunicationSpi<Serializa @Nullable Object topic, boolean ordered, long timeout) throws IgniteCheckedException { boolean loc = nodes.size() == 1 && F.first(nodes).id().equals(locNodeId); - byte[] serMsg = null; - byte[] serTopic = null; + ByteBuffer serMsg = null; + ByteBuffer serTopic = null; if (!loc) { serMsg = marsh.marshal(msg); @@ -1667,7 +1668,7 @@ public class GridIoManager extends GridManagerAdapter<CommunicationSpi<Serializa assert msgBody != null || ioMsg.bodyBytes() != null; try { - byte[] msgTopicBytes = ioMsg.topicBytes(); + ByteBuffer msgTopicBytes = ioMsg.topicBytes(); Object msgTopic = ioMsg.topic(); http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/d838a9db/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoMessage.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoMessage.java b/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoMessage.java index 5c1122b..a0a411b 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoMessage.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoMessage.java @@ -41,7 +41,7 @@ public class GridIoMessage implements Message { private Object topic; /** Topic bytes. */ - private byte[] topicBytes; + private ByteBuffer topicBytes; /** Topic ordinal. */ private int topicOrd = -1; @@ -122,14 +122,14 @@ public class GridIoMessage implements Message { /** * @return Topic bytes. */ - byte[] topicBytes() { + ByteBuffer topicBytes() { return topicBytes; } /** * @param topicBytes Topic bytes. */ - void topicBytes(byte[] topicBytes) { + void topicBytes(ByteBuffer topicBytes) { this.topicBytes = topicBytes; } @@ -221,8 +221,8 @@ public class GridIoMessage implements Message { writer.incrementState(); case 5: - if (!writer.writeByteArray("topicBytes", topicBytes)) - return false; +// if (!writer.writeByteArray("topicBytes", topicBytes)) +// return false; writer.incrementState(); @@ -290,7 +290,7 @@ public class GridIoMessage implements Message { reader.incrementState(); case 5: - topicBytes = reader.readByteArray("topicBytes"); +// topicBytes = reader.readByteArray("topicBytes"); if (!reader.isLastRead()) return false; http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/d838a9db/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoUserMessage.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoUserMessage.java b/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoUserMessage.java index 05b9181..3ad4db1 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoUserMessage.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoUserMessage.java @@ -42,7 +42,7 @@ public class GridIoUserMessage implements Message { private Object body; /** Serialized message body. */ - private byte[] bodyBytes; + private ByteBuffer bodyBytes; /** Class loader ID. */ private IgniteUuid clsLdrId; @@ -52,7 +52,7 @@ public class GridIoUserMessage implements Message { private Object topic; /** Serialized message topic. */ - private byte[] topicBytes; + private ByteBuffer topicBytes; /** Deployment mode. */ private DeploymentMode depMode; @@ -85,10 +85,10 @@ public class GridIoUserMessage implements Message { */ GridIoUserMessage( Object body, - @Nullable byte[] bodyBytes, + @Nullable ByteBuffer bodyBytes, @Nullable String depClsName, @Nullable Object topic, - @Nullable byte[] topicBytes, + @Nullable ByteBuffer topicBytes, @Nullable IgniteUuid clsLdrId, @Nullable DeploymentMode depMode, @Nullable String userVer, @@ -114,7 +114,7 @@ public class GridIoUserMessage implements Message { /** * @return Serialized message body. */ - @Nullable public byte[] bodyBytes() { + @Nullable public ByteBuffer bodyBytes() { return bodyBytes; } @@ -156,7 +156,7 @@ public class GridIoUserMessage implements Message { /** * @return Serialized message topic. */ - @Nullable public byte[] topicBytes() { + @Nullable public ByteBuffer topicBytes() { return topicBytes; } @@ -215,8 +215,8 @@ public class GridIoUserMessage implements Message { switch (writer.state()) { case 0: - if (!writer.writeByteArray("bodyBytes", bodyBytes)) - return false; +// if (!writer.writeByteArray("bodyBytes", bodyBytes)) +// return false; writer.incrementState(); @@ -245,8 +245,8 @@ public class GridIoUserMessage implements Message { writer.incrementState(); case 5: - if (!writer.writeByteArray("topicBytes", topicBytes)) - return false; +// if (!writer.writeByteArray("topicBytes", topicBytes)) +// return false; writer.incrementState(); @@ -270,7 +270,7 @@ public class GridIoUserMessage implements Message { switch (reader.state()) { case 0: - bodyBytes = reader.readByteArray("bodyBytes"); +// bodyBytes = reader.readByteArray("bodyBytes"); if (!reader.isLastRead()) return false; @@ -314,7 +314,7 @@ public class GridIoUserMessage implements Message { reader.incrementState(); case 5: - topicBytes = reader.readByteArray("topicBytes"); +// topicBytes = reader.readByteArray("topicBytes"); if (!reader.isLastRead()) return false; http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/d838a9db/modules/core/src/main/java/org/apache/ignite/internal/managers/deployment/GridDeploymentRequest.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/managers/deployment/GridDeploymentRequest.java b/modules/core/src/main/java/org/apache/ignite/internal/managers/deployment/GridDeploymentRequest.java index a6d80bb..1db8401 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/managers/deployment/GridDeploymentRequest.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/managers/deployment/GridDeploymentRequest.java @@ -39,7 +39,7 @@ public class GridDeploymentRequest implements Message { private Object resTopic; /** Serialized topic. */ - private byte[] resTopicBytes; + private ByteBuffer resTopicBytes; /** Requested class name. */ private String rsrcName; @@ -101,14 +101,14 @@ public class GridDeploymentRequest implements Message { /** * @return Serialized topic. */ - byte[] responseTopicBytes() { + ByteBuffer responseTopicBytes() { return resTopicBytes; } /** * @param resTopicBytes Serialized topic. */ - void responseTopicBytes(byte[] resTopicBytes) { + void responseTopicBytes(ByteBuffer resTopicBytes) { this.resTopicBytes = resTopicBytes; } @@ -186,8 +186,8 @@ public class GridDeploymentRequest implements Message { writer.incrementState(); case 3: - if (!writer.writeByteArray("resTopicBytes", resTopicBytes)) - return false; +// if (!writer.writeByteArray("resTopicBytes", resTopicBytes)) +// return false; writer.incrementState(); @@ -235,7 +235,7 @@ public class GridDeploymentRequest implements Message { reader.incrementState(); case 3: - resTopicBytes = reader.readByteArray("resTopicBytes"); +// resTopicBytes = reader.readByteArray("resTopicBytes"); if (!reader.isLastRead()) return false; http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/d838a9db/modules/core/src/main/java/org/apache/ignite/internal/managers/eventstorage/GridEventStorageManager.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/managers/eventstorage/GridEventStorageManager.java b/modules/core/src/main/java/org/apache/ignite/internal/managers/eventstorage/GridEventStorageManager.java index 39f266c..ed91690 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/managers/eventstorage/GridEventStorageManager.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/managers/eventstorage/GridEventStorageManager.java @@ -36,6 +36,7 @@ import org.apache.ignite.spi.eventstorage.*; import org.jdk8.backport.*; import org.jetbrains.annotations.*; +import java.nio.*; import java.util.*; import java.util.concurrent.*; import java.util.concurrent.atomic.*; @@ -881,7 +882,7 @@ public class GridEventStorageManager extends GridManagerAdapter<EventStorageSpi> ioMgr.addMessageListener(resTopic, resLsnr); - byte[] serFilter = marsh.marshal(p); + ByteBuffer serFilter = marsh.marshal(p); GridDeployment dep = ctx.deploy().deploy(p.getClass(), U.detectClassLoader(p.getClass())); http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/d838a9db/modules/core/src/main/java/org/apache/ignite/internal/managers/eventstorage/GridEventStorageMessage.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/managers/eventstorage/GridEventStorageMessage.java b/modules/core/src/main/java/org/apache/ignite/internal/managers/eventstorage/GridEventStorageMessage.java index 6f18aa6..065d1ff 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/managers/eventstorage/GridEventStorageMessage.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/managers/eventstorage/GridEventStorageMessage.java @@ -41,24 +41,24 @@ public class GridEventStorageMessage implements Message { private Object resTopic; /** */ - private byte[] resTopicBytes; + private ByteBuffer resTopicBytes; /** */ - private byte[] filter; + private ByteBuffer filter; /** */ @GridDirectTransient private Collection<Event> evts; /** */ - private byte[] evtsBytes; + private ByteBuffer evtsBytes; /** */ @GridDirectTransient private Throwable ex; /** */ - private byte[] exBytes; + private ByteBuffer exBytes; /** */ private IgniteUuid clsLdrId; @@ -93,7 +93,7 @@ public class GridEventStorageMessage implements Message { */ GridEventStorageMessage( Object resTopic, - byte[] filter, + ByteBuffer filter, String filterClsName, IgniteUuid clsLdrId, DeploymentMode depMode, @@ -144,21 +144,21 @@ public class GridEventStorageMessage implements Message { /** * @return Serialized response topic. */ - byte[] responseTopicBytes() { + ByteBuffer responseTopicBytes() { return resTopicBytes; } /** * @param resTopicBytes Serialized response topic. */ - void responseTopicBytes(byte[] resTopicBytes) { + void responseTopicBytes(ByteBuffer resTopicBytes) { this.resTopicBytes = resTopicBytes; } /** * @return Filter. */ - byte[] filter() { + ByteBuffer filter() { return filter; } @@ -179,14 +179,14 @@ public class GridEventStorageMessage implements Message { /** * @return Serialized events. */ - byte[] eventsBytes() { + ByteBuffer eventsBytes() { return evtsBytes; } /** * @param evtsBytes Serialized events. */ - void eventsBytes(byte[] evtsBytes) { + void eventsBytes(ByteBuffer evtsBytes) { this.evtsBytes = evtsBytes; } @@ -249,14 +249,14 @@ public class GridEventStorageMessage implements Message { /** * @return Serialized exception. */ - byte[] exceptionBytes() { + ByteBuffer exceptionBytes() { return exBytes; } /** * @param exBytes Serialized exception. */ - void exceptionBytes(byte[] exBytes) { + void exceptionBytes(ByteBuffer exBytes) { this.exBytes = exBytes; } @@ -285,20 +285,20 @@ public class GridEventStorageMessage implements Message { writer.incrementState(); case 2: - if (!writer.writeByteArray("evtsBytes", evtsBytes)) - return false; +// if (!writer.writeByteArray("evtsBytes", evtsBytes)) +// return false; writer.incrementState(); case 3: - if (!writer.writeByteArray("exBytes", exBytes)) - return false; +// if (!writer.writeByteArray("exBytes", exBytes)) +// return false; writer.incrementState(); case 4: - if (!writer.writeByteArray("filter", filter)) - return false; +// if (!writer.writeByteArray("filter", filter)) +// return false; writer.incrementState(); @@ -315,8 +315,8 @@ public class GridEventStorageMessage implements Message { writer.incrementState(); case 7: - if (!writer.writeByteArray("resTopicBytes", resTopicBytes)) - return false; +// if (!writer.writeByteArray("resTopicBytes", resTopicBytes)) +// return false; writer.incrementState(); @@ -360,7 +360,7 @@ public class GridEventStorageMessage implements Message { reader.incrementState(); case 2: - evtsBytes = reader.readByteArray("evtsBytes"); +// evtsBytes = reader.readByteArray("evtsBytes"); if (!reader.isLastRead()) return false; @@ -368,7 +368,7 @@ public class GridEventStorageMessage implements Message { reader.incrementState(); case 3: - exBytes = reader.readByteArray("exBytes"); +// exBytes = reader.readByteArray("exBytes"); if (!reader.isLastRead()) return false; @@ -376,7 +376,7 @@ public class GridEventStorageMessage implements Message { reader.incrementState(); case 4: - filter = reader.readByteArray("filter"); +// filter = reader.readByteArray("filter"); if (!reader.isLastRead()) return false; @@ -400,7 +400,7 @@ public class GridEventStorageMessage implements Message { reader.incrementState(); case 7: - resTopicBytes = reader.readByteArray("resTopicBytes"); +// resTopicBytes = reader.readByteArray("resTopicBytes"); if (!reader.isLastRead()) return false; http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/d838a9db/modules/core/src/main/java/org/apache/ignite/internal/managers/swapspace/GridSwapSpaceManager.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/managers/swapspace/GridSwapSpaceManager.java b/modules/core/src/main/java/org/apache/ignite/internal/managers/swapspace/GridSwapSpaceManager.java index ec50578..62aeb16 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/managers/swapspace/GridSwapSpaceManager.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/managers/swapspace/GridSwapSpaceManager.java @@ -30,6 +30,7 @@ import org.apache.ignite.spi.*; import org.apache.ignite.spi.swapspace.*; import org.jetbrains.annotations.*; +import java.nio.*; import java.util.*; import static org.apache.ignite.events.EventType.*; @@ -413,7 +414,7 @@ public class GridSwapSpaceManager extends GridManagerAdapter<SwapSpaceSpi> { if (swapBytes == null) return null; - return marsh.unmarshal(swapBytes, ldr != null ? ldr : U.gridClassLoader()); + return marsh.unmarshal(ByteBuffer.wrap(swapBytes), ldr != null ? ldr : U.gridClassLoader()); } /** @@ -424,7 +425,7 @@ public class GridSwapSpaceManager extends GridManagerAdapter<SwapSpaceSpi> { * @throws IgniteCheckedException If failed. */ private byte[] marshal(Object obj) throws IgniteCheckedException { - return ctx.config().getMarshaller().marshal(obj); + return U.toArray(ctx.config().getMarshaller().marshal(obj)); } /** http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/d838a9db/modules/core/src/main/java/org/apache/ignite/internal/processors/affinity/GridAffinityMessage.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/affinity/GridAffinityMessage.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/affinity/GridAffinityMessage.java index 8378553..83caebf 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/affinity/GridAffinityMessage.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/affinity/GridAffinityMessage.java @@ -23,6 +23,7 @@ import org.apache.ignite.internal.util.typedef.internal.*; import org.apache.ignite.lang.*; import java.io.*; +import java.nio.*; import java.util.*; /** @@ -33,7 +34,7 @@ class GridAffinityMessage implements Externalizable { private static final long serialVersionUID = 0L; /** */ - private byte[] src; + private ByteBuffer src; /** */ private IgniteUuid clsLdrId; @@ -60,7 +61,7 @@ class GridAffinityMessage implements Externalizable { * @param ldrParties Node loader participant map. */ GridAffinityMessage( - byte[] src, + ByteBuffer src, String srcClsName, IgniteUuid clsLdrId, DeploymentMode depMode, @@ -84,7 +85,7 @@ class GridAffinityMessage implements Externalizable { /** * @return Source object. */ - public byte[] source() { + public ByteBuffer source() { return src; } @@ -125,7 +126,7 @@ class GridAffinityMessage implements Externalizable { /** {@inheritDoc} */ @Override public void writeExternal(ObjectOutput out) throws IOException { - U.writeByteArray(out, src); + U.writeByteBuffer(out, src); out.writeInt(depMode.ordinal()); @@ -137,7 +138,7 @@ class GridAffinityMessage implements Externalizable { /** {@inheritDoc} */ @Override public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException { - src = U.readByteArray(in); + src = U.readByteBuffer(in); depMode = DeploymentMode.fromOrdinal(in.readInt()); http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/d838a9db/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheEntrySerializablePredicate.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheEntrySerializablePredicate.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheEntrySerializablePredicate.java index 0c07bfd..b007465 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheEntrySerializablePredicate.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheEntrySerializablePredicate.java @@ -37,7 +37,7 @@ public class CacheEntrySerializablePredicate implements CacheEntryPredicate { private CacheEntryPredicate p; /** */ - private byte[] bytes; + private ByteBuffer bytes; /** * Required by {@link org.apache.ignite.plugin.extensions.communication.Message}. @@ -109,8 +109,8 @@ public class CacheEntrySerializablePredicate implements CacheEntryPredicate { switch (writer.state()) { case 0: - if (!writer.writeByteArray("bytes", bytes)) - return false; +// if (!writer.writeByteArray("bytes", bytes)) +// return false; writer.incrementState(); @@ -128,7 +128,7 @@ public class CacheEntrySerializablePredicate implements CacheEntryPredicate { switch (reader.state()) { case 0: - bytes = reader.readByteArray("bytes"); +// bytes = reader.readByteArray("bytes"); if (!reader.isLastRead()) return false; http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/d838a9db/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheInvokeDirectResult.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheInvokeDirectResult.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheInvokeDirectResult.java index 7b153d3..d7b697c 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheInvokeDirectResult.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheInvokeDirectResult.java @@ -47,7 +47,7 @@ public class CacheInvokeDirectResult implements Message { private Exception err; /** */ - private byte[] errBytes; + private ByteBuffer errBytes; /** * Required for {@link Message}. @@ -142,8 +142,8 @@ public class CacheInvokeDirectResult implements Message { switch (writer.state()) { case 0: - if (!writer.writeByteArray("errBytes", errBytes)) - return false; +// if (!writer.writeByteArray("errBytes", errBytes)) +// return false; writer.incrementState(); @@ -173,7 +173,7 @@ public class CacheInvokeDirectResult implements Message { switch (reader.state()) { case 0: - errBytes = reader.readByteArray("errBytes"); +// errBytes = reader.readByteArray("errBytes"); if (!reader.isLastRead()) return false; http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/d838a9db/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheObject.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheObject.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheObject.java index 2f77e86..506583e 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheObject.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheObject.java @@ -21,6 +21,8 @@ import org.apache.ignite.*; import org.apache.ignite.plugin.extensions.communication.*; import org.jetbrains.annotations.*; +import java.nio.*; + /** * */ @@ -43,7 +45,7 @@ public interface CacheObject extends Message { * @return Value bytes. * @throws IgniteCheckedException If failed. */ - public byte[] valueBytes(CacheObjectContext ctx) throws IgniteCheckedException; + public ByteBuffer valueBytes(CacheObjectContext ctx) throws IgniteCheckedException; /** * @return Object type. http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/d838a9db/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheObjectAdapter.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheObjectAdapter.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheObjectAdapter.java index 173483d..c6dc767 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheObjectAdapter.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheObjectAdapter.java @@ -35,7 +35,7 @@ public abstract class CacheObjectAdapter implements CacheObject, Externalizable protected Object val; /** */ - protected byte[] valBytes; + protected ByteBuffer valBytes; /** * @param ctx Context. @@ -54,12 +54,12 @@ public abstract class CacheObjectAdapter implements CacheObject, Externalizable @Override public void writeExternal(ObjectOutput out) throws IOException { assert valBytes != null; - U.writeByteArray(out, valBytes); + U.writeByteBuffer(out, valBytes); } /** {@inheritDoc} */ @Override public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException { - valBytes = U.readByteArray(in); + valBytes = U.readByteBuffer(in); } /** {@inheritDoc} */ @@ -71,7 +71,7 @@ public abstract class CacheObjectAdapter implements CacheObject, Externalizable switch (reader.state()) { case 0: - valBytes = reader.readByteArray("valBytes"); +// valBytes = reader.readByteArray("valBytes"); if (!reader.isLastRead()) return false; @@ -96,8 +96,8 @@ public abstract class CacheObjectAdapter implements CacheObject, Externalizable switch (writer.state()) { case 0: - if (!writer.writeByteArray("valBytes", valBytes)) - return false; +// if (!writer.writeByteArray("valBytes", valBytes)) +// return false; writer.incrementState(); http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/d838a9db/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheObjectByteArrayImpl.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheObjectByteArrayImpl.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheObjectByteArrayImpl.java index 3f9d1dd..059eccf 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheObjectByteArrayImpl.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheObjectByteArrayImpl.java @@ -66,8 +66,8 @@ public class CacheObjectByteArrayImpl implements CacheObject, Externalizable { } /** {@inheritDoc} */ - @Override public byte[] valueBytes(CacheObjectContext ctx) throws IgniteCheckedException { - return val; + @Override public ByteBuffer valueBytes(CacheObjectContext ctx) throws IgniteCheckedException { + return ByteBuffer.wrap(val); } /** {@inheritDoc} */ http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/d838a9db/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheObjectImpl.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheObjectImpl.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheObjectImpl.java index 828d886..20e3efa 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheObjectImpl.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheObjectImpl.java @@ -20,6 +20,8 @@ package org.apache.ignite.internal.processors.cache; import org.apache.ignite.*; import org.jetbrains.annotations.*; +import java.nio.*; + /** * */ @@ -38,7 +40,7 @@ public class CacheObjectImpl extends CacheObjectAdapter { * @param val Value. * @param valBytes Value bytes. */ - public CacheObjectImpl(Object val, byte[] valBytes) { + public CacheObjectImpl(Object val, ByteBuffer valBytes) { assert val != null || valBytes != null; this.val = val; @@ -71,7 +73,7 @@ public class CacheObjectImpl extends CacheObjectAdapter { } /** {@inheritDoc} */ - @Override public byte[] valueBytes(CacheObjectContext ctx) throws IgniteCheckedException { + @Override public ByteBuffer valueBytes(CacheObjectContext ctx) throws IgniteCheckedException { if (valBytes == null) valBytes = ctx.processor().marshal(ctx, val); http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/d838a9db/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheContext.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheContext.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheContext.java index 1d30d81..04aeaee 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheContext.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheContext.java @@ -58,6 +58,7 @@ import javax.cache.*; import javax.cache.configuration.*; import javax.cache.expiry.*; import java.io.*; +import java.nio.*; import java.util.*; import java.util.concurrent.*; @@ -1769,7 +1770,7 @@ public class GridCacheContext<K, V> implements Externalizable { * @return Cache key object. * @throws IgniteCheckedException If failed. */ - public KeyCacheObject toCacheKeyObject(byte[] bytes) throws IgniteCheckedException { + public KeyCacheObject toCacheKeyObject(ByteBuffer bytes) throws IgniteCheckedException { Object obj = ctx.cacheObjects().unmarshal(cacheObjCtx, bytes, deploy().localLoader()); return cacheObjects().toCacheKeyObject(cacheObjCtx, obj, false); @@ -1782,7 +1783,7 @@ public class GridCacheContext<K, V> implements Externalizable { * @return Cache object. * @throws IgniteCheckedException If failed. */ - @Nullable public CacheObject unswapCacheObject(byte type, byte[] bytes, @Nullable IgniteUuid clsLdrId) + @Nullable public CacheObject unswapCacheObject(byte type, ByteBuffer bytes, @Nullable IgniteUuid clsLdrId) throws IgniteCheckedException { if (ctx.config().isPeerClassLoadingEnabled() && type != CacheObject.TYPE_BYTE_ARR) { http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/d838a9db/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheEntryInfo.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheEntryInfo.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheEntryInfo.java index 4845635..69ff9ff 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheEntryInfo.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheEntryInfo.java @@ -41,7 +41,7 @@ public class GridCacheEntryInfo implements Message { private KeyCacheObject key; /** Key bytes, set when entry is read from swap and there is no key instance. */ - private byte[] keyBytes; + private ByteBuffer keyBytes; /** Cache ID. */ private int cacheId; @@ -90,14 +90,14 @@ public class GridCacheEntryInfo implements Message { /** * @param bytes Key bytes. */ - public void keyBytes(byte[] bytes) { + public void keyBytes(ByteBuffer bytes) { this.keyBytes = bytes; } /** * @return Key bytes. */ - public byte[] keyBytes() { + public ByteBuffer keyBytes() { return keyBytes; } @@ -223,8 +223,8 @@ public class GridCacheEntryInfo implements Message { writer.incrementState(); case 3: - if (!writer.writeByteArray("keyBytes", keyBytes)) - return false; +// if (!writer.writeByteArray("keyBytes", keyBytes)) +// return false; writer.incrementState(); @@ -284,7 +284,7 @@ public class GridCacheEntryInfo implements Message { reader.incrementState(); case 3: - keyBytes = reader.readByteArray("keyBytes"); +// keyBytes = reader.readByteArray("keyBytes"); if (!reader.isLastRead()) return false; @@ -349,15 +349,15 @@ public class GridCacheEntryInfo implements Message { CacheObjectContext cacheObjCtx = ctx.cacheObjectContext(); if (val != null) - size += val.valueBytes(cacheObjCtx).length; + size += U.toArray(val.valueBytes(cacheObjCtx)).length; if (key == null) { assert keyBytes != null; - size += keyBytes.length; + size += U.toArray(keyBytes).length; } else - size += key.valueBytes(cacheObjCtx).length; + size += U.toArray(key.valueBytes(cacheObjCtx)).length; return SIZE_OVERHEAD + size; } http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/d838a9db/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheMapEntry.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheMapEntry.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheMapEntry.java index 04b2745..c60cfea 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheMapEntry.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheMapEntry.java @@ -42,7 +42,6 @@ import javax.cache.processor.*; import java.io.*; import java.nio.*; import java.util.*; -import java.util.concurrent.*; import java.util.concurrent.atomic.*; import static org.apache.ignite.events.EventType.*; @@ -233,7 +232,7 @@ public abstract class GridCacheMapEntry implements GridCacheEntryEx { if (val != null) { byte type = val.type(); - valPtr = mem.putOffHeap(valPtr, val.valueBytes(cctx.cacheObjectContext()), type); + valPtr = mem.putOffHeap(valPtr, U.toArray(val.valueBytes(cctx.cacheObjectContext())), type); } else { mem.removeOffHeap(valPtr); @@ -256,7 +255,7 @@ public abstract class GridCacheMapEntry implements GridCacheEntryEx { * @param valBytes Value bytes. * @return Length of value. */ - private int valueLength0(@Nullable CacheObject val, @Nullable IgniteBiTuple<byte[], Byte> valBytes) { + private int valueLength0(@Nullable CacheObject val, @Nullable IgniteBiTuple<ByteBuffer, Byte> valBytes) { byte[] bytes = val != null ? (byte[])val.value(cctx.cacheObjectContext(), false) : null; if (bytes != null) @@ -265,7 +264,7 @@ public abstract class GridCacheMapEntry implements GridCacheEntryEx { if (valBytes == null) return 0; - return valBytes.get1().length - (((valBytes.get2() == CacheObject.TYPE_BYTE_ARR) ? 0 : 6)); + return U.toArray(valBytes.get1()).length - (((valBytes.get2() == CacheObject.TYPE_BYTE_ARR) ? 0 : 6)); } /** @@ -277,7 +276,7 @@ public abstract class GridCacheMapEntry implements GridCacheEntryEx { CacheObject val0 = val; if (val0 == null && valPtr != 0) { - IgniteBiTuple<byte[], Byte> t = valueBytes0(); + IgniteBiTuple<ByteBuffer, Byte> t = valueBytes0(); return cctx.cacheObjects().toCacheObject(cctx.cacheObjectContext(), t.get2(), t.get1()); } @@ -295,12 +294,12 @@ public abstract class GridCacheMapEntry implements GridCacheEntryEx { synchronized (this) { key.prepareMarshal(cctx.cacheObjectContext()); - kb = key.valueBytes(cctx.cacheObjectContext()); + kb = U.toArray(key.valueBytes(cctx.cacheObjectContext())); if (val != null) { val.prepareMarshal(cctx.cacheObjectContext()); - vb = val.valueBytes(cctx.cacheObjectContext()); + vb = U.toArray(val.valueBytes(cctx.cacheObjectContext())); } extrasSize = extrasSize(); @@ -525,10 +524,10 @@ public abstract class GridCacheMapEntry implements GridCacheEntryEx { val.value(cctx.cacheObjectContext(), false).getClass().getClassLoader()); } - IgniteBiTuple<byte[], Byte> valBytes = valueBytes0(); + IgniteBiTuple<ByteBuffer, Byte> valBytes = valueBytes0(); cctx.swap().write(key(), - ByteBuffer.wrap(valBytes.get1()), + valBytes.get1(), valBytes.get2(), ver, ttlExtras(), @@ -544,19 +543,22 @@ public abstract class GridCacheMapEntry implements GridCacheEntryEx { /** * @return Value bytes and flag indicating whether value is byte array. */ - protected IgniteBiTuple<byte[], Byte> valueBytes0() { + // TODO: IGNITE-471 - Switch to other class here??? + protected IgniteBiTuple<ByteBuffer, Byte> valueBytes0() { assert Thread.holdsLock(this); if (valPtr != 0) { assert isOffHeapValuesOnly() || cctx.offheapTiered(); - return cctx.unsafeMemory().get(valPtr); + IgniteBiTuple<byte[], Byte> t = cctx.unsafeMemory().get(valPtr); + + return F.t(ByteBuffer.wrap(t.get1()), t.get2()); } else { assert val != null; try { - byte[] bytes = val.valueBytes(cctx.cacheObjectContext()); + ByteBuffer bytes = val.valueBytes(cctx.cacheObjectContext()); return new IgniteBiTuple<>(bytes, val.type()); } @@ -3678,8 +3680,8 @@ public abstract class GridCacheMapEntry implements GridCacheEntryEx { GridCacheQueryManager qryMgr = cctx.queries(); if (qryMgr != null) { - qryMgr.store(key.value(cctx.cacheObjectContext(), false), - null, + qryMgr.store( + key.value(cctx.cacheObjectContext(), false), CU.value(val, cctx, false), null, ver, @@ -3915,11 +3917,11 @@ public abstract class GridCacheMapEntry implements GridCacheEntryEx { valClsLdrId = cctx.deploy().getClassLoaderId( U.detectObjectClassLoader(val.value(cctx.cacheObjectContext(), false))); - IgniteBiTuple<byte[], Byte> valBytes = valueBytes0(); + IgniteBiTuple<ByteBuffer, Byte> valBytes = valueBytes0(); ret = new GridCacheBatchSwapEntry(key(), partition(), - ByteBuffer.wrap(valBytes.get1()), + valBytes.get1(), valBytes.get2(), ver, ttlExtras(), http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/d838a9db/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheMessage.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheMessage.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheMessage.java index c0cae2c..bbf1caf 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheMessage.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheMessage.java @@ -366,14 +366,14 @@ public abstract class GridCacheMessage implements Message { * @return Marshalled collection. * @throws IgniteCheckedException If failed. */ - @Nullable protected final byte[][] marshalInvokeArguments(@Nullable Object[] args, + @Nullable protected final ByteBuffer[] marshalInvokeArguments(@Nullable Object[] args, GridCacheSharedContext ctx) throws IgniteCheckedException { assert ctx != null; if (args == null || args.length == 0) return null; - byte[][] argsBytes = new byte[args.length][]; + ByteBuffer[] argsBytes = new ByteBuffer[args.length]; for (int i = 0; i < args.length; i++) { Object arg = args[i]; @@ -395,7 +395,7 @@ public abstract class GridCacheMessage implements Message { * @return Unmarshalled collection. * @throws IgniteCheckedException If failed. */ - @Nullable protected final Object[] unmarshalInvokeArguments(@Nullable byte[][] byteCol, + @Nullable protected final Object[] unmarshalInvokeArguments(@Nullable ByteBuffer[] byteCol, GridCacheSharedContext ctx, ClassLoader ldr) throws IgniteCheckedException { assert ldr != null; @@ -420,14 +420,14 @@ public abstract class GridCacheMessage implements Message { * @return Marshalled collection. * @throws IgniteCheckedException If failed. */ - @Nullable protected List<byte[]> marshalCollection(@Nullable Collection<?> col, + @Nullable protected List<ByteBuffer> marshalCollection(@Nullable Collection<?> col, GridCacheSharedContext ctx) throws IgniteCheckedException { assert ctx != null; if (col == null) return null; - List<byte[]> byteCol = new ArrayList<>(col.size()); + List<ByteBuffer> byteCol = new ArrayList<>(col.size()); for (Object o : col) { if (ctx.deploymentEnabled()) @@ -540,7 +540,7 @@ public abstract class GridCacheMessage implements Message { * @return Unmarshalled collection. * @throws IgniteCheckedException If failed. */ - @Nullable protected <T> List<T> unmarshalCollection(@Nullable Collection<byte[]> byteCol, + @Nullable protected <T> List<T> unmarshalCollection(@Nullable Collection<ByteBuffer> byteCol, GridCacheSharedContext ctx, ClassLoader ldr) throws IgniteCheckedException { assert ldr != null; assert ctx != null; @@ -552,63 +552,12 @@ public abstract class GridCacheMessage implements Message { Marshaller marsh = ctx.marshaller(); - for (byte[] bytes : byteCol) + for (ByteBuffer bytes : byteCol) col.add(bytes == null ? null : marsh.<T>unmarshal(bytes, ldr)); return col; } - /** - * @param map Map to marshal. - * @param ctx Context. - * @return Marshalled map. - * @throws IgniteCheckedException If failed. - */ - @SuppressWarnings("TypeMayBeWeakened") // Don't weaken type to clearly see that it's linked hash map. - @Nullable protected final LinkedHashMap<byte[], Boolean> marshalBooleanLinkedMap( - @Nullable LinkedHashMap<?, Boolean> map, GridCacheSharedContext ctx) throws IgniteCheckedException { - assert ctx != null; - - if (map == null) - return null; - - LinkedHashMap<byte[], Boolean> byteMap = U.newLinkedHashMap(map.size()); - - for (Map.Entry<?, Boolean> e : map.entrySet()) { - if (ctx.deploymentEnabled()) - prepareObject(e.getKey(), ctx); - - byteMap.put(CU.marshal(ctx, e.getKey()), e.getValue()); - } - - return byteMap; - } - - /** - * @param byteMap Map to unmarshal. - * @param ctx Context. - * @param ldr Loader. - * @return Unmarshalled map. - * @throws IgniteCheckedException If failed. - */ - @Nullable protected final <K1> LinkedHashMap<K1, Boolean> unmarshalBooleanLinkedMap( - @Nullable Map<byte[], Boolean> byteMap, GridCacheSharedContext ctx, ClassLoader ldr) throws IgniteCheckedException { - assert ldr != null; - assert ctx != null; - - if (byteMap == null) - return null; - - LinkedHashMap<K1, Boolean> map = U.newLinkedHashMap(byteMap.size()); - - Marshaller marsh = ctx.marshaller(); - - for (Map.Entry<byte[], Boolean> e : byteMap.entrySet()) - map.put(marsh.<K1>unmarshal(e.getKey(), ldr), e.getValue()); - - return map; - } - /** {@inheritDoc} */ @Override public boolean writeTo(ByteBuffer buf, MessageWriter writer) { writer.setBuffer(buf);