You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by ag...@apache.org on 2017/03/30 11:49:43 UTC
[14/50] [abbrv] ignite git commit: IGNITE-4558 Use
BinaryArrayIdentityResolver by default. This closes #1649.
IGNITE-4558 Use BinaryArrayIdentityResolver by default. This closes #1649.
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/24f90d6d
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/24f90d6d
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/24f90d6d
Branch: refs/heads/ignite-3477-master
Commit: 24f90d6d242c3d10bddc83ef6123def8c367f399
Parents: 282b334
Author: Evgenii Zhuravlev <ez...@gridgain.com>
Authored: Mon Mar 27 13:53:48 2017 +0300
Committer: devozerov <vo...@gridgain.com>
Committed: Mon Mar 27 13:53:48 2017 +0300
----------------------------------------------------------------------
.../ignite/binary/BinaryObjectBuilder.java | 10 --
.../store/jdbc/CacheAbstractJdbcStore.java | 24 ++--
.../cache/store/jdbc/CacheJdbcPojoStore.java | 18 +--
.../internal/binary/BinaryClassDescriptor.java | 23 +---
.../ignite/internal/binary/BinaryContext.java | 5 +-
.../internal/binary/BinaryObjectExImpl.java | 4 -
.../ignite/internal/binary/BinaryUtils.java | 5 +-
.../internal/binary/BinaryWriterExImpl.java | 45 ++-----
.../binary/builder/BinaryObjectBuilderImpl.java | 20 +--
.../processors/cache/GridCacheUtils.java | 4 -
.../ignite/internal/util/IgniteUtils.java | 10 --
.../binary/BinaryMarshallerSelfTest.java | 4 -
.../BinaryObjectBuilderAdditionalSelfTest.java | 9 +-
...naryObjectBuilderDefaultMappersSelfTest.java | 127 +++++--------------
...ridCacheStoreManagerDeserializationTest.java | 1 -
.../cache/GridCacheUtilsSelfTest.java | 4 -
...calCacheStoreManagerDeserializationTest.java | 2 +-
.../IgniteCacheBinaryObjectsScanSelfTest.java | 2 +-
.../GridCacheBinaryObjectsAbstractSelfTest.java | 36 ------
.../CacheContinuousQueryVariationsTest.java | 5 +
.../query/h2/DmlStatementsProcessor.java | 35 -----
.../processors/query/h2/IgniteH2Indexing.java | 26 ++--
22 files changed, 97 insertions(+), 322 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/24f90d6d/modules/core/src/main/java/org/apache/ignite/binary/BinaryObjectBuilder.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/binary/BinaryObjectBuilder.java b/modules/core/src/main/java/org/apache/ignite/binary/BinaryObjectBuilder.java
index 21f1c37..15bd799 100644
--- a/modules/core/src/main/java/org/apache/ignite/binary/BinaryObjectBuilder.java
+++ b/modules/core/src/main/java/org/apache/ignite/binary/BinaryObjectBuilder.java
@@ -127,16 +127,6 @@ public interface BinaryObjectBuilder {
public BinaryObjectBuilder removeField(String fieldName);
/**
- * Sets hash code for resulting binary object returned by {@link #build()} method.
- * <p>
- * If not set {@code 0} is used.
- *
- * @param hashCode Hash code.
- * @return {@code this} instance for chaining.
- */
- public BinaryObjectBuilder hashCode(int hashCode);
-
- /**
* Builds binary object.
*
* @return Binary object.
http://git-wip-us.apache.org/repos/asf/ignite/blob/24f90d6d/modules/core/src/main/java/org/apache/ignite/cache/store/jdbc/CacheAbstractJdbcStore.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/cache/store/jdbc/CacheAbstractJdbcStore.java b/modules/core/src/main/java/org/apache/ignite/cache/store/jdbc/CacheAbstractJdbcStore.java
index 7af238b..41709a1 100644
--- a/modules/core/src/main/java/org/apache/ignite/cache/store/jdbc/CacheAbstractJdbcStore.java
+++ b/modules/core/src/main/java/org/apache/ignite/cache/store/jdbc/CacheAbstractJdbcStore.java
@@ -215,15 +215,13 @@ public abstract class CacheAbstractJdbcStore<K, V> implements CacheStore<K, V>,
* @param typeName Type name.
* @param typeKind Type kind.
* @param flds Fields descriptors.
- * @param hashFlds Field names for hash code calculation.
* @param loadColIdxs Select query columns index.
* @param rs ResultSet.
* @return Constructed object.
* @throws CacheLoaderException If failed to construct cache object.
*/
protected abstract <R> R buildObject(@Nullable String cacheName, String typeName, TypeKind typeKind,
- JdbcTypeField[] flds, Collection<String> hashFlds, Map<String, Integer> loadColIdxs, ResultSet rs)
- throws CacheLoaderException;
+ JdbcTypeField[] flds, Map<String, Integer> loadColIdxs, ResultSet rs) throws CacheLoaderException;
/**
* Calculate type ID for object.
@@ -457,8 +455,11 @@ public abstract class CacheAbstractJdbcStore<K, V> implements CacheStore<K, V>,
ResultSet rs = stmt.executeQuery();
while (rs.next()) {
- K key = buildObject(em.cacheName, em.keyType(), em.keyKind(), em.keyColumns(), em.keyCols, em.loadColIdxs, rs);
- V val = buildObject(em.cacheName, em.valueType(), em.valueKind(), em.valueColumns(), null, em.loadColIdxs, rs);
+ K key = buildObject(em.cacheName, em.keyType(), em.keyKind(), em.keyColumns(),
+ em.loadColIdxs, rs);
+
+ V val = buildObject(em.cacheName, em.valueType(), em.valueKind(), em.valueColumns(),
+ em.loadColIdxs, rs);
clo.apply(key, val);
}
@@ -875,7 +876,7 @@ public abstract class CacheAbstractJdbcStore<K, V> implements CacheStore<K, V>,
ResultSet rs = stmt.executeQuery();
if (rs.next())
- return buildObject(em.cacheName, em.valueType(), em.valueKind(), em.valueColumns(), null, em.loadColIdxs, rs);
+ return buildObject(em.cacheName, em.valueType(), em.valueKind(), em.valueColumns(), em.loadColIdxs, rs);
}
catch (SQLException e) {
throw new CacheLoaderException("Failed to load object [table=" + em.fullTableName() +
@@ -1993,8 +1994,8 @@ public abstract class CacheAbstractJdbcStore<K, V> implements CacheStore<K, V>,
colIdxs.put(meta.getColumnLabel(i).toUpperCase(), i);
while (rs.next()) {
- K1 key = buildObject(em.cacheName, em.keyType(), em.keyKind(), em.keyColumns(), em.keyCols, colIdxs, rs);
- V1 val = buildObject(em.cacheName, em.valueType(), em.valueKind(), em.valueColumns(), null, colIdxs, rs);
+ K1 key = buildObject(em.cacheName, em.keyType(), em.keyKind(), em.keyColumns(), colIdxs, rs);
+ V1 val = buildObject(em.cacheName, em.valueType(), em.valueKind(), em.valueColumns(), colIdxs, rs);
clo.apply(key, val);
}
@@ -2089,8 +2090,11 @@ public abstract class CacheAbstractJdbcStore<K, V> implements CacheStore<K, V>,
Map<K1, V1> entries = U.newHashMap(keys.size());
while (rs.next()) {
- K1 key = buildObject(em.cacheName, em.keyType(), em.keyKind(), em.keyColumns(), em.keyCols, em.loadColIdxs, rs);
- V1 val = buildObject(em.cacheName, em.valueType(), em.valueKind(), em.valueColumns(), null, em.loadColIdxs, rs);
+ K1 key = buildObject(em.cacheName, em.keyType(), em.keyKind(), em.keyColumns(),
+ em.loadColIdxs, rs);
+
+ V1 val = buildObject(em.cacheName, em.valueType(), em.valueKind(), em.valueColumns(),
+ em.loadColIdxs, rs);
entries.put(key, val);
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/24f90d6d/modules/core/src/main/java/org/apache/ignite/cache/store/jdbc/CacheJdbcPojoStore.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/cache/store/jdbc/CacheJdbcPojoStore.java b/modules/core/src/main/java/org/apache/ignite/cache/store/jdbc/CacheJdbcPojoStore.java
index b9f6e8a..00a8ade 100644
--- a/modules/core/src/main/java/org/apache/ignite/cache/store/jdbc/CacheJdbcPojoStore.java
+++ b/modules/core/src/main/java/org/apache/ignite/cache/store/jdbc/CacheJdbcPojoStore.java
@@ -126,7 +126,7 @@ public class CacheJdbcPojoStore<K, V> extends CacheAbstractJdbcStore<K, V> {
/** {@inheritDoc} */
@Override protected <R> R buildObject(@Nullable String cacheName, String typeName, TypeKind typeKind,
- JdbcTypeField[] flds, Collection<String> hashFlds, Map<String, Integer> loadColIdxs, ResultSet rs)
+ JdbcTypeField[] flds, Map<String, Integer> loadColIdxs, ResultSet rs)
throws CacheLoaderException {
switch (typeKind) {
case BUILT_IN:
@@ -134,7 +134,7 @@ public class CacheJdbcPojoStore<K, V> extends CacheAbstractJdbcStore<K, V> {
case POJO:
return (R)buildPojoObject(cacheName, typeName, flds, loadColIdxs, rs);
default:
- return (R)buildBinaryObject(typeName, flds, hashFlds, loadColIdxs, rs);
+ return (R)buildBinaryObject(typeName, flds, loadColIdxs, rs);
}
}
@@ -233,35 +233,23 @@ public class CacheJdbcPojoStore<K, V> extends CacheAbstractJdbcStore<K, V> {
*
* @param typeName Type name.
* @param fields Fields descriptors.
- * @param hashFields Collection of fields to build hash for.
* @param loadColIdxs Select query columns index.
* @param rs ResultSet.
* @return Constructed binary object.
* @throws CacheLoaderException If failed to construct binary object.
*/
- protected Object buildBinaryObject(String typeName, JdbcTypeField[] fields,
- Collection<String> hashFields, Map<String, Integer> loadColIdxs, ResultSet rs) throws CacheLoaderException {
+ protected Object buildBinaryObject(String typeName, JdbcTypeField[] fields, Map<String, Integer> loadColIdxs, ResultSet rs) throws CacheLoaderException {
try {
BinaryObjectBuilder builder = ignite.binary().builder(typeName);
- boolean calcHash = hashFields != null;
-
- Collection<Object> hashValues = calcHash ? new ArrayList<>(hashFields.size()) : null;
-
for (JdbcTypeField field : fields) {
Integer colIdx = columnIndex(loadColIdxs, field.getDatabaseFieldName());
Object colVal = transformer.getColumnValue(rs, colIdx, field.getJavaFieldType());
builder.setField(field.getJavaFieldName(), colVal, (Class<Object>)field.getJavaFieldType());
-
- if (calcHash)
- hashValues.add(colVal);
}
- if (calcHash)
- builder.hashCode(hasher.hashCode(hashValues));
-
return builder.build();
}
catch (SQLException e) {
http://git-wip-us.apache.org/repos/asf/ignite/blob/24f90d6d/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryClassDescriptor.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryClassDescriptor.java b/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryClassDescriptor.java
index 32db1f7..7eaf6c6 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryClassDescriptor.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryClassDescriptor.java
@@ -43,7 +43,6 @@ import org.apache.ignite.binary.Binarylizable;
import org.apache.ignite.internal.processors.cache.CacheObjectImpl;
import org.apache.ignite.internal.processors.query.QueryUtils;
import org.apache.ignite.internal.util.GridUnsafe;
-import org.apache.ignite.internal.util.IgniteUtils;
import org.apache.ignite.internal.util.tostring.GridToStringExclude;
import org.apache.ignite.internal.util.typedef.F;
import org.apache.ignite.internal.util.typedef.internal.S;
@@ -120,9 +119,6 @@ public class BinaryClassDescriptor {
private final boolean excluded;
/** */
- private final boolean overridesHashCode;
-
- /** */
private final Class<?>[] intfs;
/** Whether stable schema was published. */
@@ -176,8 +172,6 @@ public class BinaryClassDescriptor {
this.mapper = mapper;
this.registered = registered;
- overridesHashCode = IgniteUtils.overridesEqualsAndHashCode(cls);
-
schemaReg = ctx.schemaRegistry(typeId);
excluded = MarshallerExclusions.isExcluded(cls);
@@ -744,7 +738,7 @@ public class BinaryClassDescriptor {
else
((Binarylizable)obj).writeBinary(writer);
- postWrite(writer, obj);
+ postWrite(writer);
// Check whether we need to update metadata.
if (obj.getClass() != BinaryMetadata.class) {
@@ -800,7 +794,7 @@ public class BinaryClassDescriptor {
writer.schemaId(stableSchema.schemaId());
- postWrite(writer, obj);
+ postWrite(writer);
postWriteHashCode(writer, obj);
}
finally {
@@ -903,18 +897,9 @@ public class BinaryClassDescriptor {
* Post-write phase.
*
* @param writer Writer.
- * @param obj Object.
*/
- private void postWrite(BinaryWriterExImpl writer, Object obj) {
- if (obj instanceof CacheObjectImpl)
- writer.postWrite(userType, registered, 0, false);
- else if (obj instanceof BinaryObjectEx) {
- boolean flagSet = ((BinaryObjectEx)obj).isFlagSet(BinaryUtils.FLAG_EMPTY_HASH_CODE);
-
- writer.postWrite(userType, registered, obj.hashCode(), !flagSet);
- }
- else
- writer.postWrite(userType, registered, obj.hashCode(), overridesHashCode);
+ private void postWrite(BinaryWriterExImpl writer) {
+ writer.postWrite(userType, registered);
}
/**
http://git-wip-us.apache.org/repos/asf/ignite/blob/24f90d6d/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryContext.java
----------------------------------------------------------------------
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 3517b8c..febfb04 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
@@ -20,6 +20,7 @@ package org.apache.ignite.internal.binary;
import org.apache.ignite.IgniteCheckedException;
import org.apache.ignite.IgniteException;
import org.apache.ignite.IgniteLogger;
+import org.apache.ignite.binary.BinaryArrayIdentityResolver;
import org.apache.ignite.binary.BinaryBasicIdMapper;
import org.apache.ignite.binary.BinaryBasicNameMapper;
import org.apache.ignite.binary.BinaryIdMapper;
@@ -1234,7 +1235,9 @@ public class BinaryContext {
* @return Type identity.
*/
public BinaryIdentityResolver identity(int typeId) {
- return identities.get(typeId);
+ BinaryIdentityResolver rslvr = identities.get(typeId);
+
+ return rslvr != null ? rslvr : BinaryArrayIdentityResolver.instance();
}
/**
http://git-wip-us.apache.org/repos/asf/ignite/blob/24f90d6d/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryObjectExImpl.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryObjectExImpl.java b/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryObjectExImpl.java
index 5b5aeba..88ae832 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryObjectExImpl.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryObjectExImpl.java
@@ -23,7 +23,6 @@ import java.util.IdentityHashMap;
import java.util.Iterator;
import java.util.Map;
import org.apache.ignite.IgniteException;
-import org.apache.ignite.binary.BinaryArrayIdentityResolver;
import org.apache.ignite.binary.BinaryObject;
import org.apache.ignite.binary.BinaryObjectBuilder;
import org.apache.ignite.binary.BinaryObjectException;
@@ -160,9 +159,6 @@ public abstract class BinaryObjectExImpl implements BinaryObjectEx {
BinaryIdentityResolver identity = context().identity(typeId());
- if (identity == null)
- identity = BinaryArrayIdentityResolver.instance();
-
return identity.equals(this, (BinaryObject)other);
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/24f90d6d/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryUtils.java
----------------------------------------------------------------------
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 28659ab..d3ff2ac 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
@@ -110,9 +110,6 @@ public class BinaryUtils {
/** Flag: compact footer, no field IDs. */
public static final short FLAG_COMPACT_FOOTER = 0x0020;
- /** Flag: no hash code has been set. */
- public static final short FLAG_EMPTY_HASH_CODE = 0x0040;
-
/** Offset which fits into 1 byte. */
public static final int OFFSET_1 = 1;
@@ -142,7 +139,7 @@ public class BinaryUtils {
/** FNV1 hash prime. */
private static final int FNV1_PRIME = 0x01000193;
- /**
+ /*
* Static class initializer.
*/
static {
http://git-wip-us.apache.org/repos/asf/ignite/blob/24f90d6d/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryWriterExImpl.java
----------------------------------------------------------------------
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 b091001..5ae47fc 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
@@ -247,10 +247,8 @@ public class BinaryWriterExImpl implements BinaryWriter, BinaryRawWriterEx, Obje
*
* @param userType User type flag.
* @param registered Whether type is registered.
- * @param hashCode Hash code.
- * @param isHashCodeSet Hash code presence flag.
*/
- public void postWrite(boolean userType, boolean registered, int hashCode, boolean isHashCodeSet) {
+ public void postWrite(boolean userType, boolean registered) {
short flags;
boolean useCompactFooter;
@@ -307,9 +305,6 @@ public class BinaryWriterExImpl implements BinaryWriter, BinaryRawWriterEx, Obje
}
}
- if (!isHashCodeSet)
- flags |= BinaryUtils.FLAG_EMPTY_HASH_CODE;
-
// Actual write.
int retPos = out.position();
@@ -319,7 +314,7 @@ public class BinaryWriterExImpl implements BinaryWriter, BinaryRawWriterEx, Obje
out.unsafeWriteByte(GridBinaryMarshaller.PROTO_VER);
out.unsafeWriteShort(flags);
out.unsafeWriteInt(registered ? typeId : GridBinaryMarshaller.UNREGISTERED_TYPE_ID);
- out.unsafeWriteInt(hashCode);
+ out.unsafePosition(start + GridBinaryMarshaller.TOTAL_LEN_POS);
out.unsafeWriteInt(retPos - start);
out.unsafeWriteInt(finalSchemaId);
out.unsafeWriteInt(offset);
@@ -337,35 +332,23 @@ public class BinaryWriterExImpl implements BinaryWriter, BinaryRawWriterEx, Obje
BinaryIdentityResolver identity = ctx.identity(typeId);
- if (identity != null) {
- if (out.hasArray()) {
- // Heap.
- byte[] data = out.array();
-
- BinaryObjectImpl obj = new BinaryObjectImpl(ctx, data, start);
-
- short flags = BinaryPrimitives.readShort(data, start + GridBinaryMarshaller.FLAGS_POS);
-
- BinaryPrimitives.writeShort(data, start + GridBinaryMarshaller.FLAGS_POS,
- (short) (flags & ~BinaryUtils.FLAG_EMPTY_HASH_CODE));
-
- BinaryPrimitives.writeInt(data, start + GridBinaryMarshaller.HASH_CODE_POS, identity.hashCode(obj));
- }
- else {
- // Offheap.
- long ptr = out.rawOffheapPointer();
+ if (out.hasArray()) {
+ // Heap.
+ byte[] data = out.array();
- assert ptr != 0;
+ BinaryObjectImpl obj = new BinaryObjectImpl(ctx, data, start);
- BinaryObjectOffheapImpl obj = new BinaryObjectOffheapImpl(ctx, ptr, start, out.capacity());
+ BinaryPrimitives.writeInt(data, start + GridBinaryMarshaller.HASH_CODE_POS, identity.hashCode(obj));
+ }
+ else {
+ // Offheap.
+ long ptr = out.rawOffheapPointer();
- short flags = BinaryPrimitives.readShort(ptr, start + GridBinaryMarshaller.FLAGS_POS);
+ assert ptr != 0;
- BinaryPrimitives.writeShort(ptr, start + GridBinaryMarshaller.FLAGS_POS,
- (short) (flags & ~BinaryUtils.FLAG_EMPTY_HASH_CODE));
+ BinaryObjectOffheapImpl obj = new BinaryObjectOffheapImpl(ctx, ptr, start, out.capacity());
- BinaryPrimitives.writeInt(ptr, start + GridBinaryMarshaller.HASH_CODE_POS, identity.hashCode(obj));
- }
+ BinaryPrimitives.writeInt(ptr, start + GridBinaryMarshaller.HASH_CODE_POS, identity.hashCode(obj));
}
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/24f90d6d/modules/core/src/main/java/org/apache/ignite/internal/binary/builder/BinaryObjectBuilderImpl.java
----------------------------------------------------------------------
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 fd6c351..4ab9df8 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
@@ -85,12 +85,6 @@ public class BinaryObjectBuilderImpl implements BinaryObjectBuilder {
/** Context of BinaryObject reading process. Or {@code null} if object is not created from BinaryObject. */
private final BinaryBuilderReader reader;
- /** */
- private int hashCode;
-
- /** */
- private boolean isHashCodeSet;
-
/**
* @param clsName Class name.
* @param ctx Binary context.
@@ -122,7 +116,6 @@ public class BinaryObjectBuilderImpl implements BinaryObjectBuilder {
*/
public BinaryObjectBuilderImpl(BinaryObjectImpl obj) {
this(new BinaryBuilderReader(obj), obj.start());
- isHashCodeSet = !obj.isFlagSet(BinaryUtils.FLAG_EMPTY_HASH_CODE);
reader.registerObject(this);
}
@@ -143,7 +136,6 @@ public class BinaryObjectBuilderImpl implements BinaryObjectBuilder {
int typeId = reader.readIntPositioned(start + GridBinaryMarshaller.TYPE_ID_POS);
ctx = reader.binaryContext();
- hashCode = reader.readIntPositioned(start + GridBinaryMarshaller.HASH_CODE_POS);
if (typeId == GridBinaryMarshaller.UNREGISTERED_TYPE_ID) {
int mark = reader.position();
@@ -338,7 +330,7 @@ public class BinaryObjectBuilderImpl implements BinaryObjectBuilder {
}
//noinspection NumberEquality
- writer.postWrite(true, registeredType, hashCode, isHashCodeSet);
+ writer.postWrite(true, registeredType);
// Update metadata if needed.
int schemaId = writer.schemaId();
@@ -432,16 +424,6 @@ public class BinaryObjectBuilderImpl implements BinaryObjectBuilder {
return fieldsMeta;
}
- /** {@inheritDoc} */
- @SuppressWarnings("UnnecessaryBoxing")
- @Override public BinaryObjectBuilderImpl hashCode(int hashCode) {
- this.hashCode = hashCode;
-
- isHashCodeSet = true;
-
- return this;
- }
-
/**
* Get field position and length.
*
http://git-wip-us.apache.org/repos/asf/ignite/blob/24f90d6d/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheUtils.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheUtils.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheUtils.java
index 7131612..bce054a 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheUtils.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheUtils.java
@@ -1115,10 +1115,6 @@ public class GridCacheUtils {
if (!U.overridesEqualsAndHashCode(key))
throw new IllegalArgumentException("Cache key must override hashCode() and equals() methods: " +
key.getClass().getName());
-
- if (U.isHashCodeEmpty(key))
- throw new IllegalArgumentException("Cache key created with BinaryBuilder is missing hash code - " +
- "please set it explicitly during building by using BinaryBuilder.hashCode(int)");
}
/**
http://git-wip-us.apache.org/repos/asf/ignite/blob/24f90d6d/modules/core/src/main/java/org/apache/ignite/internal/util/IgniteUtils.java
----------------------------------------------------------------------
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 4620f12..2106bd4 100644
--- 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
@@ -8539,16 +8539,6 @@ public abstract class IgniteUtils {
}
/**
- * @param obj Object.
- * @return {@code True} if given object is a {@link BinaryObjectEx} and
- * has {@link BinaryUtils#FLAG_EMPTY_HASH_CODE} set
- */
- public static boolean isHashCodeEmpty(Object obj) {
- return obj != null && obj instanceof BinaryObjectEx &&
- ((BinaryObjectEx)obj).isFlagSet(BinaryUtils.FLAG_EMPTY_HASH_CODE);
- }
-
- /**
* Checks if error is MAC invalid argument error which ususally requires special handling.
*
* @param e Exception.
http://git-wip-us.apache.org/repos/asf/ignite/blob/24f90d6d/modules/core/src/test/java/org/apache/ignite/internal/binary/BinaryMarshallerSelfTest.java
----------------------------------------------------------------------
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 1cac1a8..ee72919 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
@@ -695,8 +695,6 @@ public class BinaryMarshallerSelfTest extends GridCommonAbstractTest {
BinaryObject po = marshal(obj, marsh);
- assertEquals(obj.hashCode(), po.hashCode());
-
assertEquals(obj, po.deserialize());
assertEquals(obj.b, (byte)po.field("b"));
@@ -781,8 +779,6 @@ public class BinaryMarshallerSelfTest extends GridCommonAbstractTest {
BinaryObject po = marshal(obj, marsh);
- assertEquals(obj.hashCode(), po.hashCode());
-
assertEquals(obj, po.deserialize());
assertEquals(obj.b, (byte)po.field("_b"));
http://git-wip-us.apache.org/repos/asf/ignite/blob/24f90d6d/modules/core/src/test/java/org/apache/ignite/internal/binary/BinaryObjectBuilderAdditionalSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/binary/BinaryObjectBuilderAdditionalSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/binary/BinaryObjectBuilderAdditionalSelfTest.java
index 100f109..09f1c39 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/binary/BinaryObjectBuilderAdditionalSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/binary/BinaryObjectBuilderAdditionalSelfTest.java
@@ -49,6 +49,7 @@ import junit.framework.TestCase;
import org.apache.ignite.IgniteBinary;
import org.apache.ignite.IgniteCache;
import org.apache.ignite.IgniteCheckedException;
+import org.apache.ignite.binary.BinaryArrayIdentityResolver;
import org.apache.ignite.binary.BinaryObject;
import org.apache.ignite.binary.BinaryObjectBuilder;
import org.apache.ignite.binary.BinaryObjectException;
@@ -896,11 +897,9 @@ public class BinaryObjectBuilderAdditionalSelfTest extends GridCommonAbstractTes
BinaryObjectBuilderImpl mutableObj = wrap(obj);
- assertEquals(obj.hashCode(), mutableObj.build().hashCode());
+ BinaryObject bo = mutableObj.build();
- mutableObj.hashCode(25);
-
- assertEquals(25, mutableObj.build().hashCode());
+ assertEquals(BinaryArrayIdentityResolver.instance().hashCode(bo), bo.hashCode());
}
/**
@@ -1377,7 +1376,7 @@ public class BinaryObjectBuilderAdditionalSelfTest extends GridCommonAbstractTes
jcache(0, "partitioned").withKeepBinary();
BinaryObjectBuilder keyBuilder = ignite(0).binary().builder("keyType")
- .setField("F1", "V1").hashCode("V1".hashCode());
+ .setField("F1", "V1");
BinaryObjectBuilder valBuilder = ignite(0).binary().builder("valueType")
.setField("F2", "V2")
http://git-wip-us.apache.org/repos/asf/ignite/blob/24f90d6d/modules/core/src/test/java/org/apache/ignite/internal/binary/BinaryObjectBuilderDefaultMappersSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/binary/BinaryObjectBuilderDefaultMappersSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/binary/BinaryObjectBuilderDefaultMappersSelfTest.java
index a4388a1..a4d9860 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/binary/BinaryObjectBuilderDefaultMappersSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/binary/BinaryObjectBuilderDefaultMappersSelfTest.java
@@ -29,6 +29,7 @@ import java.util.UUID;
import junit.framework.TestCase;
import org.apache.ignite.IgniteBinary;
import org.apache.ignite.IgniteCheckedException;
+import org.apache.ignite.binary.BinaryArrayIdentityResolver;
import org.apache.ignite.binary.BinaryIdMapper;
import org.apache.ignite.binary.BinaryNameMapper;
import org.apache.ignite.binary.BinaryObject;
@@ -132,8 +133,6 @@ public class BinaryObjectBuilderDefaultMappersSelfTest extends GridCommonAbstrac
public void testNullField() throws Exception {
BinaryObjectBuilder builder = builder("Class");
- builder.hashCode(42);
-
builder.setField("objField", (Object)null);
builder.setField("otherField", "value");
@@ -142,7 +141,7 @@ public class BinaryObjectBuilderDefaultMappersSelfTest extends GridCommonAbstrac
assertNull(obj.field("objField"));
assertEquals("value", obj.field("otherField"));
- assertEquals(42, obj.hashCode());
+ assertEquals(BinaryArrayIdentityResolver.instance().hashCode(obj), obj.hashCode());
builder = builder(obj);
@@ -153,7 +152,7 @@ public class BinaryObjectBuilderDefaultMappersSelfTest extends GridCommonAbstrac
assertNull(obj.field("otherField"));
assertEquals("value", obj.field("objField"));
- assertEquals(42, obj.hashCode());
+ assertEquals(BinaryArrayIdentityResolver.instance().hashCode(obj), obj.hashCode());
}
/**
@@ -162,14 +161,12 @@ public class BinaryObjectBuilderDefaultMappersSelfTest extends GridCommonAbstrac
public void testByteField() throws Exception {
BinaryObjectBuilder builder = builder("Class");
- builder.hashCode(100);
-
builder.setField("byteField", (byte)1);
BinaryObject po = builder.build();
assertEquals(expectedHashCode("Class"), po.type().typeId());
- assertEquals(100, po.hashCode());
+ assertEquals(BinaryArrayIdentityResolver.instance().hashCode(po), po.hashCode());
assertEquals((byte) 1, po.<Byte>field("byteField").byteValue());
}
@@ -180,14 +177,12 @@ public class BinaryObjectBuilderDefaultMappersSelfTest extends GridCommonAbstrac
public void testShortField() throws Exception {
BinaryObjectBuilder builder = builder("Class");
- builder.hashCode(100);
-
builder.setField("shortField", (short)1);
BinaryObject po = builder.build();
assertEquals(expectedHashCode("Class"), po.type().typeId());
- assertEquals(100, po.hashCode());
+ assertEquals(BinaryArrayIdentityResolver.instance().hashCode(po), po.hashCode());
assertEquals((short)1, po.<Short>field("shortField").shortValue());
}
@@ -198,14 +193,12 @@ public class BinaryObjectBuilderDefaultMappersSelfTest extends GridCommonAbstrac
public void testIntField() throws Exception {
BinaryObjectBuilder builder = builder("Class");
- builder.hashCode(100);
-
builder.setField("intField", 1);
BinaryObject po = builder.build();
assertEquals(expectedHashCode("Class"), po.type().typeId());
- assertEquals(100, po.hashCode());
+ assertEquals(BinaryArrayIdentityResolver.instance().hashCode(po), po.hashCode());
assertEquals(1, po.<Integer>field("intField").intValue());
}
@@ -216,14 +209,12 @@ public class BinaryObjectBuilderDefaultMappersSelfTest extends GridCommonAbstrac
public void testLongField() throws Exception {
BinaryObjectBuilder builder = builder("Class");
- builder.hashCode(100);
-
builder.setField("longField", 1L);
BinaryObject po = builder.build();
assertEquals(expectedHashCode("Class"), po.type().typeId());
- assertEquals(100, po.hashCode());
+ assertEquals(BinaryArrayIdentityResolver.instance().hashCode(po), po.hashCode());
assertEquals(1L, po.<Long>field("longField").longValue());
}
@@ -234,14 +225,12 @@ public class BinaryObjectBuilderDefaultMappersSelfTest extends GridCommonAbstrac
public void testFloatField() throws Exception {
BinaryObjectBuilder builder = builder("Class");
- builder.hashCode(100);
-
builder.setField("floatField", 1.0f);
BinaryObject po = builder.build();
assertEquals(expectedHashCode("Class"), po.type().typeId());
- assertEquals(100, po.hashCode());
+ assertEquals(BinaryArrayIdentityResolver.instance().hashCode(po), po.hashCode());
assertEquals(1.0f, po.<Float>field("floatField").floatValue(), 0);
}
@@ -252,14 +241,12 @@ public class BinaryObjectBuilderDefaultMappersSelfTest extends GridCommonAbstrac
public void testDoubleField() throws Exception {
BinaryObjectBuilder builder = builder("Class");
- builder.hashCode(100);
-
builder.setField("doubleField", 1.0d);
BinaryObject po = builder.build();
assertEquals(expectedHashCode("Class"), po.type().typeId());
- assertEquals(100, po.hashCode());
+ assertEquals(BinaryArrayIdentityResolver.instance().hashCode(po), po.hashCode());
assertEquals(1.0d, po.<Double>field("doubleField").doubleValue(), 0);
}
@@ -270,14 +257,12 @@ public class BinaryObjectBuilderDefaultMappersSelfTest extends GridCommonAbstrac
public void testCharField() throws Exception {
BinaryObjectBuilder builder = builder("Class");
- builder.hashCode(100);
-
builder.setField("charField", (char)1);
BinaryObject po = builder.build();
assertEquals(expectedHashCode("Class"), po.type().typeId());
- assertEquals(100, po.hashCode());
+ assertEquals(BinaryArrayIdentityResolver.instance().hashCode(po), po.hashCode());
assertEquals((char)1, po.<Character>field("charField").charValue());
}
@@ -305,14 +290,12 @@ public class BinaryObjectBuilderDefaultMappersSelfTest extends GridCommonAbstrac
public void testBooleanField() throws Exception {
BinaryObjectBuilder builder = builder("Class");
- builder.hashCode(100);
-
builder.setField("booleanField", true);
BinaryObject po = builder.build();
assertEquals(expectedHashCode("Class"), po.type().typeId());
- assertEquals(100, po.hashCode());
+ assertEquals(BinaryArrayIdentityResolver.instance().hashCode(po), po.hashCode());
assertTrue(po.<Boolean>field("booleanField"));
}
@@ -323,14 +306,12 @@ public class BinaryObjectBuilderDefaultMappersSelfTest extends GridCommonAbstrac
public void testDecimalField() throws Exception {
BinaryObjectBuilder builder = builder("Class");
- builder.hashCode(100);
-
builder.setField("decimalField", BigDecimal.TEN);
BinaryObject po = builder.build();
assertEquals(expectedHashCode("Class"), po.type().typeId());
- assertEquals(100, po.hashCode());
+ assertEquals(BinaryArrayIdentityResolver.instance().hashCode(po), po.hashCode());
assertEquals(BigDecimal.TEN, po.<BigDecimal>field("decimalField"));
}
@@ -341,14 +322,12 @@ public class BinaryObjectBuilderDefaultMappersSelfTest extends GridCommonAbstrac
public void testStringField() throws Exception {
BinaryObjectBuilder builder = builder("Class");
- builder.hashCode(100);
-
builder.setField("stringField", "str");
BinaryObject po = builder.build();
assertEquals(expectedHashCode("Class"), po.type().typeId());
- assertEquals(100, po.hashCode());
+ assertEquals(BinaryArrayIdentityResolver.instance().hashCode(po), po.hashCode());
assertEquals("str", po.<String>field("stringField"));
}
@@ -378,8 +357,6 @@ public class BinaryObjectBuilderDefaultMappersSelfTest extends GridCommonAbstrac
public void testUuidField() throws Exception {
BinaryObjectBuilder builder = builder("Class");
- builder.hashCode(100);
-
UUID uuid = UUID.randomUUID();
builder.setField("uuidField", uuid);
@@ -387,7 +364,7 @@ public class BinaryObjectBuilderDefaultMappersSelfTest extends GridCommonAbstrac
BinaryObject po = builder.build();
assertEquals(expectedHashCode("Class"), po.type().typeId());
- assertEquals(100, po.hashCode());
+ assertEquals(BinaryArrayIdentityResolver.instance().hashCode(po), po.hashCode());
assertEquals(uuid, po.<UUID>field("uuidField"));
}
@@ -398,14 +375,12 @@ public class BinaryObjectBuilderDefaultMappersSelfTest extends GridCommonAbstrac
public void testByteArrayField() throws Exception {
BinaryObjectBuilder builder = builder("Class");
- builder.hashCode(100);
-
builder.setField("byteArrayField", new byte[] {1, 2, 3});
BinaryObject po = builder.build();
assertEquals(expectedHashCode("Class"), po.type().typeId());
- assertEquals(100, po.hashCode());
+ assertEquals(BinaryArrayIdentityResolver.instance().hashCode(po), po.hashCode());
assertTrue(Arrays.equals(new byte[] {1, 2, 3}, po.<byte[]>field("byteArrayField")));
}
@@ -416,14 +391,12 @@ public class BinaryObjectBuilderDefaultMappersSelfTest extends GridCommonAbstrac
public void testShortArrayField() throws Exception {
BinaryObjectBuilder builder = builder("Class");
- builder.hashCode(100);
-
builder.setField("shortArrayField", new short[] {1, 2, 3});
BinaryObject po = builder.build();
assertEquals(expectedHashCode("Class"), po.type().typeId());
- assertEquals(100, po.hashCode());
+ assertEquals(BinaryArrayIdentityResolver.instance().hashCode(po), po.hashCode());
assertTrue(Arrays.equals(new short[] {1, 2, 3}, po.<short[]>field("shortArrayField")));
}
@@ -434,14 +407,12 @@ public class BinaryObjectBuilderDefaultMappersSelfTest extends GridCommonAbstrac
public void testIntArrayField() throws Exception {
BinaryObjectBuilder builder = builder("Class");
- builder.hashCode(100);
-
builder.setField("intArrayField", new int[] {1, 2, 3});
BinaryObject po = builder.build();
assertEquals(expectedHashCode("Class"), po.type().typeId());
- assertEquals(100, po.hashCode());
+ assertEquals(BinaryArrayIdentityResolver.instance().hashCode(po), po.hashCode());
assertTrue(Arrays.equals(new int[] {1, 2, 3}, po.<int[]>field("intArrayField")));
}
@@ -452,14 +423,12 @@ public class BinaryObjectBuilderDefaultMappersSelfTest extends GridCommonAbstrac
public void testLongArrayField() throws Exception {
BinaryObjectBuilder builder = builder("Class");
- builder.hashCode(100);
-
builder.setField("longArrayField", new long[] {1, 2, 3});
BinaryObject po = builder.build();
assertEquals(expectedHashCode("Class"), po.type().typeId());
- assertEquals(100, po.hashCode());
+ assertEquals(BinaryArrayIdentityResolver.instance().hashCode(po), po.hashCode());
assertTrue(Arrays.equals(new long[] {1, 2, 3}, po.<long[]>field("longArrayField")));
}
@@ -470,14 +439,12 @@ public class BinaryObjectBuilderDefaultMappersSelfTest extends GridCommonAbstrac
public void testFloatArrayField() throws Exception {
BinaryObjectBuilder builder = builder("Class");
- builder.hashCode(100);
-
builder.setField("floatArrayField", new float[] {1, 2, 3});
BinaryObject po = builder.build();
assertEquals(expectedHashCode("Class"), po.type().typeId());
- assertEquals(100, po.hashCode());
+ assertEquals(BinaryArrayIdentityResolver.instance().hashCode(po), po.hashCode());
assertTrue(Arrays.equals(new float[] {1, 2, 3}, po.<float[]>field("floatArrayField")));
}
@@ -488,14 +455,12 @@ public class BinaryObjectBuilderDefaultMappersSelfTest extends GridCommonAbstrac
public void testDoubleArrayField() throws Exception {
BinaryObjectBuilder builder = builder("Class");
- builder.hashCode(100);
-
builder.setField("doubleArrayField", new double[] {1, 2, 3});
BinaryObject po = builder.build();
assertEquals(expectedHashCode("Class"), po.type().typeId());
- assertEquals(100, po.hashCode());
+ assertEquals(BinaryArrayIdentityResolver.instance().hashCode(po), po.hashCode());
assertTrue(Arrays.equals(new double[] {1, 2, 3}, po.<double[]>field("doubleArrayField")));
}
@@ -506,14 +471,12 @@ public class BinaryObjectBuilderDefaultMappersSelfTest extends GridCommonAbstrac
public void testCharArrayField() throws Exception {
BinaryObjectBuilder builder = builder("Class");
- builder.hashCode(100);
-
builder.setField("charArrayField", new char[] {1, 2, 3});
BinaryObject po = builder.build();
assertEquals(expectedHashCode("Class"), po.type().typeId());
- assertEquals(100, po.hashCode());
+ assertEquals(BinaryArrayIdentityResolver.instance().hashCode(po), po.hashCode());
assertTrue(Arrays.equals(new char[] {1, 2, 3}, po.<char[]>field("charArrayField")));
}
@@ -524,14 +487,12 @@ public class BinaryObjectBuilderDefaultMappersSelfTest extends GridCommonAbstrac
public void testBooleanArrayField() throws Exception {
BinaryObjectBuilder builder = builder("Class");
- builder.hashCode(100);
-
builder.setField("booleanArrayField", new boolean[] {true, false});
BinaryObject po = builder.build();
assertEquals(expectedHashCode("Class"), po.type().typeId());
- assertEquals(100, po.hashCode());
+ assertEquals(BinaryArrayIdentityResolver.instance().hashCode(po), po.hashCode());
boolean[] arr = po.field("booleanArrayField");
@@ -547,14 +508,12 @@ public class BinaryObjectBuilderDefaultMappersSelfTest extends GridCommonAbstrac
public void testDecimalArrayField() throws Exception {
BinaryObjectBuilder builder = builder("Class");
- builder.hashCode(100);
-
builder.setField("decimalArrayField", new BigDecimal[] {BigDecimal.ONE, BigDecimal.TEN});
BinaryObject po = builder.build();
assertEquals(expectedHashCode("Class"), po.type().typeId());
- assertEquals(100, po.hashCode());
+ assertEquals(BinaryArrayIdentityResolver.instance().hashCode(po), po.hashCode());
assertTrue(Arrays.equals(new BigDecimal[] {BigDecimal.ONE, BigDecimal.TEN}, po.<String[]>field("decimalArrayField")));
}
@@ -565,14 +524,12 @@ public class BinaryObjectBuilderDefaultMappersSelfTest extends GridCommonAbstrac
public void testStringArrayField() throws Exception {
BinaryObjectBuilder builder = builder("Class");
- builder.hashCode(100);
-
builder.setField("stringArrayField", new String[] {"str1", "str2", "str3"});
BinaryObject po = builder.build();
assertEquals(expectedHashCode("Class"), po.type().typeId());
- assertEquals(100, po.hashCode());
+ assertEquals(BinaryArrayIdentityResolver.instance().hashCode(po), po.hashCode());
assertTrue(Arrays.equals(new String[] {"str1", "str2", "str3"}, po.<String[]>field("stringArrayField")));
}
@@ -610,8 +567,6 @@ public class BinaryObjectBuilderDefaultMappersSelfTest extends GridCommonAbstrac
public void testUuidArrayField() throws Exception {
BinaryObjectBuilder builder = builder("Class");
- builder.hashCode(100);
-
UUID[] arr = new UUID[] {UUID.randomUUID(), UUID.randomUUID()};
builder.setField("uuidArrayField", arr);
@@ -619,7 +574,7 @@ public class BinaryObjectBuilderDefaultMappersSelfTest extends GridCommonAbstrac
BinaryObject po = builder.build();
assertEquals(expectedHashCode("Class"), po.type().typeId());
- assertEquals(100, po.hashCode());
+ assertEquals(BinaryArrayIdentityResolver.instance().hashCode(po), po.hashCode());
assertTrue(Arrays.equals(arr, po.<UUID[]>field("uuidArrayField")));
}
@@ -630,14 +585,12 @@ public class BinaryObjectBuilderDefaultMappersSelfTest extends GridCommonAbstrac
public void testObjectField() throws Exception {
BinaryObjectBuilder builder = builder("Class");
- builder.hashCode(100);
-
builder.setField("objectField", new Value(1));
BinaryObject po = builder.build();
assertEquals(expectedHashCode("Class"), po.type().typeId());
- assertEquals(100, po.hashCode());
+ assertEquals(BinaryArrayIdentityResolver.instance().hashCode(po), po.hashCode());
assertEquals(1, po.<BinaryObject>field("objectField").<Value>deserialize().i);
}
@@ -648,14 +601,12 @@ public class BinaryObjectBuilderDefaultMappersSelfTest extends GridCommonAbstrac
public void testObjectArrayField() throws Exception {
BinaryObjectBuilder builder = builder("Class");
- builder.hashCode(100);
-
builder.setField("objectArrayField", new Value[] {new Value(1), new Value(2)});
BinaryObject po = builder.build();
assertEquals(expectedHashCode("Class"), po.type().typeId());
- assertEquals(100, po.hashCode());
+ assertEquals(BinaryArrayIdentityResolver.instance().hashCode(po), po.hashCode());
Object[] arr = po.field("objectArrayField");
@@ -671,15 +622,13 @@ public class BinaryObjectBuilderDefaultMappersSelfTest extends GridCommonAbstrac
public void testCollectionField() throws Exception {
BinaryObjectBuilder builder = builder("Class");
- builder.hashCode(100);
-
builder.setField("collectionField", Arrays.asList(new Value(1), new Value(2)));
builder.setField("collectionField2", Arrays.asList(new Value(1), new Value(2)), Collection.class);
BinaryObject po = builder.build();
assertEquals(expectedHashCode("Class"), po.type().typeId());
- assertEquals(100, po.hashCode());
+ assertEquals(BinaryArrayIdentityResolver.instance().hashCode(po), po.hashCode());
List<Value> list = po.field("collectionField");
@@ -700,15 +649,13 @@ public class BinaryObjectBuilderDefaultMappersSelfTest extends GridCommonAbstrac
public void testMapField() throws Exception {
BinaryObjectBuilder builder = builder("Class");
- builder.hashCode(100);
-
builder.setField("mapField", F.asMap(new Key(1), new Value(1), new Key(2), new Value(2)));
builder.setField("mapField2", F.asMap(new Key(1), new Value(1), new Key(2), new Value(2)), Map.class);
BinaryObject po = builder.build();
assertEquals(expectedHashCode("Class"), po.type().typeId());
- assertEquals(100, po.hashCode());
+ assertEquals(BinaryArrayIdentityResolver.instance().hashCode(po), po.hashCode());
// Test non-standard map.
Map<Key, Value> map = po.field("mapField");
@@ -733,8 +680,6 @@ public class BinaryObjectBuilderDefaultMappersSelfTest extends GridCommonAbstrac
public void testSeveralFields() throws Exception {
BinaryObjectBuilder builder = builder("Class");
- builder.hashCode(100);
-
builder.setField("i", 111);
builder.setField("f", 111.111f);
builder.setField("iArr", new int[] {1, 2, 3});
@@ -744,7 +689,7 @@ public class BinaryObjectBuilderDefaultMappersSelfTest extends GridCommonAbstrac
BinaryObject po = builder.build();
assertEquals(expectedHashCode("Class"), po.type().typeId());
- assertEquals(100, po.hashCode());
+ assertEquals(BinaryArrayIdentityResolver.instance().hashCode(po), po.hashCode());
assertEquals(111, po.<Integer>field("i").intValue());
assertEquals(111.111f, po.<Float>field("f").floatValue(), 0);
@@ -765,8 +710,6 @@ public class BinaryObjectBuilderDefaultMappersSelfTest extends GridCommonAbstrac
public void testOffheapBinary() throws Exception {
BinaryObjectBuilder builder = builder("Class");
- builder.hashCode(100);
-
builder.setField("i", 111);
builder.setField("f", 111.111f);
builder.setField("iArr", new int[] {1, 2, 3});
@@ -799,7 +742,7 @@ public class BinaryObjectBuilderDefaultMappersSelfTest extends GridCommonAbstrac
assertEquals(BinaryObjectOffheapImpl.class, offheapObj.getClass());
assertEquals(expectedHashCode("Class"), offheapObj.type().typeId());
- assertEquals(100, offheapObj.hashCode());
+ assertEquals(BinaryArrayIdentityResolver.instance().hashCode(po), offheapObj.hashCode());
assertEquals(111, offheapObj.<Integer>field("i").intValue());
assertEquals(111.111f, offheapObj.<Float>field("f").floatValue(), 0);
@@ -827,14 +770,12 @@ public class BinaryObjectBuilderDefaultMappersSelfTest extends GridCommonAbstrac
public void testBuildAndDeserialize() throws Exception {
BinaryObjectBuilder builder = builder(Value.class.getName());
- builder.hashCode(100);
-
builder.setField("i", 1);
BinaryObject bo = builder.build();
assertEquals(expectedHashCode(Value.class.getName()), bo.type().typeId());
- assertEquals(100, bo.hashCode());
+ assertEquals(BinaryArrayIdentityResolver.instance().hashCode(bo), bo.hashCode());
assertEquals(1, bo.<Value>deserialize().i);
}
@@ -874,8 +815,6 @@ public class BinaryObjectBuilderDefaultMappersSelfTest extends GridCommonAbstrac
public void testMetaData() throws Exception {
BinaryObjectBuilder builder = builder("org.test.MetaTest");
- builder.hashCode(100);
-
builder.setField("intField", 1);
builder.setField("byteArrayField", new byte[] {1, 2, 3});
@@ -897,8 +836,6 @@ public class BinaryObjectBuilderDefaultMappersSelfTest extends GridCommonAbstrac
builder = builder("org.test.MetaTest");
- builder.hashCode(100);
-
builder.setField("intField", 2);
builder.setField("uuidField", UUID.randomUUID());
http://git-wip-us.apache.org/repos/asf/ignite/blob/24f90d6d/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheStoreManagerDeserializationTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheStoreManagerDeserializationTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheStoreManagerDeserializationTest.java
index 2c22758..73d01fe 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheStoreManagerDeserializationTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheStoreManagerDeserializationTest.java
@@ -279,7 +279,6 @@ public class GridCacheStoreManagerDeserializationTest extends GridCommonAbstract
for (int i = 0; i < 1; i++) {
builder.setField("id", i);
- builder.hashCode(i);
entity = builder.build();
http://git-wip-us.apache.org/repos/asf/ignite/blob/24f90d6d/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheUtilsSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheUtilsSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheUtilsSelfTest.java
index d30aad5..e28daf3 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheUtilsSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheUtilsSelfTest.java
@@ -143,10 +143,6 @@ public class GridCacheUtilsSelfTest extends GridCommonAbstractTest {
BinaryObjectBuilderImpl binBuilder = new BinaryObjectBuilderImpl(binaryContext(),
EqualsAndHashCode.class.getName());
- assertThrowsForInvalidKey(binBuilder.build());
-
- binBuilder.hashCode(0xFE12);
-
BinaryObject binObj = binBuilder.build();
CU.validateCacheKey(binObj);
http://git-wip-us.apache.org/repos/asf/ignite/blob/24f90d6d/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridLocalCacheStoreManagerDeserializationTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridLocalCacheStoreManagerDeserializationTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridLocalCacheStoreManagerDeserializationTest.java
index b86fe53..827b3cf 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridLocalCacheStoreManagerDeserializationTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridLocalCacheStoreManagerDeserializationTest.java
@@ -86,7 +86,7 @@ public class GridLocalCacheStoreManagerDeserializationTest extends GridCacheStor
final BinaryObjectBuilder builder = grid.binary().builder("custom_type");
- final BinaryObject entity = builder.setField("id", 0).hashCode(0).build();
+ final BinaryObject entity = builder.setField("id", 0).build();
cache.put(entity, entity);
http://git-wip-us.apache.org/repos/asf/ignite/blob/24f90d6d/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheBinaryObjectsScanSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheBinaryObjectsScanSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheBinaryObjectsScanSelfTest.java
index fbc065d..666505b 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheBinaryObjectsScanSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheBinaryObjectsScanSelfTest.java
@@ -127,7 +127,7 @@ public class IgniteCacheBinaryObjectsScanSelfTest extends GridCommonAbstractTest
assertEquals(PERSON_CLS_NAME, entry.getValue().getClass().getName());
}
- entries = cache.query(new ScanQuery<>(1)).getAll();
+ entries = cache.query(new ScanQuery<>(1023)).getAll();
assertFalse(entries.isEmpty());
http://git-wip-us.apache.org/repos/asf/ignite/blob/24f90d6d/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/binary/GridCacheBinaryObjectsAbstractSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/binary/GridCacheBinaryObjectsAbstractSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/binary/GridCacheBinaryObjectsAbstractSelfTest.java
index f3b14b1..ea151be 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/binary/GridCacheBinaryObjectsAbstractSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/binary/GridCacheBinaryObjectsAbstractSelfTest.java
@@ -926,42 +926,6 @@ public abstract class GridCacheBinaryObjectsAbstractSelfTest extends GridCommonA
}
/**
- * @throws Exception If failed.
- */
- @SuppressWarnings({ "ThrowableResultOfMethodCallIgnored", "unchecked" })
- public void testPutWithoutHashCode() throws Exception {
- final IgniteCache c = jcache(0);
-
- GridCacheAdapter<Object, Object> cache0 = grid(0).context().cache().internalCache(null);
-
- cache0.forceKeyCheck();
-
- GridTestUtils.assertThrows(log, new Callable<Object>() {
- /** {@inheritDoc} */
- @Override public Object call() throws Exception {
- c.put(new TestObject(5), 5);
- return null;
- }
- }, IllegalArgumentException.class, "Cache key must override hashCode() and equals() methods: ");
-
- BinaryObjectBuilder bldr = grid(0).binary().builder(TestObject.class.getName());
- bldr.setField("val", 5);
-
- final BinaryObject binKey = bldr.build();
-
- cache0.forceKeyCheck();
-
- GridTestUtils.assertThrows(log, new Callable<Object>() {
- /** {@inheritDoc} */
- @Override public Object call() throws Exception {
- c.put(binKey, 5);
- return null;
- }
- }, IllegalArgumentException.class, "Cache key created with BinaryBuilder is missing hash code - " +
- "please set it explicitly during building by using BinaryBuilder.hashCode(int)");
- }
-
- /**
*
*/
@SuppressWarnings("unchecked")
http://git-wip-us.apache.org/repos/asf/ignite/blob/24f90d6d/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/query/continuous/CacheContinuousQueryVariationsTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/query/continuous/CacheContinuousQueryVariationsTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/query/continuous/CacheContinuousQueryVariationsTest.java
index bd5a122..ab086bc 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/query/continuous/CacheContinuousQueryVariationsTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/query/continuous/CacheContinuousQueryVariationsTest.java
@@ -713,6 +713,11 @@ public class CacheContinuousQueryVariationsTest extends IgniteCacheConfigVariati
cache.remove(key);
cache.remove(key);
+ //Wait when remove event will be added to evts
+ while (evts.size() != 10) {
+ Thread.sleep(100);
+ }
+
evts.clear();
log.info("Finish iteration: " + i);
http://git-wip-us.apache.org/repos/asf/ignite/blob/24f90d6d/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/DmlStatementsProcessor.java
----------------------------------------------------------------------
diff --git a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/DmlStatementsProcessor.java b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/DmlStatementsProcessor.java
index cbf39f6..c064fa1 100644
--- a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/DmlStatementsProcessor.java
+++ b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/DmlStatementsProcessor.java
@@ -41,7 +41,6 @@ import org.apache.ignite.IgniteCache;
import org.apache.ignite.IgniteCheckedException;
import org.apache.ignite.IgniteDataStreamer;
import org.apache.ignite.IgniteException;
-import org.apache.ignite.binary.BinaryArrayIdentityResolver;
import org.apache.ignite.binary.BinaryObject;
import org.apache.ignite.binary.BinaryObjectBuilder;
import org.apache.ignite.cache.query.SqlFieldsQuery;
@@ -979,45 +978,11 @@ public class DmlStatementsProcessor {
if (val instanceof BinaryObjectBuilder)
val = ((BinaryObjectBuilder) val).build();
-
- if (key instanceof BinaryObject)
- key = updateHashCodeIfNeeded(cctx, (BinaryObject) key);
-
- if (val instanceof BinaryObject)
- val = updateHashCodeIfNeeded(cctx, (BinaryObject) val);
}
return new IgniteBiTuple<>(key, val);
}
- /**
- * Set hash code to binary object if it does not have one.
- *
- * @param cctx Cache context.
- * @param binObj Binary object.
- * @return Binary object with hash code set.
- */
- private BinaryObject updateHashCodeIfNeeded(GridCacheContext cctx, BinaryObject binObj) {
- if (U.isHashCodeEmpty(binObj)) {
- if (WARNED_TYPES.add(binObj.type().typeId()))
- U.warn(indexing.getLogger(), "Binary object's type does not have identity resolver explicitly set, therefore " +
- "BinaryArrayIdentityResolver is used to generate hash codes for its instances, and therefore " +
- "hash code of this binary object will most likely not match that of its non serialized form. " +
- "For finer control over identity of this type, please update your BinaryConfiguration accordingly." +
- " [typeId=" + binObj.type().typeId() + ", typeName=" + binObj.type().typeName() + ']');
-
- int hash = BinaryArrayIdentityResolver.instance().hashCode(binObj);
-
- // Empty hash code means no identity set for the type, therefore, we can safely set hash code
- // via this Builder as it won't be overwritten.
- return cctx.grid().binary().builder(binObj)
- .hashCode(hash)
- .build();
- }
- else
- return binObj;
- }
-
/** */
private final static class InsertEntryProcessor implements EntryProcessor<Object, Object, Boolean> {
/** Value to set. */
http://git-wip-us.apache.org/repos/asf/ignite/blob/24f90d6d/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/IgniteH2Indexing.java
----------------------------------------------------------------------
diff --git a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/IgniteH2Indexing.java b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/IgniteH2Indexing.java
index b0d3850..79121e4 100644
--- a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/IgniteH2Indexing.java
+++ b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/IgniteH2Indexing.java
@@ -1967,11 +1967,6 @@ public class IgniteH2Indexing implements GridQueryIndexing {
SysProperties.serializeJavaObject = false;
}
- if (JdbcUtils.serializer != null)
- U.warn(log, "Custom H2 serialization is already configured, will override.");
-
- JdbcUtils.serializer = h2Serializer();
-
String dbName = (ctx != null ? ctx.localNodeId() : UUID.randomUUID()).toString();
dbUrl = "jdbc:h2:mem:" + dbName + DB_OPTIONS;
@@ -2027,6 +2022,11 @@ public class IgniteH2Indexing implements GridQueryIndexing {
}, CLEANUP_STMT_CACHE_PERIOD, CLEANUP_STMT_CACHE_PERIOD);
}
+ if (JdbcUtils.serializer != null)
+ U.warn(log, "Custom H2 serialization is already configured, will override.");
+
+ JdbcUtils.serializer = h2Serializer();
+
// TODO https://issues.apache.org/jira/browse/IGNITE-2139
// registerMBean(igniteInstanceName, this, GridH2IndexingSpiMBean.class);
}
@@ -2122,16 +2122,16 @@ public class IgniteH2Indexing implements GridQueryIndexing {
*/
private JavaObjectSerializer h2Serializer() {
return new JavaObjectSerializer() {
- @Override public byte[] serialize(Object obj) throws Exception {
- return U.marshal(marshaller, obj);
- }
+ @Override public byte[] serialize(Object obj) throws Exception {
+ return U.marshal(marshaller, obj);
+ }
- @Override public Object deserialize(byte[] bytes) throws Exception {
- ClassLoader clsLdr = ctx != null ? U.resolveClassLoader(ctx.config()) : null;
+ @Override public Object deserialize(byte[] bytes) throws Exception {
+ ClassLoader clsLdr = ctx != null ? U.resolveClassLoader(ctx.config()) : null;
- return U.unmarshal(marshaller, bytes, clsLdr);
- }
- };
+ return U.unmarshal(marshaller, bytes, clsLdr);
+ }
+ };
}
/**