This is an automated email from the ASF dual-hosted git repository. pivotalsarge pushed a commit to branch develop in repository https://gitbox.apache.org/repos/asf/geode.git
The following commit(s) were added to refs/heads/develop by this push: new 804c053 GEODE-4518: Replace DSCODE with an enumeration. (#1738) 804c053 is described below commit 804c053fdfbce4b7f1f810b1019f778c02f50020 Author: Michael "Sarge" Dodge <mdo...@pivotal.io> AuthorDate: Fri Apr 6 11:52:09 2018 -0700 GEODE-4518: Replace DSCODE with an enumeration. (#1738) * GEODE-4518: Replace DSCODE with an enumeration. - Deprecate DSCODE interface. - Introduce HeaderByte enum. - Replace explicit references to DSCODE with explicit references to HeaderByte. * GEODE-4518: Update analysis files. * GEODE-4518: Add unit test for value uniqueness. * GEODE-4518: Convert DSCODE into enum that replaces HeaderByte. --- .../main/java/org/apache/geode/DataSerializer.java | 20 +- .../java/org/apache/geode/internal/DSCODE.java | 160 ++--- .../geode/internal/InternalDataSerializer.java | 655 ++++++++++++--------- .../internal/cache/CacheDistributionAdvisor.java | 2 +- .../cache/CachedDeserializableFactory.java | 2 +- .../geode/internal/cache/GemFireCacheImpl.java | 2 +- .../org/apache/geode/internal/cache/Token.java | 2 +- .../cache/snapshot/RegionSnapshotServiceImpl.java | 2 +- .../cache/tier/sockets/ChunkedMessage.java | 4 +- .../tier/sockets/ClientUpdateMessageImpl.java | 4 +- .../cache/tier/sockets/HAEventWrapper.java | 4 +- .../geode/internal/cache/tier/sockets/Part.java | 2 +- .../internal/offheap/AbstractStoredObject.java | 3 +- .../apache/geode/internal/offheap/DataType.java | 403 +++++++------ .../internal/offheap/OffHeapRegionEntryHelper.java | 4 +- .../internal/offheap/OffHeapStoredObject.java | 2 +- .../org/apache/geode/internal/util/BlobHelper.java | 2 +- .../main/java/org/apache/geode/pdx/FieldType.java | 4 +- .../org/apache/geode/pdx/internal/EnumInfo.java | 2 - .../apache/geode/pdx/internal/PdxInstanceEnum.java | 2 +- .../apache/geode/pdx/internal/PdxInstanceImpl.java | 4 +- .../apache/geode/pdx/internal/PdxReaderImpl.java | 7 +- .../org/apache/geode/pdx/internal/PdxString.java | 18 +- .../apache/geode/pdx/internal/PdxWriterImpl.java | 6 +- .../java/org/apache/geode/internal/DSCODETest.java | 39 ++ .../geode/internal/offheap/DataTypeJUnitTest.java | 40 +- .../internal/offheap/MemoryBlockNodeJUnitTest.java | 2 +- .../offheap/OffHeapRegionEntryHelperJUnitTest.java | 2 +- .../offheap/OffHeapStoredObjectJUnitTest.java | 8 +- .../offheap/TinyStoredObjectJUnitTest.java | 3 +- .../apache/geode/pdx/PdxSerializableJUnitTest.java | 20 +- .../apache/geode/codeAnalysis/excludedClasses.txt | 3 +- .../codeAnalysis/sanctionedDataSerializables.txt | 2 +- 33 files changed, 799 insertions(+), 636 deletions(-) diff --git a/geode-core/src/main/java/org/apache/geode/DataSerializer.java b/geode-core/src/main/java/org/apache/geode/DataSerializer.java index 5627b68..c974287 100644 --- a/geode-core/src/main/java/org/apache/geode/DataSerializer.java +++ b/geode-core/src/main/java/org/apache/geode/DataSerializer.java @@ -220,7 +220,7 @@ public abstract class DataSerializer { // if readObject/writeObject is called: // the first CLASS byte indicates it's a Class, the second // one indicates it's a non-primitive Class - out.writeByte(DSCODE.CLASS); + out.writeByte(DSCODE.CLASS.toByte()); String cname = c.getName(); cname = InternalDataSerializer.processOutgoingClassName(cname, out); writeString(cname, out); @@ -260,7 +260,7 @@ public abstract class DataSerializer { InternalDataSerializer.checkIn(in); byte typeCode = in.readByte(); - if (typeCode == DSCODE.CLASS) { + if (typeCode == DSCODE.CLASS.toByte()) { String className = readString(in); Class<?> c = InternalDataSerializer.getCachedClass(className); // fix for bug 41206 return c; @@ -505,7 +505,7 @@ public abstract class DataSerializer { if (isTraceSerialzerVerbose) { logger.trace(LogMarker.SERIALIZER_VERBOSE, "Writing NULL_STRING"); } - out.writeByte(DSCODE.NULL_STRING); + out.writeByte(DSCODE.NULL_STRING.toByte()); } else { // writeUTF is expensive - it creates a char[] to fetch @@ -538,14 +538,14 @@ public abstract class DataSerializer { if (isTraceSerialzerVerbose) { logger.trace(LogMarker.SERIALIZER_VERBOSE, "Writing utf HUGE_STRING of len={}", len); } - out.writeByte(DSCODE.HUGE_STRING); + out.writeByte(DSCODE.HUGE_STRING.toByte()); out.writeInt(len); out.writeChars(value); } else { if (isTraceSerialzerVerbose) { logger.trace(LogMarker.SERIALIZER_VERBOSE, "Writing utf STRING of len={}", len); } - out.writeByte(DSCODE.STRING); + out.writeByte(DSCODE.STRING.toByte()); out.writeUTF(value); } } else { @@ -553,14 +553,14 @@ public abstract class DataSerializer { if (isTraceSerialzerVerbose) { logger.trace(LogMarker.SERIALIZER_VERBOSE, "Writing HUGE_STRING_BYTES of len={}", len); } - out.writeByte(DSCODE.HUGE_STRING_BYTES); + out.writeByte(DSCODE.HUGE_STRING_BYTES.toByte()); out.writeInt(len); out.writeBytes(value); } else { if (isTraceSerialzerVerbose) { logger.trace(LogMarker.SERIALIZER_VERBOSE, "Writing STRING_BYTES of len={}", len); } - out.writeByte(DSCODE.STRING_BYTES); + out.writeByte(DSCODE.STRING_BYTES.toByte()); out.writeShort(len); out.writeBytes(value); } @@ -1833,14 +1833,14 @@ public abstract class DataSerializer { Class<?> c = null; byte typeCode = in.readByte(); String typeString = null; - if (typeCode == DSCODE.CLASS) { + if (typeCode == DSCODE.CLASS.toByte()) { typeString = readString(in); } InternalCache cache = GemFireCacheImpl.getInstance(); boolean lookForPdxInstance = false; ClassNotFoundException cnfEx = null; - if (typeCode == DSCODE.CLASS && cache != null + if (typeCode == DSCODE.CLASS.toByte() && cache != null && cache.getPdxReadSerializedByAnyGemFireServices()) { try { c = InternalDataSerializer.getCachedClass(typeString); @@ -1850,7 +1850,7 @@ public abstract class DataSerializer { cnfEx = ignore; } } else { - if (typeCode == DSCODE.CLASS) { + if (typeCode == DSCODE.CLASS.toByte()) { c = InternalDataSerializer.getCachedClass(typeString); } else { c = InternalDataSerializer.decodePrimitiveClass(typeCode); diff --git a/geode-core/src/main/java/org/apache/geode/internal/DSCODE.java b/geode-core/src/main/java/org/apache/geode/internal/DSCODE.java index b918c4d..e4762d3 100644 --- a/geode-core/src/main/java/org/apache/geode/internal/DSCODE.java +++ b/geode-core/src/main/java/org/apache/geode/internal/DSCODE.java @@ -17,20 +17,20 @@ package org.apache.geode.internal; import org.apache.geode.DataSerializer; /** - * An interface that contains a bunch of static final values used for the implementation of - * {@link DataSerializer}. It is basically an Enum and could be changed to one once we drop 1.4. The - * allowed range of these codes is -128..127 inclusive (i.e. byte). + * An enumeration that contains a bunch of pre-defined values for use in the implementation of + * {@link DataSerializer}. + * The allowed range of these values is -128..127 inclusive (i.e., one byte). * * @since GemFire 5.7 */ -public interface DSCODE { +public enum DSCODE { /** * This byte value, -128, has never been used in any GemFire release so far. It might get used in * the future to introduce DataSerializer versioning. */ - byte RESERVED_FOR_FUTURE_USE = -128; + RESERVED_FOR_FUTURE_USE(-128), - byte ILLEGAL = -127; + ILLEGAL(-127), // -126..0 unused @@ -40,28 +40,28 @@ public interface DSCODE { * * @since GemFire 5.7 */ - byte DS_FIXED_ID_BYTE = 1; + DS_FIXED_ID_BYTE(1), /** * A header byte meaning that the next element in the stream is a {@link DataSerializableFixedID} * whose id is a single signed short. * * @since GemFire 5.7 */ - byte DS_FIXED_ID_SHORT = 2; + DS_FIXED_ID_SHORT(2), /** * A header byte meaning that the next element in the stream is a {@link DataSerializableFixedID} * whose id is a single signed int. * * @since GemFire 5.7 */ - byte DS_FIXED_ID_INT = 3; + DS_FIXED_ID_INT(3), /** * A header byte meaning that the next element in the stream is a {@link DataSerializableFixedID} * whose id is <code>NO_FIXED_ID</code>. * * @since GemFire 5.7 */ - byte DS_NO_FIXED_ID = 4; + DS_NO_FIXED_ID(4), /** * A header byte meaning that the object was serialized by a user's <code>DataSerializer</code> @@ -69,7 +69,7 @@ public interface DSCODE { * * @since GemFire 5.7 */ - byte USER_CLASS_2 = 5; + USER_CLASS_2(5), /** * A header byte meaning that the object was serialized by a user's <code>DataSerializer</code> @@ -77,7 +77,7 @@ public interface DSCODE { * * @since GemFire 5.7 */ - byte USER_CLASS_4 = 6; + USER_CLASS_4(6), // TypeIds 7 and 8 reserved for use by C# Serializable and XmlSerializable. @@ -86,14 +86,14 @@ public interface DSCODE { /** * A header byte meaning that the next element in the stream is a <code>LinkedList</code>. */ - byte LINKED_LIST = 10; + LINKED_LIST(10), /** * A header byte meaning that the next element in the stream is a <code>Properties</code>. * * @since GemFire 5.7 */ - byte PROPERTIES = 11; + PROPERTIES(11), // 12..16 unused @@ -101,24 +101,16 @@ public interface DSCODE { * Codes for the primitive classes, which cannot be recreated with * <code>Class.forName(String,boolean,ClassLoader)</code> like other classes */ - byte BOOLEAN_TYPE = 17; - byte CHARACTER_TYPE = 18; - byte BYTE_TYPE = 19; - byte SHORT_TYPE = 20; - byte INTEGER_TYPE = 21; - byte LONG_TYPE = 22; - byte FLOAT_TYPE = 23; - byte DOUBLE_TYPE = 24; - byte VOID_TYPE = 25; + BOOLEAN_TYPE(17), CHARACTER_TYPE(18), BYTE_TYPE(19), SHORT_TYPE(20), INTEGER_TYPE(21), LONG_TYPE(22), FLOAT_TYPE(23), DOUBLE_TYPE(24), VOID_TYPE(25), /** * @since GemFire 5.7 */ - byte BOOLEAN_ARRAY = 26; + BOOLEAN_ARRAY(26), /** * @since GemFire 5.7 */ - byte CHAR_ARRAY = 27; + CHAR_ARRAY(27), // 28..36 unused @@ -128,7 +120,7 @@ public interface DSCODE { * * @since GemFire 5.7 */ - byte USER_DATA_SERIALIZABLE_4 = 37; + USER_DATA_SERIALIZABLE_4(37), /** * A header byte meaning that a DataSerializable that was registered with the Instantiator was @@ -136,213 +128,213 @@ public interface DSCODE { * * @since GemFire 5.7 */ - byte USER_DATA_SERIALIZABLE_2 = 38; + USER_DATA_SERIALIZABLE_2(38), /** * A header byte meaning that a DataSerializable that was registered with the Instantiator was * data serialized using a single byte for its ID. */ - byte USER_DATA_SERIALIZABLE = 39; + USER_DATA_SERIALIZABLE(39), /** * A header byte meaning that the object was serialized by a user's <code>DataSerializer</code>. */ - byte USER_CLASS = 40; + USER_CLASS(40), /** * A header byte meaning that the next element in the stream is a <code>null</code> */ - byte NULL = 41; + NULL(41), /** * A header byte meaning that the next element in the stream is a String */ - byte STRING = 42; + STRING(42), /** * A header byte meaning that the next element in the stream is a (non-primitive) Class */ - byte CLASS = 43; + CLASS(43), /** * A header byte meaning that the next element in the stream is a serialized object */ - byte SERIALIZABLE = 44; + SERIALIZABLE(44), /** * A header byte meaning that the next element in the stream is a DataSerializable object */ - byte DATA_SERIALIZABLE = 45; + DATA_SERIALIZABLE(45), /** * A header byte meaning that the next element in the stream is a <code>byte</code> array. */ - byte BYTE_ARRAY = 46; + BYTE_ARRAY(46), /** * A header byte meaning that the next element in the stream is a <code>short</code> array. */ - byte SHORT_ARRAY = 47; + SHORT_ARRAY(47), /** * A header byte meaning that the next element in the stream is a <code>int</code> array. */ - byte INT_ARRAY = 48; + INT_ARRAY(48), /** * A header byte meaning that the next element in the stream is a <code>long</code> array. */ - byte LONG_ARRAY = 49; + LONG_ARRAY(49), /** * A header byte meaning that the next element in the stream is a <code>float</code> array. */ - byte FLOAT_ARRAY = 50; + FLOAT_ARRAY(50), /** * A header byte meaning that the next element in the stream is a <code>double</code> array. */ - byte DOUBLE_ARRAY = 51; + DOUBLE_ARRAY(51), /** * A header byte meaning that the next element in the stream is a <code>Object</code> array. */ - byte OBJECT_ARRAY = 52; + OBJECT_ARRAY(52), /** * A header boolean meaning that the next element in the stream is a <code>Boolean</code>. */ - byte BOOLEAN = 53; + BOOLEAN(53), /** * A header byte meaning that the next element in the stream is a <code>Character</code>. */ - byte CHARACTER = 54; + CHARACTER(54), /** * A header byte meaning that the next element in the stream is a <code>Byte</code>. */ - byte BYTE = 55; + BYTE(55), /** * A header byte meaning that the next element in the stream is a <code>Short</code>. */ - byte SHORT = 56; + SHORT(56), /** * A header byte meaning that the next element in the stream is a <code>Integer</code>. */ - byte INTEGER = 57; + INTEGER(57), /** * A header byte meaning that the next element in the stream is a <code>Long</code>. */ - byte LONG = 58; + LONG(58), /** * A header byte meaning that the next element in the stream is a <code>Float</code>. */ - byte FLOAT = 59; + FLOAT(59), /** * A header byte meaning that the next element in the stream is a <code>Double</code>. */ - byte DOUBLE = 60; + DOUBLE(60), /** * A header byte meaning that the next element in the stream is a <code>Date</code>. */ - byte DATE = 61; + DATE(61), /** * A header byte meaning that the next element in the stream is a <code>InetAddress</code>. */ - byte INET_ADDRESS = 62; + INET_ADDRESS(62), /** * A header byte meaning that the next element in the stream is a <code>File</code>. */ - byte FILE = 63; + FILE(63), /** * A header byte meaning that the next element in the stream is a <code>String</code> array. */ - byte STRING_ARRAY = 64; + STRING_ARRAY(64), /** * A header byte meaning that the next element in the stream is a <code>ArrayList</code>. */ - byte ARRAY_LIST = 65; + ARRAY_LIST(65), /** * A header byte meaning that the next element in the stream is a <code>HashSet</code>. */ - byte HASH_SET = 66; + HASH_SET(66), /** * A header byte meaning that the next element in the stream is a <code>HashMap</code>. */ - byte HASH_MAP = 67; + HASH_MAP(67), /** * A header byte meaning that the next element in the stream is a <code>TimeUnit</code>. */ - byte TIME_UNIT = 68; + TIME_UNIT(68), /** * A header byte meaning that the next element in the stream is a <code>null</code> * <code>String</code>. */ - byte NULL_STRING = 69; + NULL_STRING(69), /** * A header byte meaning that the next element in the stream is a <code>Hashtable</code>. * * @since GemFire 5.7 */ - byte HASH_TABLE = 70; + HASH_TABLE(70), /** * A header byte meaning that the next element in the stream is a <code>Vector</code>. * * @since GemFire 5.7 */ - byte VECTOR = 71; + VECTOR(71), /** * A header byte meaning that the next element in the stream is a <code>IdentityHashMap</code>. * * @since GemFire 5.7 */ - byte IDENTITY_HASH_MAP = 72; + IDENTITY_HASH_MAP(72), /** * A header byte meaning that the next element in the stream is a <code>LinkedHashSet</code>. * * @since GemFire 5.7 */ - byte LINKED_HASH_SET = 73; + LINKED_HASH_SET(73), /** * A header byte meaning that the next element in the stream is a <code>Stack</code>. * * @since GemFire 5.7 */ - byte STACK = 74; + STACK(74), /** * A header byte meaning that the next element in the stream is a <code>TreeMap</code>. * * @since GemFire 5.7 */ - byte TREE_MAP = 75; + TREE_MAP(75), /** * A header byte meaning that the next element in the stream is a <code>TreeSet</code>. * * @since GemFire 5.7 */ - byte TREE_SET = 76; + TREE_SET(76), // 75..86 unused @@ -350,7 +342,7 @@ public interface DSCODE { * A header byte meaning that the next element in the stream is a buffer of 1-byte characters to * turn into a String whose length is <= 0xFFFF */ - byte STRING_BYTES = 87; + STRING_BYTES(87), /** * A header byte meaning that the next element in the stream is a buffer of 1-byte characters to @@ -358,7 +350,7 @@ public interface DSCODE { * * @since GemFire 5.7 */ - byte HUGE_STRING_BYTES = 88; + HUGE_STRING_BYTES(88), /** * A header byte meaning that the next element in the stream is a buffer of 2-byte characters to @@ -366,14 +358,14 @@ public interface DSCODE { * * @since GemFire 5.7 */ - byte HUGE_STRING = 89; + HUGE_STRING(89), // 90 unused /** * A header byte meaning that the next element in the stream is a <code>byte[][]</code>. */ - byte ARRAY_OF_BYTE_ARRAYS = 91; + ARRAY_OF_BYTE_ARRAYS(91), // 92 unused @@ -382,7 +374,7 @@ public interface DSCODE { * * @since GemFire 6.6 */ - byte PDX = 93; + PDX(93), /** * A header byte meaning that the next element in the stream is an enum whose type is defined in @@ -390,20 +382,20 @@ public interface DSCODE { * * @since GemFire 6.6.2 */ - byte PDX_ENUM = 94; + PDX_ENUM(94), /** * java.math.BigInteger * * @since GemFire 6.6.2 */ - byte BIG_INTEGER = 95; + BIG_INTEGER(95), /** * java.math.BigDecimal * * @since GemFire 6.6.2 */ - byte BIG_DECIMAL = 96; + BIG_DECIMAL(96), /** * This code can only be used by PDX. It can't be used for normal DataSerializer writeObject @@ -412,43 +404,53 @@ public interface DSCODE { * * @since GemFire 6.6 */ - byte CONCURRENT_HASH_MAP = 97; + CONCURRENT_HASH_MAP(97), /** * java.util.UUID * * @since GemFire 6.6.2 */ - byte UUID = 98; + UUID(98), /** * java.sql.Timestamp * * @since GemFire 6.6.2 */ - byte TIMESTAMP = 99; + TIMESTAMP(99), /** * Used for enums that need to always be deserialized into their enum domain class. * * @since GemFire 6.6.2 */ - byte GEMFIRE_ENUM = 100; + GEMFIRE_ENUM(100), /** * Used for enums that need to be encoded inline because the pdx registry may not be available. * During deserialization this type of enum may be deserialized as a PdxInstance. * * @since GemFire 6.6.2 */ - byte PDX_INLINE_ENUM = 101; + PDX_INLINE_ENUM(101), /** * Used for wildcard searches in soplogs with composite keys. * * @since GemFire 8.0 */ - byte WILDCARD = 102; + WILDCARD(102); // 103..127 unused // DO NOT USE CODES > 127. They are not "byte". + + private byte value; + + DSCODE(int value) { + this.value = (byte) value; + } + + public byte toByte() { + return value; + } } diff --git a/geode-core/src/main/java/org/apache/geode/internal/InternalDataSerializer.java b/geode-core/src/main/java/org/apache/geode/internal/InternalDataSerializer.java index 993c2d5..334c058 100644 --- a/geode-core/src/main/java/org/apache/geode/internal/InternalDataSerializer.java +++ b/geode-core/src/main/java/org/apache/geode/internal/InternalDataSerializer.java @@ -130,7 +130,7 @@ import org.apache.geode.pdx.internal.TypeRegistry; * * @since GemFire 3.5 */ -public abstract class InternalDataSerializer extends DataSerializer implements DSCODE { +public abstract class InternalDataSerializer extends DataSerializer { private static final Logger logger = LogService.getLogger(); /** @@ -386,7 +386,7 @@ public abstract class InternalDataSerializer extends DataSerializer implements D @Override public boolean toData(Object o, DataOutput out) throws IOException { InetAddress address = (InetAddress) o; - out.writeByte(INET_ADDRESS); + out.writeByte(DSCODE.INET_ADDRESS.toByte()); writeInetAddress(address, out); return true; } @@ -395,7 +395,7 @@ public abstract class InternalDataSerializer extends DataSerializer implements D @Override public boolean toData(Object o, DataOutput out) throws IOException { InetAddress address = (InetAddress) o; - out.writeByte(INET_ADDRESS); + out.writeByte(DSCODE.INET_ADDRESS.toByte()); writeInetAddress(address, out); return true; } @@ -404,7 +404,7 @@ public abstract class InternalDataSerializer extends DataSerializer implements D @Override public boolean toData(Object o, DataOutput out) throws IOException { InetAddress address = (InetAddress) o; - out.writeByte(INET_ADDRESS); + out.writeByte(DSCODE.INET_ADDRESS.toByte()); writeInetAddress(address, out); return true; } @@ -416,7 +416,7 @@ public abstract class InternalDataSerializer extends DataSerializer implements D if (c.isPrimitive()) { writePrimitiveClass(c, out); } else { - out.writeByte(CLASS); + out.writeByte(DSCODE.CLASS.toByte()); writeClass(c, out); } return true; @@ -426,7 +426,7 @@ public abstract class InternalDataSerializer extends DataSerializer implements D @Override public boolean toData(Object o, DataOutput out) throws IOException { Boolean value = (Boolean) o; - out.writeByte(BOOLEAN); + out.writeByte(DSCODE.BOOLEAN.toByte()); writeBoolean(value, out); return true; } @@ -435,7 +435,7 @@ public abstract class InternalDataSerializer extends DataSerializer implements D @Override public boolean toData(Object o, DataOutput out) throws IOException { Character value = (Character) o; - out.writeByte(CHARACTER); + out.writeByte(DSCODE.CHARACTER.toByte()); writeCharacter(value, out); return true; } @@ -444,7 +444,7 @@ public abstract class InternalDataSerializer extends DataSerializer implements D @Override public boolean toData(Object o, DataOutput out) throws IOException { Byte value = (Byte) o; - out.writeByte(BYTE); + out.writeByte(DSCODE.BYTE.toByte()); writeByte(value, out); return true; } @@ -453,7 +453,7 @@ public abstract class InternalDataSerializer extends DataSerializer implements D @Override public boolean toData(Object o, DataOutput out) throws IOException { Short value = (Short) o; - out.writeByte(SHORT); + out.writeByte(DSCODE.SHORT.toByte()); writeShort(value, out); return true; } @@ -462,7 +462,7 @@ public abstract class InternalDataSerializer extends DataSerializer implements D @Override public boolean toData(Object o, DataOutput out) throws IOException { Integer value = (Integer) o; - out.writeByte(INTEGER); + out.writeByte(DSCODE.INTEGER.toByte()); writeInteger(value, out); return true; } @@ -471,7 +471,7 @@ public abstract class InternalDataSerializer extends DataSerializer implements D @Override public boolean toData(Object o, DataOutput out) throws IOException { Long value = (Long) o; - out.writeByte(LONG); + out.writeByte(DSCODE.LONG.toByte()); writeLong(value, out); return true; } @@ -480,7 +480,7 @@ public abstract class InternalDataSerializer extends DataSerializer implements D @Override public boolean toData(Object o, DataOutput out) throws IOException { Float value = (Float) o; - out.writeByte(FLOAT); + out.writeByte(DSCODE.FLOAT.toByte()); writeFloat(value, out); return true; } @@ -489,7 +489,7 @@ public abstract class InternalDataSerializer extends DataSerializer implements D @Override public boolean toData(Object o, DataOutput out) throws IOException { Double value = (Double) o; - out.writeByte(DOUBLE); + out.writeByte(DSCODE.DOUBLE.toByte()); writeDouble(value, out); return true; } @@ -498,7 +498,7 @@ public abstract class InternalDataSerializer extends DataSerializer implements D new WellKnownPdxDS() { @Override public boolean toData(Object o, DataOutput out) throws IOException { - out.writeByte(BOOLEAN_ARRAY); + out.writeByte(DSCODE.BOOLEAN_ARRAY.toByte()); writeBooleanArray((boolean[]) o, out); return true; } @@ -508,7 +508,7 @@ public abstract class InternalDataSerializer extends DataSerializer implements D @Override public boolean toData(Object o, DataOutput out) throws IOException { byte[] array = (byte[]) o; - out.writeByte(BYTE_ARRAY); + out.writeByte(DSCODE.BYTE_ARRAY.toByte()); writeByteArray(array, out); return true; } @@ -517,7 +517,7 @@ public abstract class InternalDataSerializer extends DataSerializer implements D new WellKnownPdxDS() { @Override public boolean toData(Object o, DataOutput out) throws IOException { - out.writeByte(CHAR_ARRAY); + out.writeByte(DSCODE.CHAR_ARRAY.toByte()); writeCharArray((char[]) o, out); return true; } @@ -527,7 +527,7 @@ public abstract class InternalDataSerializer extends DataSerializer implements D @Override public boolean toData(Object o, DataOutput out) throws IOException { double[] array = (double[]) o; - out.writeByte(DOUBLE_ARRAY); + out.writeByte(DSCODE.DOUBLE_ARRAY.toByte()); writeDoubleArray(array, out); return true; } @@ -537,7 +537,7 @@ public abstract class InternalDataSerializer extends DataSerializer implements D @Override public boolean toData(Object o, DataOutput out) throws IOException { float[] array = (float[]) o; - out.writeByte(FLOAT_ARRAY); + out.writeByte(DSCODE.FLOAT_ARRAY.toByte()); writeFloatArray(array, out); return true; } @@ -547,7 +547,7 @@ public abstract class InternalDataSerializer extends DataSerializer implements D @Override public boolean toData(Object o, DataOutput out) throws IOException { int[] array = (int[]) o; - out.writeByte(INT_ARRAY); + out.writeByte(DSCODE.INT_ARRAY.toByte()); writeIntArray(array, out); return true; } @@ -557,7 +557,7 @@ public abstract class InternalDataSerializer extends DataSerializer implements D @Override public boolean toData(Object o, DataOutput out) throws IOException { long[] array = (long[]) o; - out.writeByte(LONG_ARRAY); + out.writeByte(DSCODE.LONG_ARRAY.toByte()); writeLongArray(array, out); return true; } @@ -567,7 +567,7 @@ public abstract class InternalDataSerializer extends DataSerializer implements D @Override public boolean toData(Object o, DataOutput out) throws IOException { short[] array = (short[]) o; - out.writeByte(SHORT_ARRAY); + out.writeByte(DSCODE.SHORT_ARRAY.toByte()); writeShortArray(array, out); return true; } @@ -577,7 +577,7 @@ public abstract class InternalDataSerializer extends DataSerializer implements D @Override public boolean toData(Object o, DataOutput out) throws IOException { String[] array = (String[]) o; - out.writeByte(STRING_ARRAY); + out.writeByte(DSCODE.STRING_ARRAY.toByte()); writeStringArray(array, out); return true; } @@ -585,7 +585,7 @@ public abstract class InternalDataSerializer extends DataSerializer implements D classesToSerializers.put(TimeUnit.NANOSECONDS.getClass().getName(), new WellKnownDS() { @Override public boolean toData(Object o, DataOutput out) throws IOException { - out.writeByte(TIME_UNIT); + out.writeByte(DSCODE.TIME_UNIT.toByte()); out.writeByte(TIME_UNIT_NANOSECONDS); return true; } @@ -593,7 +593,7 @@ public abstract class InternalDataSerializer extends DataSerializer implements D classesToSerializers.put(TimeUnit.MICROSECONDS.getClass().getName(), new WellKnownDS() { @Override public boolean toData(Object o, DataOutput out) throws IOException { - out.writeByte(TIME_UNIT); + out.writeByte(DSCODE.TIME_UNIT.toByte()); out.writeByte(TIME_UNIT_MICROSECONDS); return true; } @@ -601,7 +601,7 @@ public abstract class InternalDataSerializer extends DataSerializer implements D classesToSerializers.put(TimeUnit.MILLISECONDS.getClass().getName(), new WellKnownDS() { @Override public boolean toData(Object o, DataOutput out) throws IOException { - out.writeByte(TIME_UNIT); + out.writeByte(DSCODE.TIME_UNIT.toByte()); out.writeByte(TIME_UNIT_MILLISECONDS); return true; } @@ -609,7 +609,7 @@ public abstract class InternalDataSerializer extends DataSerializer implements D classesToSerializers.put(TimeUnit.SECONDS.getClass().getName(), new WellKnownDS() { @Override public boolean toData(Object o, DataOutput out) throws IOException { - out.writeByte(TIME_UNIT); + out.writeByte(DSCODE.TIME_UNIT.toByte()); out.writeByte(TIME_UNIT_SECONDS); return true; } @@ -618,7 +618,7 @@ public abstract class InternalDataSerializer extends DataSerializer implements D @Override public boolean toData(Object o, DataOutput out) throws IOException { Date date = (Date) o; - out.writeByte(DATE); + out.writeByte(DSCODE.DATE.toByte()); writeDate(date, out); return true; } @@ -627,7 +627,7 @@ public abstract class InternalDataSerializer extends DataSerializer implements D @Override public boolean toData(Object o, DataOutput out) throws IOException { File file = (File) o; - out.writeByte(FILE); + out.writeByte(DSCODE.FILE.toByte()); writeFile(file, out); return true; } @@ -636,7 +636,7 @@ public abstract class InternalDataSerializer extends DataSerializer implements D @Override public boolean toData(Object o, DataOutput out) throws IOException { ArrayList list = (ArrayList) o; - out.writeByte(ARRAY_LIST); + out.writeByte(DSCODE.ARRAY_LIST.toByte()); writeArrayList(list, out); return true; } @@ -645,7 +645,7 @@ public abstract class InternalDataSerializer extends DataSerializer implements D @Override public boolean toData(Object o, DataOutput out) throws IOException { LinkedList list = (LinkedList) o; - out.writeByte(LINKED_LIST); + out.writeByte(DSCODE.LINKED_LIST.toByte()); writeLinkedList(list, out); return true; } @@ -653,7 +653,7 @@ public abstract class InternalDataSerializer extends DataSerializer implements D classesToSerializers.put("java.util.Vector", new WellKnownPdxDS() { @Override public boolean toData(Object o, DataOutput out) throws IOException { - out.writeByte(VECTOR); + out.writeByte(DSCODE.VECTOR.toByte()); writeVector((Vector) o, out); return true; } @@ -661,7 +661,7 @@ public abstract class InternalDataSerializer extends DataSerializer implements D classesToSerializers.put("java.util.Stack", new WellKnownDS() { @Override public boolean toData(Object o, DataOutput out) throws IOException { - out.writeByte(STACK); + out.writeByte(DSCODE.STACK.toByte()); writeStack((Stack) o, out); return true; } @@ -670,7 +670,7 @@ public abstract class InternalDataSerializer extends DataSerializer implements D @Override public boolean toData(Object o, DataOutput out) throws IOException { HashSet list = (HashSet) o; - out.writeByte(HASH_SET); + out.writeByte(DSCODE.HASH_SET.toByte()); writeHashSet(list, out); return true; } @@ -678,7 +678,7 @@ public abstract class InternalDataSerializer extends DataSerializer implements D classesToSerializers.put("java.util.LinkedHashSet", new WellKnownPdxDS() { @Override public boolean toData(Object o, DataOutput out) throws IOException { - out.writeByte(LINKED_HASH_SET); + out.writeByte(DSCODE.LINKED_HASH_SET.toByte()); writeLinkedHashSet((LinkedHashSet) o, out); return true; } @@ -687,7 +687,7 @@ public abstract class InternalDataSerializer extends DataSerializer implements D @Override public boolean toData(Object o, DataOutput out) throws IOException { HashMap list = (HashMap) o; - out.writeByte(HASH_MAP); + out.writeByte(DSCODE.HASH_MAP.toByte()); writeHashMap(list, out); return true; } @@ -695,7 +695,7 @@ public abstract class InternalDataSerializer extends DataSerializer implements D classesToSerializers.put("java.util.IdentityHashMap", new WellKnownDS() { @Override public boolean toData(Object o, DataOutput out) throws IOException { - out.writeByte(IDENTITY_HASH_MAP); + out.writeByte(DSCODE.IDENTITY_HASH_MAP.toByte()); writeIdentityHashMap((IdentityHashMap) o, out); return true; } @@ -703,7 +703,7 @@ public abstract class InternalDataSerializer extends DataSerializer implements D classesToSerializers.put("java.util.Hashtable", new WellKnownPdxDS() { @Override public boolean toData(Object o, DataOutput out) throws IOException { - out.writeByte(HASH_TABLE); + out.writeByte(DSCODE.HASH_TABLE.toByte()); writeHashtable((Hashtable) o, out); return true; } @@ -712,7 +712,7 @@ public abstract class InternalDataSerializer extends DataSerializer implements D @Override public boolean toData(Object o, DataOutput out) throws IOException { Properties props = (Properties) o; - out.writeByte(PROPERTIES); + out.writeByte(DSCODE.PROPERTIES.toByte()); writeProperties(props, out); return true; } @@ -720,7 +720,7 @@ public abstract class InternalDataSerializer extends DataSerializer implements D classesToSerializers.put("java.util.TreeMap", new WellKnownDS() { @Override public boolean toData(Object o, DataOutput out) throws IOException { - out.writeByte(TREE_MAP); + out.writeByte(DSCODE.TREE_MAP.toByte()); writeTreeMap((TreeMap) o, out); return true; } @@ -728,7 +728,7 @@ public abstract class InternalDataSerializer extends DataSerializer implements D classesToSerializers.put("java.util.TreeSet", new WellKnownDS() { @Override public boolean toData(Object o, DataOutput out) throws IOException { - out.writeByte(TREE_SET); + out.writeByte(DSCODE.TREE_SET.toByte()); writeTreeSet((TreeSet) o, out); return true; } @@ -737,7 +737,7 @@ public abstract class InternalDataSerializer extends DataSerializer implements D classesToSerializers.put("java.math.BigInteger", new WellKnownDS() { @Override public boolean toData(Object o, DataOutput out) throws IOException { - out.writeByte(BIG_INTEGER); + out.writeByte(DSCODE.BIG_INTEGER.toByte()); writeBigInteger((BigInteger) o, out); return true; } @@ -745,7 +745,7 @@ public abstract class InternalDataSerializer extends DataSerializer implements D classesToSerializers.put("java.math.BigDecimal", new WellKnownDS() { @Override public boolean toData(Object o, DataOutput out) throws IOException { - out.writeByte(BIG_DECIMAL); + out.writeByte(DSCODE.BIG_DECIMAL.toByte()); writeBigDecimal((BigDecimal) o, out); return true; } @@ -753,7 +753,7 @@ public abstract class InternalDataSerializer extends DataSerializer implements D classesToSerializers.put("java.util.UUID", new WellKnownDS() { @Override public boolean toData(Object o, DataOutput out) throws IOException { - out.writeByte(UUID); + out.writeByte(DSCODE.UUID.toByte()); writeUUID((UUID) o, out); return true; } @@ -761,7 +761,7 @@ public abstract class InternalDataSerializer extends DataSerializer implements D classesToSerializers.put("java.sql.Timestamp", new WellKnownDS() { @Override public boolean toData(Object o, DataOutput out) throws IOException { - out.writeByte(TIMESTAMP); + out.writeByte(DSCODE.TIMESTAMP.toByte()); writeTimestamp((Timestamp) o, out); return true; } @@ -1497,13 +1497,13 @@ public abstract class InternalDataSerializer extends DataSerializer implements D .toLocalizedString()); } if (dsfid <= Byte.MAX_VALUE && dsfid >= Byte.MIN_VALUE) { - out.writeByte(DS_FIXED_ID_BYTE); + out.writeByte(DSCODE.DS_FIXED_ID_BYTE.toByte()); out.writeByte(dsfid); } else if (dsfid <= Short.MAX_VALUE && dsfid >= Short.MIN_VALUE) { - out.writeByte(DS_FIXED_ID_SHORT); + out.writeByte(DSCODE.DS_FIXED_ID_SHORT.toByte()); out.writeShort(dsfid); } else { - out.writeByte(DS_FIXED_ID_INT); + out.writeByte(DSCODE.DS_FIXED_ID_INT.toByte()); out.writeInt(dsfid); } } @@ -1527,7 +1527,7 @@ public abstract class InternalDataSerializer extends DataSerializer implements D } } if (dsfid == DataSerializableFixedID.NO_FIXED_ID) { - out.writeByte(DS_NO_FIXED_ID); + out.writeByte(DSCODE.DS_NO_FIXED_ID.toByte()); DataSerializer.writeClass(o.getClass(), out); } else { writeDSFIDHeader(dsfid, out); @@ -1584,13 +1584,13 @@ public abstract class InternalDataSerializer extends DataSerializer implements D checkPdxCompatible(o, ensurePdxCompatibility); // id will be 0 if it is a WellKnowDS if (id <= Byte.MAX_VALUE && id >= Byte.MIN_VALUE) { - out.writeByte(USER_CLASS); + out.writeByte(DSCODE.USER_CLASS.toByte()); out.writeByte((byte) id); } else if (id <= Short.MAX_VALUE && id >= Short.MIN_VALUE) { - out.writeByte(USER_CLASS_2); + out.writeByte(DSCODE.USER_CLASS_2.toByte()); out.writeShort(id); } else { - out.writeByte(USER_CLASS_4); + out.writeByte(DSCODE.USER_CLASS_4.toByte()); out.writeInt(id); } } else { @@ -1644,12 +1644,12 @@ public abstract class InternalDataSerializer extends DataSerializer implements D // Do byte[][] and Object[] here to fix bug 44060 } else if (o instanceof byte[][]) { byte[][] byteArrays = (byte[][]) o; - out.writeByte(ARRAY_OF_BYTE_ARRAYS); + out.writeByte(DSCODE.ARRAY_OF_BYTE_ARRAYS.toByte()); writeArrayOfByteArrays(byteArrays, out); return true; } else if (o instanceof Object[]) { Object[] array = (Object[]) o; - out.writeByte(OBJECT_ARRAY); + out.writeByte(DSCODE.OBJECT_ARRAY.toByte()); writeObjectArray(array, out, ensurePdxCompatibility); return true; } else if (is662SerializationEnabled() @@ -1956,25 +1956,25 @@ public abstract class InternalDataSerializer extends DataSerializer implements D */ public static void writePrimitiveClass(Class c, DataOutput out) throws IOException { if (c == Boolean.TYPE) { - out.writeByte(BOOLEAN_TYPE); + out.writeByte(DSCODE.BOOLEAN_TYPE.toByte()); } else if (c == Character.TYPE) { - out.writeByte(CHARACTER_TYPE); + out.writeByte(DSCODE.CHARACTER_TYPE.toByte()); } else if (c == Byte.TYPE) { - out.writeByte(BYTE_TYPE); + out.writeByte(DSCODE.BYTE_TYPE.toByte()); } else if (c == Short.TYPE) { - out.writeByte(SHORT_TYPE); + out.writeByte(DSCODE.SHORT_TYPE.toByte()); } else if (c == Integer.TYPE) { - out.writeByte(INTEGER_TYPE); + out.writeByte(DSCODE.INTEGER_TYPE.toByte()); } else if (c == Long.TYPE) { - out.writeByte(LONG_TYPE); + out.writeByte(DSCODE.LONG_TYPE.toByte()); } else if (c == Float.TYPE) { - out.writeByte(FLOAT_TYPE); + out.writeByte(DSCODE.FLOAT_TYPE.toByte()); } else if (c == Double.TYPE) { - out.writeByte(DOUBLE_TYPE); + out.writeByte(DSCODE.DOUBLE_TYPE.toByte()); } else if (c == Void.TYPE) { - out.writeByte(VOID_TYPE); + out.writeByte(DSCODE.VOID_TYPE.toByte()); } else if (c == null) { - out.writeByte(NULL); + out.writeByte(DSCODE.NULL.toByte()); } else { throw new InternalGemFireError( LocalizedStrings.InternalDataSerializer_UNKNOWN_PRIMITIVE_TYPE_0 @@ -1983,31 +1983,38 @@ public abstract class InternalDataSerializer extends DataSerializer implements D } public static Class decodePrimitiveClass(byte typeCode) { - switch (typeCode) { - case BOOLEAN_TYPE: - return Boolean.TYPE; - case CHARACTER_TYPE: - return Character.TYPE; - case BYTE_TYPE: - return Byte.TYPE; - case SHORT_TYPE: - return Short.TYPE; - case INTEGER_TYPE: - return Integer.TYPE; - case LONG_TYPE: - return Long.TYPE; - case FLOAT_TYPE: - return Float.TYPE; - case DOUBLE_TYPE: - return Double.TYPE; - case VOID_TYPE: - return Void.TYPE; - case NULL: - return null; - default: - throw new InternalGemFireError(LocalizedStrings.InternalDataSerializer_UNEXPECTED_TYPECODE_0 - .toLocalizedString(typeCode)); + if (typeCode == DSCODE.BOOLEAN_TYPE.toByte()) { + return Boolean.TYPE; + } + if (typeCode == DSCODE.CHARACTER_TYPE.toByte()) { + return Character.TYPE; + } + if (typeCode == DSCODE.BYTE_TYPE.toByte()) { + return Byte.TYPE; + } + if (typeCode == DSCODE.SHORT_TYPE.toByte()) { + return Short.TYPE; + } + if (typeCode == DSCODE.INTEGER_TYPE.toByte()) { + return Integer.TYPE; + } + if (typeCode == DSCODE.LONG_TYPE.toByte()) { + return Long.TYPE; + } + if (typeCode == DSCODE.FLOAT_TYPE.toByte()) { + return Float.TYPE; } + if (typeCode == DSCODE.DOUBLE_TYPE.toByte()) { + return Double.TYPE; + } + if (typeCode == DSCODE.VOID_TYPE.toByte()) { + return Void.TYPE; + } + if (typeCode == DSCODE.NULL.toByte()) { + return null; + } + throw new InternalGemFireError( + LocalizedStrings.InternalDataSerializer_UNEXPECTED_TYPECODE_0.toLocalizedString(typeCode)); } private static final byte TIME_UNIT_NANOSECONDS = -1; @@ -2133,13 +2140,13 @@ public abstract class InternalDataSerializer extends DataSerializer implements D public static void writeUserDataSerializableHeader(int classId, DataOutput out) throws IOException { if (classId <= Byte.MAX_VALUE && classId >= Byte.MIN_VALUE) { - out.writeByte(USER_DATA_SERIALIZABLE); + out.writeByte(DSCODE.USER_DATA_SERIALIZABLE.toByte()); out.writeByte(classId); } else if (classId <= Short.MAX_VALUE && classId >= Short.MIN_VALUE) { - out.writeByte(USER_DATA_SERIALIZABLE_2); + out.writeByte(DSCODE.USER_DATA_SERIALIZABLE_2.toByte()); out.writeShort(classId); } else { - out.writeByte(USER_DATA_SERIALIZABLE_4); + out.writeByte(DSCODE.USER_DATA_SERIALIZABLE_4.toByte()); out.writeInt(classId); } } @@ -2175,7 +2182,7 @@ public abstract class InternalDataSerializer extends DataSerializer implements D * @param serializedForm the serialized byte array */ public static boolean isSerializedNull(byte[] serializedForm) { - return serializedForm.length == 1 && serializedForm[0] == NULL; + return serializedForm.length == 1 && serializedForm[0] == DSCODE.NULL.toByte(); } public static void basicWriteObject(Object o, DataOutput out, boolean ensurePdxCompatibility) @@ -2189,7 +2196,7 @@ public abstract class InternalDataSerializer extends DataSerializer implements D // Handle special objects first if (o == null) { - out.writeByte(NULL); + out.writeByte(DSCODE.NULL.toByte()); } else if (o instanceof DataSerializableFixedID) { checkPdxCompatible(o, ensurePdxCompatibility); @@ -2218,7 +2225,7 @@ public abstract class InternalDataSerializer extends DataSerializer implements D if (classId != 0) { writeUserDataSerializableHeader(classId, out); } else { - out.writeByte(DATA_SERIALIZABLE); + out.writeByte(DSCODE.DATA_SERIALIZABLE.toByte()); DataSerializer.writeClass(c, out); } DataSerializable ds = (DataSerializable) o; @@ -2274,7 +2281,7 @@ public abstract class InternalDataSerializer extends DataSerializer implements D } public static void writePdxEnumId(int eId, DataOutput out) throws IOException { - out.writeByte(PDX_ENUM); + out.writeByte(DSCODE.PDX_ENUM.toByte()); out.writeByte(eId >> 24); writeArrayLength(eId & 0xFFFFFF, out); } @@ -2302,7 +2309,8 @@ public abstract class InternalDataSerializer extends DataSerializer implements D private static void writeGemFireEnum(Enum<?> e, DataOutput out) throws IOException { boolean isGemFireObject = isGemfireObject(e); - DataSerializer.writePrimitiveByte(isGemFireObject ? GEMFIRE_ENUM : PDX_INLINE_ENUM, out); + DataSerializer.writePrimitiveByte( + isGemFireObject ? DSCODE.GEMFIRE_ENUM.toByte() : DSCODE.PDX_INLINE_ENUM.toByte(), out); DataSerializer.writeString(e.getDeclaringClass().getName(), out); DataSerializer.writeString(e.name(), out); if (!isGemFireObject) { @@ -2342,7 +2350,7 @@ public abstract class InternalDataSerializer extends DataSerializer implements D * @param out the data output to serialize to */ public static void writeSerializableObject(Object o, DataOutput out) throws IOException { - out.writeByte(SERIALIZABLE); + out.writeByte(DSCODE.SERIALIZABLE.toByte()); if (out instanceof ObjectOutputStream) { ((ObjectOutputStream) out).writeObject(o); } else { @@ -2699,13 +2707,13 @@ public abstract class InternalDataSerializer extends DataSerializer implements D if (logger.isTraceEnabled(LogMarker.SERIALIZER_VERBOSE)) { logger.trace(LogMarker.SERIALIZER_VERBOSE, "readDSFID: header={}", header); } - if (header == DS_FIXED_ID_BYTE) { + if (header == DSCODE.DS_FIXED_ID_BYTE.toByte()) { return DSFIDFactory.create(in.readByte(), in); - } else if (header == DS_FIXED_ID_SHORT) { + } else if (header == DSCODE.DS_FIXED_ID_SHORT.toByte()) { return DSFIDFactory.create(in.readShort(), in); - } else if (header == DS_NO_FIXED_ID) { + } else if (header == DSCODE.DS_NO_FIXED_ID.toByte()) { return readDataSerializableFixedID(in); - } else if (header == DS_FIXED_ID_INT) { + } else if (header == DSCODE.DS_FIXED_ID_INT.toByte()) { return DSFIDFactory.create(in.readInt(), in); } else { throw new IllegalStateException("unexpected byte: " + header + " while reading dsfid"); @@ -2715,14 +2723,14 @@ public abstract class InternalDataSerializer extends DataSerializer implements D public static int readDSFIDHeader(final DataInput in) throws IOException { checkIn(in); byte header = in.readByte(); - if (header == DS_FIXED_ID_BYTE) { + if (header == DSCODE.DS_FIXED_ID_BYTE.toByte()) { return in.readByte(); - } else if (header == DS_FIXED_ID_SHORT) { + } else if (header == DSCODE.DS_FIXED_ID_SHORT.toByte()) { return in.readShort(); - } else if (header == DS_NO_FIXED_ID) { + } else if (header == DSCODE.DS_NO_FIXED_ID.toByte()) { // is that correct?? return Integer.MAX_VALUE; - } else if (header == DS_FIXED_ID_INT) { + } else if (header == DSCODE.DS_FIXED_ID_INT.toByte()) { return in.readInt(); } else { throw new IllegalStateException("unexpected byte: " + header + " while reading dsfid"); @@ -2738,7 +2746,7 @@ public abstract class InternalDataSerializer extends DataSerializer implements D * @since GemFire 5.7 */ public static String readString(DataInput in, byte header) throws IOException { - if (header == DSCODE.STRING_BYTES) { + if (header == DSCODE.STRING_BYTES.toByte()) { int len = in.readUnsignedShort(); if (logger.isTraceEnabled(LogMarker.SERIALIZER_VERBOSE)) { logger.trace(LogMarker.SERIALIZER_VERBOSE, "Reading STRING_BYTES of len={}", len); @@ -2746,17 +2754,17 @@ public abstract class InternalDataSerializer extends DataSerializer implements D byte[] buf = new byte[len]; in.readFully(buf, 0, len); return new String(buf, 0); // intentionally using deprecated constructor - } else if (header == DSCODE.STRING) { + } else if (header == DSCODE.STRING.toByte()) { if (logger.isTraceEnabled(LogMarker.SERIALIZER_VERBOSE)) { logger.trace(LogMarker.SERIALIZER_VERBOSE, "Reading utf STRING"); } return in.readUTF(); - } else if (header == DSCODE.NULL_STRING) { + } else if (header == DSCODE.NULL_STRING.toByte()) { if (logger.isTraceEnabled(LogMarker.SERIALIZER_VERBOSE)) { logger.trace(LogMarker.SERIALIZER_VERBOSE, "Reading NULL_STRING"); } return null; - } else if (header == DSCODE.HUGE_STRING_BYTES) { + } else if (header == DSCODE.HUGE_STRING_BYTES.toByte()) { int len = in.readInt(); if (logger.isTraceEnabled(LogMarker.SERIALIZER_VERBOSE)) { logger.trace(LogMarker.SERIALIZER_VERBOSE, "Reading HUGE_STRING_BYTES of len={}", len); @@ -2764,7 +2772,7 @@ public abstract class InternalDataSerializer extends DataSerializer implements D byte[] buf = new byte[len]; in.readFully(buf, 0, len); return new String(buf, 0); // intentionally using deprecated constructor - } else if (header == DSCODE.HUGE_STRING) { + } else if (header == DSCODE.HUGE_STRING.toByte()) { int len = in.readInt(); if (logger.isTraceEnabled(LogMarker.SERIALIZER_VERBOSE)) { logger.trace(LogMarker.SERIALIZER_VERBOSE, "Reading HUGE_STRING of len={}", len); @@ -2816,198 +2824,257 @@ public abstract class InternalDataSerializer extends DataSerializer implements D if (logger.isTraceEnabled(LogMarker.SERIALIZER_VERBOSE)) { logger.trace(LogMarker.SERIALIZER_VERBOSE, "basicReadObject: header={}", header); } - switch (header) { - case DS_FIXED_ID_BYTE: - return DSFIDFactory.create(in.readByte(), in); - case DS_FIXED_ID_SHORT: - return DSFIDFactory.create(in.readShort(), in); - case DS_FIXED_ID_INT: - return DSFIDFactory.create(in.readInt(), in); - case DS_NO_FIXED_ID: - return readDataSerializableFixedID(in); - case NULL: - return null; - case NULL_STRING: - case STRING: - case HUGE_STRING: - case STRING_BYTES: - case HUGE_STRING_BYTES: - return readString(in, header); - case CLASS: - return readClass(in); - case DATE: - return readDate(in); - case FILE: - return readFile(in); - case INET_ADDRESS: - return readInetAddress(in); - case BOOLEAN: - return readBoolean(in); - case CHARACTER: - return readCharacter(in); - case BYTE: - return readByte(in); - case SHORT: - return readShort(in); - case INTEGER: - return readInteger(in); - case LONG: - return readLong(in); - case FLOAT: - return readFloat(in); - case DOUBLE: - return readDouble(in); - case BYTE_ARRAY: - return readByteArray(in); - case ARRAY_OF_BYTE_ARRAYS: - return readArrayOfByteArrays(in); - case SHORT_ARRAY: - return readShortArray(in); - case STRING_ARRAY: - return readStringArray(in); - case INT_ARRAY: - return readIntArray(in); - case LONG_ARRAY: - return readLongArray(in); - case FLOAT_ARRAY: - return readFloatArray(in); - case DOUBLE_ARRAY: - return readDoubleArray(in); - case BOOLEAN_ARRAY: - return readBooleanArray(in); - case CHAR_ARRAY: - return readCharArray(in); - case OBJECT_ARRAY: - return readObjectArray(in); - case ARRAY_LIST: - return readArrayList(in); - case LINKED_LIST: - return readLinkedList(in); - case HASH_SET: - return readHashSet(in); - case LINKED_HASH_SET: - return readLinkedHashSet(in); - case HASH_MAP: - return readHashMap(in); - case IDENTITY_HASH_MAP: - return readIdentityHashMap(in); - case HASH_TABLE: - return readHashtable(in); - case CONCURRENT_HASH_MAP: - return readConcurrentHashMap(in); - case PROPERTIES: - return readProperties(in); - case TIME_UNIT: - return readTimeUnit(in); - case USER_CLASS: - return readUserObject(in, in.readByte()); - case USER_CLASS_2: - return readUserObject(in, in.readShort()); - case USER_CLASS_4: - return readUserObject(in, in.readInt()); - case VECTOR: - return readVector(in); - case STACK: - return readStack(in); - case TREE_MAP: - return readTreeMap(in); - case TREE_SET: - return readTreeSet(in); - case BOOLEAN_TYPE: - return Boolean.TYPE; - case CHARACTER_TYPE: - return Character.TYPE; - case BYTE_TYPE: - return Byte.TYPE; - case SHORT_TYPE: - return Short.TYPE; - case INTEGER_TYPE: - return Integer.TYPE; - case LONG_TYPE: - return Long.TYPE; - case FLOAT_TYPE: - return Float.TYPE; - case DOUBLE_TYPE: - return Double.TYPE; - case VOID_TYPE: - return Void.TYPE; - - case USER_DATA_SERIALIZABLE: - return readUserDataSerializable(in, in.readByte()); - case USER_DATA_SERIALIZABLE_2: - return readUserDataSerializable(in, in.readShort()); - case USER_DATA_SERIALIZABLE_4: - return readUserDataSerializable(in, in.readInt()); - - case DATA_SERIALIZABLE: - return readDataSerializable(in); - - case SERIALIZABLE: { - final boolean isDebugEnabled_SERIALIZER = - logger.isTraceEnabled(LogMarker.SERIALIZER_VERBOSE); - Object serializableResult; - if (in instanceof DSObjectInputStream) { - serializableResult = ((DSObjectInputStream) in).readObject(); + if (header == DSCODE.DS_FIXED_ID_BYTE.toByte()) { + return DSFIDFactory.create(in.readByte(), in); + } + if (header == DSCODE.DS_FIXED_ID_SHORT.toByte()) { + return DSFIDFactory.create(in.readShort(), in); + } + if (header == DSCODE.DS_FIXED_ID_INT.toByte()) { + return DSFIDFactory.create(in.readInt(), in); + } + if (header == DSCODE.DS_NO_FIXED_ID.toByte()) { + return readDataSerializableFixedID(in); + } + if (header == DSCODE.NULL.toByte()) { + return null; + } + if (header == DSCODE.NULL_STRING.toByte() || header == DSCODE.STRING.toByte() + || header == DSCODE.HUGE_STRING.toByte() || header == DSCODE.STRING_BYTES.toByte() + || header == DSCODE.HUGE_STRING_BYTES.toByte()) { + return readString(in, header); + } + if (header == DSCODE.CLASS.toByte()) { + return readClass(in); + } + if (header == DSCODE.DATE.toByte()) { + return readDate(in); + } + if (header == DSCODE.FILE.toByte()) { + return readFile(in); + } + if (header == DSCODE.INET_ADDRESS.toByte()) { + return readInetAddress(in); + } + if (header == DSCODE.BOOLEAN.toByte()) { + return readBoolean(in); + } + if (header == DSCODE.CHARACTER.toByte()) { + return readCharacter(in); + } + if (header == DSCODE.BYTE.toByte()) { + return readByte(in); + } + if (header == DSCODE.SHORT.toByte()) { + return readShort(in); + } + if (header == DSCODE.INTEGER.toByte()) { + return readInteger(in); + } + if (header == DSCODE.LONG.toByte()) { + return readLong(in); + } + if (header == DSCODE.FLOAT.toByte()) { + return readFloat(in); + } + if (header == DSCODE.DOUBLE.toByte()) { + return readDouble(in); + } + if (header == DSCODE.BYTE_ARRAY.toByte()) { + return readByteArray(in); + } + if (header == DSCODE.ARRAY_OF_BYTE_ARRAYS.toByte()) { + return readArrayOfByteArrays(in); + } + if (header == DSCODE.SHORT_ARRAY.toByte()) { + return readShortArray(in); + } + if (header == DSCODE.STRING_ARRAY.toByte()) { + return readStringArray(in); + } + if (header == DSCODE.INT_ARRAY.toByte()) { + return readIntArray(in); + } + if (header == DSCODE.LONG_ARRAY.toByte()) { + return readLongArray(in); + } + if (header == DSCODE.FLOAT_ARRAY.toByte()) { + return readFloatArray(in); + } + if (header == DSCODE.DOUBLE_ARRAY.toByte()) { + return readDoubleArray(in); + } + if (header == DSCODE.BOOLEAN_ARRAY.toByte()) { + return readBooleanArray(in); + } + if (header == DSCODE.CHAR_ARRAY.toByte()) { + return readCharArray(in); + } + if (header == DSCODE.OBJECT_ARRAY.toByte()) { + return readObjectArray(in); + } + if (header == DSCODE.ARRAY_LIST.toByte()) { + return readArrayList(in); + } + if (header == DSCODE.LINKED_LIST.toByte()) { + return readLinkedList(in); + } + if (header == DSCODE.HASH_SET.toByte()) { + return readHashSet(in); + } + if (header == DSCODE.LINKED_HASH_SET.toByte()) { + return readLinkedHashSet(in); + } + if (header == DSCODE.HASH_MAP.toByte()) { + return readHashMap(in); + } + if (header == DSCODE.IDENTITY_HASH_MAP.toByte()) { + return readIdentityHashMap(in); + } + if (header == DSCODE.HASH_TABLE.toByte()) { + return readHashtable(in); + } + if (header == DSCODE.CONCURRENT_HASH_MAP.toByte()) { + return readConcurrentHashMap(in); + } + if (header == DSCODE.PROPERTIES.toByte()) { + return readProperties(in); + } + if (header == DSCODE.TIME_UNIT.toByte()) { + return readTimeUnit(in); + } + if (header == DSCODE.USER_CLASS.toByte()) { + return readUserObject(in, in.readByte()); + } + if (header == DSCODE.USER_CLASS_2.toByte()) { + return readUserObject(in, in.readShort()); + } + if (header == DSCODE.USER_CLASS_4.toByte()) { + return readUserObject(in, in.readInt()); + } + if (header == DSCODE.VECTOR.toByte()) { + return readVector(in); + } + if (header == DSCODE.STACK.toByte()) { + return readStack(in); + } + if (header == DSCODE.TREE_MAP.toByte()) { + return readTreeMap(in); + } + if (header == DSCODE.TREE_SET.toByte()) { + return readTreeSet(in); + } + if (header == DSCODE.BOOLEAN_TYPE.toByte()) { + return Boolean.TYPE; + } + if (header == DSCODE.CHARACTER_TYPE.toByte()) { + return Character.TYPE; + } + if (header == DSCODE.BYTE_TYPE.toByte()) { + return Byte.TYPE; + } + if (header == DSCODE.SHORT_TYPE.toByte()) { + return Short.TYPE; + } + if (header == DSCODE.INTEGER_TYPE.toByte()) { + return Integer.TYPE; + } + if (header == DSCODE.LONG_TYPE.toByte()) { + return Long.TYPE; + } + if (header == DSCODE.FLOAT_TYPE.toByte()) { + return Float.TYPE; + } + if (header == DSCODE.DOUBLE_TYPE.toByte()) { + return Double.TYPE; + } + if (header == DSCODE.VOID_TYPE.toByte()) { + return Void.TYPE; + } + if (header == DSCODE.USER_DATA_SERIALIZABLE.toByte()) { + return readUserDataSerializable(in, in.readByte()); + } + if (header == DSCODE.USER_DATA_SERIALIZABLE_2.toByte()) { + return readUserDataSerializable(in, in.readShort()); + } + if (header == DSCODE.USER_DATA_SERIALIZABLE_4.toByte()) { + return readUserDataSerializable(in, in.readInt()); + } + if (header == DSCODE.DATA_SERIALIZABLE.toByte()) { + return readDataSerializable(in); + } + if (header == DSCODE.SERIALIZABLE.toByte()) { + final boolean isDebugEnabled_SERIALIZER = logger.isTraceEnabled(LogMarker.SERIALIZER_VERBOSE); + Object serializableResult; + if (in instanceof DSObjectInputStream) { + serializableResult = ((DSObjectInputStream) in).readObject(); + } else { + InputStream stream; + if (in instanceof InputStream) { + stream = (InputStream) in; } else { - InputStream stream; - if (in instanceof InputStream) { - stream = (InputStream) in; - } else { - stream = new InputStream() { - @Override - public int read() throws IOException { - try { - return in.readUnsignedByte(); // fix for bug 47249 - } catch (EOFException ignored) { - return -1; - } + stream = new InputStream() { + @Override + public int read() throws IOException { + try { + return in.readUnsignedByte(); // fix for bug 47249 + } catch (EOFException ignored) { + return -1; } - - }; - } - - ObjectInput ois = new DSObjectInputStream(stream); - serializationFilter.setFilterOn((ObjectInputStream) ois); - if (stream instanceof VersionedDataStream) { - Version v = ((VersionedDataStream) stream).getVersion(); - if (v != null && v != Version.CURRENT) { - ois = new VersionedObjectInput(ois, v); } - } - serializableResult = ois.readObject(); + }; + } - if (isDebugEnabled_SERIALIZER) { - logger.trace(LogMarker.SERIALIZER_VERBOSE, "Read Serializable object: {}", - serializableResult); + ObjectInput ois = new DSObjectInputStream(stream); + serializationFilter.setFilterOn((ObjectInputStream) ois); + if (stream instanceof VersionedDataStream) { + Version v = ((VersionedDataStream) stream).getVersion(); + if (v != null && v != Version.CURRENT) { + ois = new VersionedObjectInput(ois, v); } } + + serializableResult = ois.readObject(); + if (isDebugEnabled_SERIALIZER) { - logger.trace(LogMarker.SERIALIZER_VERBOSE, "deserialized instanceof {}", - serializableResult.getClass()); + logger.trace(LogMarker.SERIALIZER_VERBOSE, "Read Serializable object: {}", + serializableResult); } - return serializableResult; - } - case PDX: - return readPdxSerializable(in); - case PDX_ENUM: - return readPdxEnum(in); - case GEMFIRE_ENUM: - return readGemFireEnum(in); - case PDX_INLINE_ENUM: - return readPdxInlineEnum(in); - case BIG_INTEGER: - return readBigInteger(in); - case BIG_DECIMAL: - return readBigDecimal(in); - case UUID: - return readUUID(in); - case TIMESTAMP: - return readTimestamp(in); - default: - String s = "Unknown header byte: " + header; - throw new IOException(s); + } + if (isDebugEnabled_SERIALIZER) { + logger.trace(LogMarker.SERIALIZER_VERBOSE, "deserialized instanceof {}", + serializableResult.getClass()); + } + return serializableResult; + } + if (header == DSCODE.PDX.toByte()) { + return readPdxSerializable(in); + } + if (header == DSCODE.PDX_ENUM.toByte()) { + return readPdxEnum(in); + } + if (header == DSCODE.GEMFIRE_ENUM.toByte()) { + return readGemFireEnum(in); } + if (header == DSCODE.PDX_INLINE_ENUM.toByte()) { + return readPdxInlineEnum(in); + } + if (header == DSCODE.BIG_INTEGER.toByte()) { + return readBigInteger(in); + } + if (header == DSCODE.BIG_DECIMAL.toByte()) { + return readBigDecimal(in); + } + if (header == DSCODE.UUID.toByte()) { + return readUUID(in); + } + if (header == DSCODE.TIMESTAMP.toByte()) { + return readTimestamp(in); + } + + String s = "Unknown header byte: " + header; + throw new IOException(s); } private static Object readUserDataSerializable(final DataInput in, int classId) @@ -3195,7 +3262,7 @@ public abstract class InternalDataSerializer extends DataSerializer implements D public static PdxInstance readPdxInstance(final byte[] dataBytes, InternalCache internalCache) { try { byte type = dataBytes[0]; - if (type == PDX) { + if (type == DSCODE.PDX.toByte()) { PdxInputStream in = new PdxInputStream(dataBytes); in.readByte(); // throw away the type byte int len = in.readInt(); @@ -3206,7 +3273,7 @@ public abstract class InternalDataSerializer extends DataSerializer implements D } return new PdxInstanceImpl(pdxType, in, len); - } else if (type == DSCODE.PDX_ENUM) { + } else if (type == DSCODE.PDX_ENUM.toByte()) { PdxInputStream in = new PdxInputStream(dataBytes); in.readByte(); // throw away the type byte int dsId = in.readByte(); @@ -3218,7 +3285,7 @@ public abstract class InternalDataSerializer extends DataSerializer implements D throw new IllegalStateException("Unknown pdx enum id=" + enumId); } return ei.getPdxInstance(enumId); - } else if (type == DSCODE.PDX_INLINE_ENUM) { + } else if (type == DSCODE.PDX_INLINE_ENUM.toByte()) { PdxInputStream in = new PdxInputStream(dataBytes); in.readByte(); // throw away the type byte String className = DataSerializer.readString(in); diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/CacheDistributionAdvisor.java b/geode-core/src/main/java/org/apache/geode/internal/cache/CacheDistributionAdvisor.java index d190e8c..ed52f28 100644 --- a/geode-core/src/main/java/org/apache/geode/internal/cache/CacheDistributionAdvisor.java +++ b/geode-core/src/main/java/org/apache/geode/internal/cache/CacheDistributionAdvisor.java @@ -845,7 +845,7 @@ public class CacheDistributionAdvisor extends DistributionAdvisor { private void writeSet(Set<?> set, DataOutput out) throws IOException { // to fix bug 47205 always serialize the Set as a HashSet. - out.writeByte(DSCODE.HASH_SET); + out.writeByte(DSCODE.HASH_SET.toByte()); InternalDataSerializer.writeSet(set, out); } diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/CachedDeserializableFactory.java b/geode-core/src/main/java/org/apache/geode/internal/cache/CachedDeserializableFactory.java index 5d3cf27..b3202c8 100644 --- a/geode-core/src/main/java/org/apache/geode/internal/cache/CachedDeserializableFactory.java +++ b/geode-core/src/main/java/org/apache/geode/internal/cache/CachedDeserializableFactory.java @@ -59,7 +59,7 @@ public class CachedDeserializableFactory { private static boolean isPdxEncoded(byte[] v) { // assert v != null; if (v.length > 0) { - return v[0] == DSCODE.PDX; + return v[0] == DSCODE.PDX.toByte(); } return false; } diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/GemFireCacheImpl.java b/geode-core/src/main/java/org/apache/geode/internal/cache/GemFireCacheImpl.java index 9ec44f1..f8140ce 100755 --- a/geode-core/src/main/java/org/apache/geode/internal/cache/GemFireCacheImpl.java +++ b/geode-core/src/main/java/org/apache/geode/internal/cache/GemFireCacheImpl.java @@ -5376,7 +5376,7 @@ public class GemFireCacheImpl implements InternalCache, InternalClientCache, Has public void registerPdxMetaData(Object instance) { try { byte[] blob = BlobHelper.serializeToBlob(instance); - if (blob.length == 0 || blob[0] != DSCODE.PDX) { + if (blob.length == 0 || blob[0] != DSCODE.PDX.toByte()) { throw new SerializationException("The instance is not PDX serializable"); } } catch (IOException e) { diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/Token.java b/geode-core/src/main/java/org/apache/geode/internal/cache/Token.java index 9fa5759..88e85c1 100644 --- a/geode-core/src/main/java/org/apache/geode/internal/cache/Token.java +++ b/geode-core/src/main/java/org/apache/geode/internal/cache/Token.java @@ -141,7 +141,7 @@ public abstract class Token { public boolean isSerializedValue(byte[] value) { ByteBuffer buf = ByteBuffer.wrap(value); - return buf.capacity() == 3 && buf.get() == DSCODE.DS_FIXED_ID_SHORT + return buf.capacity() == 3 && buf.get() == DSCODE.DS_FIXED_ID_SHORT.toByte() && buf.getShort() == getDSFID(); } diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/snapshot/RegionSnapshotServiceImpl.java b/geode-core/src/main/java/org/apache/geode/internal/cache/snapshot/RegionSnapshotServiceImpl.java index 4b65d8c..19e03c6 100644 --- a/geode-core/src/main/java/org/apache/geode/internal/cache/snapshot/RegionSnapshotServiceImpl.java +++ b/geode-core/src/main/java/org/apache/geode/internal/cache/snapshot/RegionSnapshotServiceImpl.java @@ -261,7 +261,7 @@ public class RegionSnapshotServiceImpl<K, V> implements RegionSnapshotService<K, // If the underlying object is a byte[], we can't wrap it in a // CachedDeserializable. Somewhere along the line the header bytes // get lost and we start seeing serialization problems. - if (data.length > 0 && data[0] == DSCODE.BYTE_ARRAY) { + if (data.length > 0 && data[0] == DSCODE.BYTE_ARRAY.toByte()) { // It would be faster to use System.arraycopy() directly but since // length field is variable it's probably safest and simplest to // keep the logic in the InternalDataSerializer. diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/ChunkedMessage.java b/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/ChunkedMessage.java index b12b8b8..753fcc1 100644 --- a/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/ChunkedMessage.java +++ b/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/ChunkedMessage.java @@ -282,7 +282,7 @@ public class ChunkedMessage extends Message { public void sendHeader() throws IOException { if (this.socket != null) { synchronized (getCommBuffer()) { - getHeaderBytesForWrite(); + getDSCODEsForWrite(); flushBuffer(); // Darrel says: I see no need for the following os.flush() call // so I've deadcoded it for performance. @@ -353,7 +353,7 @@ public class ChunkedMessage extends Message { /** * Converts the header of this message into a <code>byte</code> array using a {@link ByteBuffer}. */ - protected void getHeaderBytesForWrite() { + protected void getDSCODEsForWrite() { final ByteBuffer cb = getCommBuffer(); cb.clear(); cb.putInt(this.messageType); diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/ClientUpdateMessageImpl.java b/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/ClientUpdateMessageImpl.java index 11ad04f..5b94a15 100755 --- a/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/ClientUpdateMessageImpl.java +++ b/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/ClientUpdateMessageImpl.java @@ -1475,7 +1475,7 @@ public class ClientUpdateMessageImpl implements ClientUpdateMessage, Sizeable, N @Override public void sendTo(DataOutput out) throws IOException { // When serialized it needs to look just as if writeObject was called on a HASH_MAP - out.writeByte(DSCODE.HASH_MAP); + out.writeByte(DSCODE.HASH_MAP.toByte()); int size = size(); InternalDataSerializer.writeArrayLength(size, out); if (size > 0) { @@ -1547,7 +1547,7 @@ public class ClientUpdateMessageImpl implements ClientUpdateMessage, Sizeable, N @Override public void sendTo(DataOutput out) throws IOException { // When serialized it needs to look just as if writeObject was called on a HASH_MAP - out.writeByte(DSCODE.HASH_MAP); + out.writeByte(DSCODE.HASH_MAP.toByte()); DataSerializer.writeHashMap(this, out); } diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/HAEventWrapper.java b/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/HAEventWrapper.java index fc69216..1977c9e 100755 --- a/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/HAEventWrapper.java +++ b/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/HAEventWrapper.java @@ -331,7 +331,7 @@ public class HAEventWrapper implements Conflatable, DataSerializableFixedID, Siz CqNameToOp value; { byte typeByte = in.readByte(); - if (typeByte == DSCODE.HASH_MAP) { + if (typeByte == DSCODE.HASH_MAP.toByte()) { int cqNamesSize = InternalDataSerializer.readArrayLength(in); if (cqNamesSize == -1) { throw new IllegalStateException( @@ -350,7 +350,7 @@ public class HAEventWrapper implements Conflatable, DataSerializableFixedID, Siz value.add(cqNamesKey, cqNamesValue); } } - } else if (typeByte == DSCODE.NULL) { + } else if (typeByte == DSCODE.NULL.toByte()) { throw new IllegalStateException( "The value of a ConcurrentHashMap is not allowed to be null."); } else { diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/Part.java b/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/Part.java index d701f2e..9606e6f 100644 --- a/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/Part.java +++ b/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/Part.java @@ -85,7 +85,7 @@ public class Part { } if (isObject() && this.part instanceof byte[]) { byte[] b = (byte[]) this.part; - if (b.length == 1 && b[0] == DSCODE.NULL) { + if (b.length == 1 && b[0] == DSCODE.NULL.toByte()) { return true; } } diff --git a/geode-core/src/main/java/org/apache/geode/internal/offheap/AbstractStoredObject.java b/geode-core/src/main/java/org/apache/geode/internal/offheap/AbstractStoredObject.java index 7d22b21..028e431 100644 --- a/geode-core/src/main/java/org/apache/geode/internal/offheap/AbstractStoredObject.java +++ b/geode-core/src/main/java/org/apache/geode/internal/offheap/AbstractStoredObject.java @@ -117,7 +117,8 @@ public abstract class AbstractStoredObject implements StoredObject { return false; } byte dsCode = this.readDataByte(0); - return dsCode == DSCODE.PDX || dsCode == DSCODE.PDX_ENUM || dsCode == DSCODE.PDX_INLINE_ENUM; + return dsCode == DSCODE.PDX.toByte() || dsCode == DSCODE.PDX_ENUM.toByte() + || dsCode == DSCODE.PDX_INLINE_ENUM.toByte(); } @Override diff --git a/geode-core/src/main/java/org/apache/geode/internal/offheap/DataType.java b/geode-core/src/main/java/org/apache/geode/internal/offheap/DataType.java index 8513d23..35183a5 100755 --- a/geode-core/src/main/java/org/apache/geode/internal/offheap/DataType.java +++ b/geode-core/src/main/java/org/apache/geode/internal/offheap/DataType.java @@ -32,7 +32,7 @@ import org.apache.geode.internal.InternalInstantiator; * * @since Geode 1.0 */ -public class DataType implements DSCODE { +public class DataType { public static String getDataType(byte[] bytes) { final DataInput in = getDataInput(bytes); @@ -43,182 +43,233 @@ public class DataType implements DSCODE { return "IOException: " + e.getMessage(); } try { - switch (header) { - case DS_FIXED_ID_BYTE: { - return "org.apache.geode.internal.DataSerializableFixedID:" - + DSFIDFactory.create(in.readByte(), in).getClass().getName(); - } - case DS_FIXED_ID_SHORT: { - return "org.apache.geode.internal.DataSerializableFixedID:" - + DSFIDFactory.create(in.readShort(), in).getClass().getName(); - } - case DS_FIXED_ID_INT: { - return "org.apache.geode.internal.DataSerializableFixedID:" - + DSFIDFactory.create(in.readInt(), in).getClass().getName(); - } - case DS_NO_FIXED_ID: - return "org.apache.geode.internal.DataSerializableFixedID:" - + DataSerializer.readClass(in).getName(); - case NULL: - return "null"; - case NULL_STRING: - case STRING: - case HUGE_STRING: - case STRING_BYTES: - case HUGE_STRING_BYTES: - return "java.lang.String"; - case CLASS: - return "java.lang.Class"; - case DATE: - return "java.util.Date"; - case FILE: - return "java.io.File"; - case INET_ADDRESS: - return "java.net.InetAddress"; - case BOOLEAN: - return "java.lang.Boolean"; - case CHARACTER: - return "java.lang.Character"; - case BYTE: - return "java.lang.Byte"; - case SHORT: - return "java.lang.Short"; - case INTEGER: - return "java.lang.Integer"; - case LONG: - return "java.lang.Long"; - case FLOAT: - return "java.lang.Float"; - case DOUBLE: - return "java.lang.Double"; - case BYTE_ARRAY: - return "byte[]"; - case ARRAY_OF_BYTE_ARRAYS: - return "byte[][]"; - case SHORT_ARRAY: - return "short[]"; - case STRING_ARRAY: - return "java.lang.String[]"; - case INT_ARRAY: - return "int[]"; - case LONG_ARRAY: - return "long[]"; - case FLOAT_ARRAY: - return "float[]"; - case DOUBLE_ARRAY: - return "double[]"; - case BOOLEAN_ARRAY: - return "boolean[]"; - case CHAR_ARRAY: - return "char[]"; - case OBJECT_ARRAY: - return "java.lang.Object[]"; - case ARRAY_LIST: - return "java.util.ArrayList"; - case LINKED_LIST: - return "java.util.LinkedList"; - case HASH_SET: - return "java.util.HashSet"; - case LINKED_HASH_SET: - return "java.util.LinkedHashSet"; - case HASH_MAP: - return "java.util.HashMap"; - case IDENTITY_HASH_MAP: - return "java.util.IdentityHashMap"; - case HASH_TABLE: - return "java.util.Hashtable"; - // ConcurrentHashMap is written as java.io.serializable - // case CONCURRENT_HASH_MAP: - // return "java.util.concurrent.ConcurrentHashMap"; - case PROPERTIES: - return "java.util.Properties"; - case TIME_UNIT: - return "java.util.concurrent.TimeUnit"; - case USER_CLASS: - byte userClassDSId = in.readByte(); - return "DataSerializer: with Id:" + userClassDSId; - case USER_CLASS_2: - short userClass2DSId = in.readShort(); - return "DataSerializer: with Id:" + userClass2DSId; - case USER_CLASS_4: - int userClass4DSId = in.readInt(); - return "DataSerializer: with Id:" + userClass4DSId; - case VECTOR: - return "java.util.Vector"; - case STACK: - return "java.util.Stack"; - case TREE_MAP: - return "java.util.TreeMap"; - case TREE_SET: - return "java.util.TreeSet"; - case BOOLEAN_TYPE: - return "java.lang.Boolean.class"; - case CHARACTER_TYPE: - return "java.lang.Character.class"; - case BYTE_TYPE: - return "java.lang.Byte.class"; - case SHORT_TYPE: - return "java.lang.Short.class"; - case INTEGER_TYPE: - return "java.lang.Integer.class"; - case LONG_TYPE: - return "java.lang.Long.class"; - case FLOAT_TYPE: - return "java.lang.Float.class"; - case DOUBLE_TYPE: - return "java.lang.Double.class"; - case VOID_TYPE: - return "java.lang.Void.class"; - case USER_DATA_SERIALIZABLE: { - Instantiator instantiator = InternalInstantiator.getInstantiator(in.readByte()); - return "org.apache.geode.Instantiator:" + instantiator.getInstantiatedClass().getName(); - } - case USER_DATA_SERIALIZABLE_2: { - Instantiator instantiator = InternalInstantiator.getInstantiator(in.readShort()); - return "org.apache.geode.Instantiator:" + instantiator.getInstantiatedClass().getName(); - } - case USER_DATA_SERIALIZABLE_4: { - Instantiator instantiator = InternalInstantiator.getInstantiator(in.readInt()); - return "org.apache.geode.Instantiator:" + instantiator.getInstantiatedClass().getName(); - } - case DATA_SERIALIZABLE: - return "org.apache.geode.DataSerializable:" + DataSerializer.readClass(in).getName(); - case SERIALIZABLE: { - String name = null; - try { - Object obj = InternalDataSerializer.basicReadObject(getDataInput(bytes)); - name = obj.getClass().getName(); - } catch (ClassNotFoundException e) { - name = e.getMessage(); - } - return "java.io.Serializable:" + name; - } - case PDX: { - int typeId = in.readInt(); - return "pdxType:" + typeId; - } - case PDX_ENUM: { - in.readByte(); // dsId is not needed - int enumId = InternalDataSerializer.readArrayLength(in); - return "pdxEnum:" + enumId; - } - case GEMFIRE_ENUM: { - String name = DataSerializer.readString(in); - return "java.lang.Enum:" + name; - } - case PDX_INLINE_ENUM: { - String name = DataSerializer.readString(in); - return "java.lang.Enum:" + name; + if (header == DSCODE.DS_FIXED_ID_BYTE.toByte()) { + return "org.apache.geode.internal.DataSerializableFixedID:" + + DSFIDFactory.create(in.readByte(), in).getClass().getName(); + } + if (header == DSCODE.DS_FIXED_ID_SHORT.toByte()) { + return "org.apache.geode.internal.DataSerializableFixedID:" + + DSFIDFactory.create(in.readShort(), in).getClass().getName(); + } + if (header == DSCODE.DS_FIXED_ID_INT.toByte()) { + return "org.apache.geode.internal.DataSerializableFixedID:" + + DSFIDFactory.create(in.readInt(), in).getClass().getName(); + } + if (header == DSCODE.DS_NO_FIXED_ID.toByte()) { + return "org.apache.geode.internal.DataSerializableFixedID:" + + DataSerializer.readClass(in).getName(); + } + if (header == DSCODE.NULL.toByte()) { + return "null"; + } + if (header == DSCODE.NULL_STRING.toByte() || header == DSCODE.STRING.toByte() + || header == DSCODE.HUGE_STRING.toByte() || header == DSCODE.STRING_BYTES.toByte() + || header == DSCODE.HUGE_STRING_BYTES.toByte()) { + return "java.lang.String"; + } + if (header == DSCODE.CLASS.toByte()) { + return "java.lang.Class"; + } + if (header == DSCODE.DATE.toByte()) { + return "java.util.Date"; + } + if (header == DSCODE.FILE.toByte()) { + return "java.io.File"; + } + if (header == DSCODE.INET_ADDRESS.toByte()) { + return "java.net.InetAddress"; + } + if (header == DSCODE.BOOLEAN.toByte()) { + return "java.lang.Boolean"; + } + if (header == DSCODE.CHARACTER.toByte()) { + return "java.lang.Character"; + } + if (header == DSCODE.BYTE.toByte()) { + return "java.lang.Byte"; + } + if (header == DSCODE.SHORT.toByte()) { + return "java.lang.Short"; + } + if (header == DSCODE.INTEGER.toByte()) { + return "java.lang.Integer"; + } + if (header == DSCODE.LONG.toByte()) { + return "java.lang.Long"; + } + if (header == DSCODE.FLOAT.toByte()) { + return "java.lang.Float"; + } + if (header == DSCODE.DOUBLE.toByte()) { + return "java.lang.Double"; + } + if (header == DSCODE.BYTE_ARRAY.toByte()) { + return "byte[]"; + } + if (header == DSCODE.ARRAY_OF_BYTE_ARRAYS.toByte()) { + return "byte[][]"; + } + if (header == DSCODE.SHORT_ARRAY.toByte()) { + return "short[]"; + } + if (header == DSCODE.STRING_ARRAY.toByte()) { + return "java.lang.String[]"; + } + if (header == DSCODE.INT_ARRAY.toByte()) { + return "int[]"; + } + if (header == DSCODE.LONG_ARRAY.toByte()) { + return "long[]"; + } + if (header == DSCODE.FLOAT_ARRAY.toByte()) { + return "float[]"; + } + if (header == DSCODE.DOUBLE_ARRAY.toByte()) { + return "double[]"; + } + if (header == DSCODE.BOOLEAN_ARRAY.toByte()) { + return "boolean[]"; + } + if (header == DSCODE.CHAR_ARRAY.toByte()) { + return "char[]"; + } + if (header == DSCODE.OBJECT_ARRAY.toByte()) { + return "java.lang.Object[]"; + } + if (header == DSCODE.ARRAY_LIST.toByte()) { + return "java.util.ArrayList"; + } + if (header == DSCODE.LINKED_LIST.toByte()) { + return "java.util.LinkedList"; + } + if (header == DSCODE.HASH_SET.toByte()) { + return "java.util.HashSet"; + } + if (header == DSCODE.LINKED_HASH_SET.toByte()) { + return "java.util.LinkedHashSet"; + } + if (header == DSCODE.HASH_MAP.toByte()) { + return "java.util.HashMap"; + } + if (header == DSCODE.IDENTITY_HASH_MAP.toByte()) { + return "java.util.IdentityHashMap"; + } + if (header == DSCODE.HASH_TABLE.toByte()) { + return "java.util.Hashtable"; + } + // ConcurrentHashMap is written as java.io.serializable + // if (header == DSCODE.CONCURRENT_HASH_MAP.toByte()) { + // return "java.util.concurrent.ConcurrentHashMap"; + if (header == DSCODE.PROPERTIES.toByte()) { + return "java.util.Properties"; + } + if (header == DSCODE.TIME_UNIT.toByte()) { + return "java.util.concurrent.TimeUnit"; + } + if (header == DSCODE.USER_CLASS.toByte()) { + byte userClassDSId = in.readByte(); + return "DataSerializer: with Id:" + userClassDSId; + } + if (header == DSCODE.USER_CLASS_2.toByte()) { + short userClass2DSId = in.readShort(); + return "DataSerializer: with Id:" + userClass2DSId; + } + if (header == DSCODE.USER_CLASS_4.toByte()) { + int userClass4DSId = in.readInt(); + return "DataSerializer: with Id:" + userClass4DSId; + } + if (header == DSCODE.VECTOR.toByte()) { + return "java.util.Vector"; + } + if (header == DSCODE.STACK.toByte()) { + return "java.util.Stack"; + } + if (header == DSCODE.TREE_MAP.toByte()) { + return "java.util.TreeMap"; + } + if (header == DSCODE.TREE_SET.toByte()) { + return "java.util.TreeSet"; + } + if (header == DSCODE.BOOLEAN_TYPE.toByte()) { + return "java.lang.Boolean.class"; + } + if (header == DSCODE.CHARACTER_TYPE.toByte()) { + return "java.lang.Character.class"; + } + if (header == DSCODE.BYTE_TYPE.toByte()) { + return "java.lang.Byte.class"; + } + if (header == DSCODE.SHORT_TYPE.toByte()) { + return "java.lang.Short.class"; + } + if (header == DSCODE.INTEGER_TYPE.toByte()) { + return "java.lang.Integer.class"; + } + if (header == DSCODE.LONG_TYPE.toByte()) { + return "java.lang.Long.class"; + } + if (header == DSCODE.FLOAT_TYPE.toByte()) { + return "java.lang.Float.class"; + } + if (header == DSCODE.DOUBLE_TYPE.toByte()) { + return "java.lang.Double.class"; + } + if (header == DSCODE.VOID_TYPE.toByte()) { + return "java.lang.Void.class"; + } + if (header == DSCODE.USER_DATA_SERIALIZABLE.toByte()) { + Instantiator instantiator = InternalInstantiator.getInstantiator(in.readByte()); + return "org.apache.geode.Instantiator:" + instantiator.getInstantiatedClass().getName(); + } + if (header == DSCODE.USER_DATA_SERIALIZABLE_2.toByte()) { + Instantiator instantiator = InternalInstantiator.getInstantiator(in.readShort()); + return "org.apache.geode.Instantiator:" + instantiator.getInstantiatedClass().getName(); + } + if (header == DSCODE.USER_DATA_SERIALIZABLE_4.toByte()) { + Instantiator instantiator = InternalInstantiator.getInstantiator(in.readInt()); + return "org.apache.geode.Instantiator:" + instantiator.getInstantiatedClass().getName(); + } + if (header == DSCODE.DATA_SERIALIZABLE.toByte()) { + return "org.apache.geode.DataSerializable:" + DataSerializer.readClass(in).getName(); + } + if (header == DSCODE.SERIALIZABLE.toByte()) { + String name = null; + try { + Object obj = InternalDataSerializer.basicReadObject(getDataInput(bytes)); + name = obj.getClass().getName(); + } catch (ClassNotFoundException e) { + name = e.getMessage(); } - case BIG_INTEGER: - return "java.math.BigInteger"; - case BIG_DECIMAL: - return "java.math.BigDecimal"; - case UUID: - return "java.util.UUID"; - case TIMESTAMP: - return "java.sql.Timestamp"; - default: + return "java.io.Serializable:" + name; + } + if (header == DSCODE.PDX.toByte()) { + int typeId = in.readInt(); + return "pdxType:" + typeId; + } + if (header == DSCODE.PDX_ENUM.toByte()) { + in.readByte(); // dsId is not needed + int enumId = InternalDataSerializer.readArrayLength(in); + return "pdxEnum:" + enumId; + } + if (header == DSCODE.GEMFIRE_ENUM.toByte()) { + String name = DataSerializer.readString(in); + return "java.lang.Enum:" + name; + } + if (header == DSCODE.PDX_INLINE_ENUM.toByte()) { + String name = DataSerializer.readString(in); + return "java.lang.Enum:" + name; + } + if (header == DSCODE.BIG_INTEGER.toByte()) { + return "java.math.BigInteger"; + } + if (header == DSCODE.BIG_DECIMAL.toByte()) { + return "java.math.BigDecimal"; + } + if (header == DSCODE.UUID.toByte()) { + return "java.util.UUID"; + } + if (header == DSCODE.TIMESTAMP.toByte()) { + return "java.sql.Timestamp"; } return "Unknown header byte: " + header; } catch (IOException e) { diff --git a/geode-core/src/main/java/org/apache/geode/internal/offheap/OffHeapRegionEntryHelper.java b/geode-core/src/main/java/org/apache/geode/internal/offheap/OffHeapRegionEntryHelper.java index 08e768b..f203bed 100644 --- a/geode-core/src/main/java/org/apache/geode/internal/offheap/OffHeapRegionEntryHelper.java +++ b/geode-core/src/main/java/org/apache/geode/internal/offheap/OffHeapRegionEntryHelper.java @@ -245,7 +245,7 @@ public class OffHeapRegionEntryHelper { } else if (isSerialized && !isCompressed) { // Check for some special types that take more than 7 bytes to serialize // but that might be able to be inlined with less than 8 bytes. - if (v[0] == DSCODE.LONG) { + if (v[0] == DSCODE.LONG.toByte()) { // A long is currently always serialized as 8 bytes (9 if you include the dscode). // But many long values will actually be small enough for is to encode in 7 bytes. if ((v[1] == 0 && (v[2] & 0x80) == 0) || (v[1] == -1 && (v[2] & 0x80) != 0)) { @@ -306,7 +306,7 @@ public class OffHeapRegionEntryHelper { byte[] bytes; if (isLong) { bytes = new byte[9]; - bytes[0] = DSCODE.LONG; + bytes[0] = DSCODE.LONG.toByte(); for (int i = 8; i >= 2; i--) { addr >>= 8; bytes[i] = (byte) (addr & 0x00ff); diff --git a/geode-core/src/main/java/org/apache/geode/internal/offheap/OffHeapStoredObject.java b/geode-core/src/main/java/org/apache/geode/internal/offheap/OffHeapStoredObject.java index e370c58..5a77a8d 100644 --- a/geode-core/src/main/java/org/apache/geode/internal/offheap/OffHeapStoredObject.java +++ b/geode-core/src/main/java/org/apache/geode/internal/offheap/OffHeapStoredObject.java @@ -290,7 +290,7 @@ public class OffHeapStoredObject extends AbstractStoredObject if (this.isSerialized()) { hdos.write(bb); } else { - hdos.writeByte(DSCODE.BYTE_ARRAY); + hdos.writeByte(DSCODE.BYTE_ARRAY.toByte()); InternalDataSerializer.writeArrayLength(bb.remaining(), hdos); hdos.write(bb); } diff --git a/geode-core/src/main/java/org/apache/geode/internal/util/BlobHelper.java b/geode-core/src/main/java/org/apache/geode/internal/util/BlobHelper.java index 46a1f67..c955f4c 100644 --- a/geode-core/src/main/java/org/apache/geode/internal/util/BlobHelper.java +++ b/geode-core/src/main/java/org/apache/geode/internal/util/BlobHelper.java @@ -81,7 +81,7 @@ public class BlobHelper { throws IOException, ClassNotFoundException { Object result; final long start = startDeserialization(); - if (blob.length > 0 && blob[0] == DSCODE.PDX) { + if (blob.length > 0 && blob[0] == DSCODE.PDX.toByte()) { // If the first byte of blob indicates a pdx then wrap // blob in a PdxInputStream instead. // This will prevent us from making a copy of the byte[] diff --git a/geode-core/src/main/java/org/apache/geode/pdx/FieldType.java b/geode-core/src/main/java/org/apache/geode/pdx/FieldType.java index 521fdbe..5c56c86 100644 --- a/geode-core/src/main/java/org/apache/geode/pdx/FieldType.java +++ b/geode-core/src/main/java/org/apache/geode/pdx/FieldType.java @@ -40,8 +40,8 @@ public enum FieldType { FLOAT(true, DataSize.FLOAT_SIZE, "float", new byte[] {0, 0, 0, 0}, 0), DOUBLE(true, DataSize.DOUBLE_SIZE, "double", new byte[] {0, 0, 0, 0, 0, 0, 0, 0}, 0), DATE(true, DataSize.DATE_SIZE, "Date", new byte[] {-1, -1, -1, -1, -1, -1, -1, -1}, null), - STRING(false, -1, "String", new byte[] {DSCODE.NULL_STRING}, null), - OBJECT(false, -1, "Object", new byte[] {DSCODE.NULL}, null), + STRING(false, -1, "String", new byte[] {DSCODE.NULL_STRING.toByte()}, null), + OBJECT(false, -1, "Object", new byte[] {DSCODE.NULL.toByte()}, null), BOOLEAN_ARRAY(false, -1, "boolean[]", new byte[] {InternalDataSerializer.NULL_ARRAY}, null), CHAR_ARRAY(false, -1, "char[]", new byte[] {InternalDataSerializer.NULL_ARRAY}, null), BYTE_ARRAY(false, -1, "byte[]", new byte[] {InternalDataSerializer.NULL_ARRAY}, null), diff --git a/geode-core/src/main/java/org/apache/geode/pdx/internal/EnumInfo.java b/geode-core/src/main/java/org/apache/geode/pdx/internal/EnumInfo.java index 1114cfb..1d0da47 100644 --- a/geode-core/src/main/java/org/apache/geode/pdx/internal/EnumInfo.java +++ b/geode-core/src/main/java/org/apache/geode/pdx/internal/EnumInfo.java @@ -24,8 +24,6 @@ import java.util.Collections; import java.util.List; import org.apache.geode.DataSerializer; -import org.apache.geode.internal.ClassPathLoader; -import org.apache.geode.internal.DSCODE; import org.apache.geode.internal.DataSerializableFixedID; import org.apache.geode.internal.HeapDataOutputStream; import org.apache.geode.internal.InternalDataSerializer; diff --git a/geode-core/src/main/java/org/apache/geode/pdx/internal/PdxInstanceEnum.java b/geode-core/src/main/java/org/apache/geode/pdx/internal/PdxInstanceEnum.java index e596eb0..fc2afe3 100644 --- a/geode-core/src/main/java/org/apache/geode/pdx/internal/PdxInstanceEnum.java +++ b/geode-core/src/main/java/org/apache/geode/pdx/internal/PdxInstanceEnum.java @@ -126,7 +126,7 @@ public class PdxInstanceEnum implements PdxInstance, Sendable, ConvertableToByte } public void sendTo(DataOutput out) throws IOException { - out.writeByte(DSCODE.PDX_INLINE_ENUM); + out.writeByte(DSCODE.PDX_INLINE_ENUM.toByte()); DataSerializer.writeString(this.className, out); DataSerializer.writeString(this.enumName, out); InternalDataSerializer.writeArrayLength(this.enumOrdinal, out); diff --git a/geode-core/src/main/java/org/apache/geode/pdx/internal/PdxInstanceImpl.java b/geode-core/src/main/java/org/apache/geode/pdx/internal/PdxInstanceImpl.java index f55df95..0c19a79 100644 --- a/geode-core/src/main/java/org/apache/geode/pdx/internal/PdxInstanceImpl.java +++ b/geode-core/src/main/java/org/apache/geode/pdx/internal/PdxInstanceImpl.java @@ -161,7 +161,7 @@ public class PdxInstanceImpl extends PdxReaderImpl implements InternalPdxInstanc PdxWriterImpl writer = convertToTypeWithNoDeletedFields(ur); writer.sendTo(out); } else { - out.write(DSCODE.PDX); + out.write(DSCODE.PDX.toByte()); out.writeInt(ur.basicSize()); out.writeInt(ur.getPdxType().getTypeId()); ur.basicSendTo(out); @@ -177,7 +177,7 @@ public class PdxInstanceImpl extends PdxReaderImpl implements InternalPdxInstanc } else { byte[] result = new byte[PdxWriterImpl.HEADER_SIZE + ur.basicSize()]; ByteBuffer bb = ByteBuffer.wrap(result); - bb.put(DSCODE.PDX); + bb.put(DSCODE.PDX.toByte()); bb.putInt(ur.basicSize()); bb.putInt(ur.getPdxType().getTypeId()); ur.basicSendTo(bb); diff --git a/geode-core/src/main/java/org/apache/geode/pdx/internal/PdxReaderImpl.java b/geode-core/src/main/java/org/apache/geode/pdx/internal/PdxReaderImpl.java index 8c1e122..88175e6 100644 --- a/geode-core/src/main/java/org/apache/geode/pdx/internal/PdxReaderImpl.java +++ b/geode-core/src/main/java/org/apache/geode/pdx/internal/PdxReaderImpl.java @@ -896,8 +896,9 @@ public class PdxReaderImpl implements InternalPdxReader, java.io.Serializable { } int offset = getPositionForField(ft) + buffer.arrayOffset(); // Do not create PdxString if the field is NULL - if (bytes[offset] == DSCODE.STRING || bytes[offset] == DSCODE.STRING_BYTES - || bytes[offset] == DSCODE.HUGE_STRING || bytes[offset] == DSCODE.HUGE_STRING_BYTES) { + if (bytes[offset] == DSCODE.STRING.toByte() || bytes[offset] == DSCODE.STRING_BYTES.toByte() + || bytes[offset] == DSCODE.HUGE_STRING.toByte() + || bytes[offset] == DSCODE.HUGE_STRING_BYTES.toByte()) { return new PdxString(bytes, offset); } } @@ -917,7 +918,7 @@ public class PdxReaderImpl implements InternalPdxReader, java.io.Serializable { } int offset = getPositionForField(ft) + buffer.arrayOffset(); // Do not create PdxString if the field is NULL - if (bytes[offset] == DSCODE.NULL || bytes[offset] == DSCODE.NULL_STRING) { + if (bytes[offset] == DSCODE.NULL.toByte() || bytes[offset] == DSCODE.NULL_STRING.toByte()) { return null; } return new PdxString(bytes, offset); diff --git a/geode-core/src/main/java/org/apache/geode/pdx/internal/PdxString.java b/geode-core/src/main/java/org/apache/geode/pdx/internal/PdxString.java index 6d7046b..8cc85fb 100644 --- a/geode-core/src/main/java/org/apache/geode/pdx/internal/PdxString.java +++ b/geode-core/src/main/java/org/apache/geode/pdx/internal/PdxString.java @@ -58,12 +58,12 @@ public class PdxString implements Comparable<PdxString>, Sendable { private int calcOffset(int header, int offset) { offset++; // increment offset for the header byte // length is stored as short for small strings - if (header == DSCODE.STRING_BYTES || header == DSCODE.STRING) { + if (header == DSCODE.STRING_BYTES.toByte() || header == DSCODE.STRING.toByte()) { offset += 2; // position the offset to the start of the String // (skipping header and length bytes) } // length is stored as int for huge strings - else if (header == DSCODE.HUGE_STRING_BYTES || header == DSCODE.HUGE_STRING) { + else if (header == DSCODE.HUGE_STRING_BYTES.toByte() || header == DSCODE.HUGE_STRING.toByte()) { offset += 4; // position the offset to the start of the String // (skipping header and length bytes) } @@ -73,14 +73,14 @@ public class PdxString implements Comparable<PdxString>, Sendable { private int getLength() { int length = 0; int lenOffset = this.offset; - if (header == DSCODE.STRING_BYTES || header == DSCODE.STRING) { + if (header == DSCODE.STRING_BYTES.toByte() || header == DSCODE.STRING.toByte()) { lenOffset -= 2; byte a = bytes[lenOffset]; byte b = bytes[lenOffset + 1]; length = ((a & 0xff) << 8) | (b & 0xff); } // length is stored as int for huge strings - else if (header == DSCODE.HUGE_STRING_BYTES || header == DSCODE.HUGE_STRING) { + else if (header == DSCODE.HUGE_STRING_BYTES.toByte() || header == DSCODE.HUGE_STRING.toByte()) { lenOffset -= 4; byte a = bytes[lenOffset]; byte b = bytes[lenOffset + 1]; @@ -168,12 +168,13 @@ public class PdxString implements Comparable<PdxString>, Sendable { int headerOffset = this.offset; try { --headerOffset; // for header byte - if (header == DSCODE.STRING_BYTES || header == DSCODE.STRING) { + if (header == DSCODE.STRING_BYTES.toByte() || header == DSCODE.STRING.toByte()) { headerOffset -= 2; // position the offset to the start of the String (skipping // header and length bytes) } // length is stored as int for huge strings - else if (header == DSCODE.HUGE_STRING_BYTES || header == DSCODE.HUGE_STRING) { + else if (header == DSCODE.HUGE_STRING_BYTES.toByte() + || header == DSCODE.HUGE_STRING.toByte()) { headerOffset -= 4; } ByteBuffer stringByteBuffer = @@ -195,10 +196,11 @@ public class PdxString implements Comparable<PdxString>, Sendable { int len = getLength(); --offset; // for header byte len++; - if (header == DSCODE.STRING_BYTES || header == DSCODE.STRING) { + if (header == DSCODE.STRING_BYTES.toByte() || header == DSCODE.STRING.toByte()) { len += 2; offset -= 2; - } else if (header == DSCODE.HUGE_STRING_BYTES || header == DSCODE.HUGE_STRING) { + } else if (header == DSCODE.HUGE_STRING_BYTES.toByte() + || header == DSCODE.HUGE_STRING.toByte()) { len += 4; offset -= 4; } diff --git a/geode-core/src/main/java/org/apache/geode/pdx/internal/PdxWriterImpl.java b/geode-core/src/main/java/org/apache/geode/pdx/internal/PdxWriterImpl.java index 4061cae..29dfe20 100644 --- a/geode-core/src/main/java/org/apache/geode/pdx/internal/PdxWriterImpl.java +++ b/geode-core/src/main/java/org/apache/geode/pdx/internal/PdxWriterImpl.java @@ -533,7 +533,7 @@ public class PdxWriterImpl implements PdxWriter { this.lu.update(bits); } // !alreadyGenerated - return getCurrentOffset() + 1; // +1 for DSCODE.PDX + return getCurrentOffset() + 1; // +1 for DSCODE.PDX.toByte() } /** @@ -839,7 +839,7 @@ public class PdxWriterImpl implements PdxWriter { private HeapDataOutputStream.LongUpdater lu; private void writeHeader() { - this.os.write(DSCODE.PDX); + this.os.write(DSCODE.PDX.toByte()); this.lu = this.os.reserveLong(); // dummy length and type id } @@ -932,7 +932,7 @@ public class PdxWriterImpl implements PdxWriter { if (valueBytes == null || valueBytes.length < 1) { return false; } - return valueBytes[0] == DSCODE.PDX; + return valueBytes[0] == DSCODE.PDX.toByte(); } public int position() { diff --git a/geode-core/src/test/java/org/apache/geode/internal/DSCODETest.java b/geode-core/src/test/java/org/apache/geode/internal/DSCODETest.java new file mode 100644 index 0000000..6c100e5 --- /dev/null +++ b/geode-core/src/test/java/org/apache/geode/internal/DSCODETest.java @@ -0,0 +1,39 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more contributor license + * agreements. See the NOTICE file distributed with this work for additional information regarding + * copyright ownership. The ASF licenses this file to You under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance with the License. You may obtain a + * copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express + * or implied. See the License for the specific language governing permissions and limitations under + * the License. + */ +package org.apache.geode.internal; + +import static org.junit.Assert.assertFalse; + +import java.util.HashSet; +import java.util.Set; + +import org.junit.Test; +import org.junit.experimental.categories.Category; + +import org.apache.geode.test.junit.categories.UnitTest; + +@Category(UnitTest.class) +public class DSCODETest { + @Test + public void testNoDuplicateByteValues() throws Exception { + Set<Integer> previouslySeen = new HashSet<>(); + for (DSCODE value : DSCODE.values()) { + final int integerValue = (int) value.toByte(); + assertFalse("Each byte value should only occur with a single header byte enumerate", + previouslySeen.contains(integerValue)); + previouslySeen.add(integerValue); + } + } +} diff --git a/geode-core/src/test/java/org/apache/geode/internal/offheap/DataTypeJUnitTest.java b/geode-core/src/test/java/org/apache/geode/internal/offheap/DataTypeJUnitTest.java index 913e901..f5e8fe7 100755 --- a/geode-core/src/test/java/org/apache/geode/internal/offheap/DataTypeJUnitTest.java +++ b/geode-core/src/test/java/org/apache/geode/internal/offheap/DataTypeJUnitTest.java @@ -112,7 +112,7 @@ public class DataTypeJUnitTest { ByteArrayOutputStream baos = new ByteArrayOutputStream(); DataOutputStream out = new DataOutputStream(baos); - DataSerializer.writeByte(DSCODE.DS_FIXED_ID_INT, out); + DataSerializer.writeByte(DSCODE.DS_FIXED_ID_INT.toByte(), out); DataSerializer.writeInteger(someDSFIDInt, out); byte[] bytes = baos.toByteArray(); String type = DataType.getDataType(bytes); @@ -124,7 +124,7 @@ public class DataTypeJUnitTest { public void testDataSerializableFixedIDClass() throws IOException { ByteArrayOutputStream baos = new ByteArrayOutputStream(); DataOutputStream out = new DataOutputStream(baos); - DataSerializer.writeByte(DSCODE.DS_NO_FIXED_ID, out); + DataSerializer.writeByte(DSCODE.DS_NO_FIXED_ID.toByte(), out); DataSerializer.writeClass(Integer.class, out); byte[] bytes = baos.toByteArray(); String type = DataType.getDataType(bytes); @@ -586,7 +586,7 @@ public class DataTypeJUnitTest { public void testBooleanType() throws IOException { ByteArrayOutputStream baos = new ByteArrayOutputStream(); DataOutputStream out = new DataOutputStream(baos); - out.writeByte(DSCODE.BOOLEAN_TYPE); + out.writeByte(DSCODE.BOOLEAN_TYPE.toByte()); byte[] bytes = baos.toByteArray(); String type = DataType.getDataType(bytes); assertEquals("java.lang.Boolean.class", type); @@ -596,7 +596,7 @@ public class DataTypeJUnitTest { public void testCharacterType() throws IOException { ByteArrayOutputStream baos = new ByteArrayOutputStream(); DataOutputStream out = new DataOutputStream(baos); - out.writeByte(DSCODE.CHARACTER_TYPE); + out.writeByte(DSCODE.CHARACTER_TYPE.toByte()); byte[] bytes = baos.toByteArray(); String type = DataType.getDataType(bytes); assertEquals("java.lang.Character.class", type); @@ -606,7 +606,7 @@ public class DataTypeJUnitTest { public void testByteType() throws IOException { ByteArrayOutputStream baos = new ByteArrayOutputStream(); DataOutputStream out = new DataOutputStream(baos); - out.writeByte(DSCODE.BYTE_TYPE); + out.writeByte(DSCODE.BYTE_TYPE.toByte()); byte[] bytes = baos.toByteArray(); String type = DataType.getDataType(bytes); assertEquals("java.lang.Byte.class", type); @@ -616,7 +616,7 @@ public class DataTypeJUnitTest { public void testShortType() throws IOException { ByteArrayOutputStream baos = new ByteArrayOutputStream(); DataOutputStream out = new DataOutputStream(baos); - out.writeByte(DSCODE.SHORT_TYPE); + out.writeByte(DSCODE.SHORT_TYPE.toByte()); byte[] bytes = baos.toByteArray(); String type = DataType.getDataType(bytes); assertEquals("java.lang.Short.class", type); @@ -626,7 +626,7 @@ public class DataTypeJUnitTest { public void testIntegerType() throws IOException { ByteArrayOutputStream baos = new ByteArrayOutputStream(); DataOutputStream out = new DataOutputStream(baos); - out.writeByte(DSCODE.INTEGER_TYPE); + out.writeByte(DSCODE.INTEGER_TYPE.toByte()); byte[] bytes = baos.toByteArray(); String type = DataType.getDataType(bytes); assertEquals("java.lang.Integer.class", type); @@ -636,7 +636,7 @@ public class DataTypeJUnitTest { public void testLongType() throws IOException { ByteArrayOutputStream baos = new ByteArrayOutputStream(); DataOutputStream out = new DataOutputStream(baos); - out.writeByte(DSCODE.LONG_TYPE); + out.writeByte(DSCODE.LONG_TYPE.toByte()); byte[] bytes = baos.toByteArray(); String type = DataType.getDataType(bytes); assertEquals("java.lang.Long.class", type); @@ -646,7 +646,7 @@ public class DataTypeJUnitTest { public void testFloatType() throws IOException { ByteArrayOutputStream baos = new ByteArrayOutputStream(); DataOutputStream out = new DataOutputStream(baos); - out.writeByte(DSCODE.FLOAT_TYPE); + out.writeByte(DSCODE.FLOAT_TYPE.toByte()); byte[] bytes = baos.toByteArray(); String type = DataType.getDataType(bytes); assertEquals("java.lang.Float.class", type); @@ -656,7 +656,7 @@ public class DataTypeJUnitTest { public void testDoubleType() throws IOException { ByteArrayOutputStream baos = new ByteArrayOutputStream(); DataOutputStream out = new DataOutputStream(baos); - out.writeByte(DSCODE.DOUBLE_TYPE); + out.writeByte(DSCODE.DOUBLE_TYPE.toByte()); byte[] bytes = baos.toByteArray(); String type = DataType.getDataType(bytes); assertEquals("java.lang.Double.class", type); @@ -666,7 +666,7 @@ public class DataTypeJUnitTest { public void testVoidType() throws IOException { ByteArrayOutputStream baos = new ByteArrayOutputStream(); DataOutputStream out = new DataOutputStream(baos); - out.writeByte(DSCODE.VOID_TYPE); + out.writeByte(DSCODE.VOID_TYPE.toByte()); byte[] bytes = baos.toByteArray(); String type = DataType.getDataType(bytes); assertEquals("java.lang.Void.class", type); @@ -679,7 +679,7 @@ public class DataTypeJUnitTest { byte someUserClassId = 1; ByteArrayOutputStream baos = new ByteArrayOutputStream(); DataOutputStream out = new DataOutputStream(baos); - out.writeByte(DSCODE.USER_CLASS); + out.writeByte(DSCODE.USER_CLASS.toByte()); out.writeByte(someUserClassId); byte[] bytes = baos.toByteArray(); String type = DataType.getDataType(bytes); @@ -691,7 +691,7 @@ public class DataTypeJUnitTest { short someUserClass2Id = 1; ByteArrayOutputStream baos = new ByteArrayOutputStream(); DataOutputStream out = new DataOutputStream(baos); - out.writeByte(DSCODE.USER_CLASS_2); + out.writeByte(DSCODE.USER_CLASS_2.toByte()); out.writeShort(someUserClass2Id); byte[] bytes = baos.toByteArray(); String type = DataType.getDataType(bytes); @@ -703,7 +703,7 @@ public class DataTypeJUnitTest { int someUserClass4Id = 1; ByteArrayOutputStream baos = new ByteArrayOutputStream(); DataOutputStream out = new DataOutputStream(baos); - out.writeByte(DSCODE.USER_CLASS_4); + out.writeByte(DSCODE.USER_CLASS_4.toByte()); out.writeInt(someUserClass4Id); byte[] bytes = baos.toByteArray(); String type = DataType.getDataType(bytes); @@ -724,7 +724,7 @@ public class DataTypeJUnitTest { ByteArrayOutputStream baos = new ByteArrayOutputStream(); DataOutputStream out = new DataOutputStream(baos); - out.writeByte(DSCODE.USER_DATA_SERIALIZABLE); + out.writeByte(DSCODE.USER_DATA_SERIALIZABLE.toByte()); out.writeByte(someClassId); byte[] bytes = baos.toByteArray(); @@ -748,7 +748,7 @@ public class DataTypeJUnitTest { ByteArrayOutputStream baos = new ByteArrayOutputStream(); DataOutputStream out = new DataOutputStream(baos); - out.writeByte(DSCODE.USER_DATA_SERIALIZABLE_2); + out.writeByte(DSCODE.USER_DATA_SERIALIZABLE_2.toByte()); out.writeShort(someClassId); byte[] bytes = baos.toByteArray(); @@ -772,7 +772,7 @@ public class DataTypeJUnitTest { ByteArrayOutputStream baos = new ByteArrayOutputStream(); DataOutputStream out = new DataOutputStream(baos); - out.writeByte(DSCODE.USER_DATA_SERIALIZABLE_4); + out.writeByte(DSCODE.USER_DATA_SERIALIZABLE_4.toByte()); out.writeInt(someClassId); byte[] bytes = baos.toByteArray(); @@ -813,7 +813,7 @@ public class DataTypeJUnitTest { int somePdxTypeInt = 1; ByteArrayOutputStream baos = new ByteArrayOutputStream(); DataOutputStream out = new DataOutputStream(baos); - out.writeByte(DSCODE.PDX); + out.writeByte(DSCODE.PDX.toByte()); out.writeInt(somePdxTypeInt); byte[] bytes = baos.toByteArray(); String type = DataType.getDataType(bytes); @@ -840,7 +840,7 @@ public class DataTypeJUnitTest { ByteArrayOutputStream baos = new ByteArrayOutputStream(); DataOutputStream out = new DataOutputStream(baos); - out.writeByte(DSCODE.GEMFIRE_ENUM); + out.writeByte(DSCODE.GEMFIRE_ENUM.toByte()); byte[] bytes = baos.toByteArray(); String type = DataType.getDataType(bytes); @@ -885,7 +885,7 @@ public class DataTypeJUnitTest { public void testSQLTimestamp() throws IOException { ByteArrayOutputStream baos = new ByteArrayOutputStream(); DataOutputStream out = new DataOutputStream(baos); - out.writeByte(DSCODE.TIMESTAMP); + out.writeByte(DSCODE.TIMESTAMP.toByte()); byte[] bytes = baos.toByteArray(); String type = DataType.getDataType(bytes); assertEquals("java.sql.Timestamp", type); diff --git a/geode-core/src/test/java/org/apache/geode/internal/offheap/MemoryBlockNodeJUnitTest.java b/geode-core/src/test/java/org/apache/geode/internal/offheap/MemoryBlockNodeJUnitTest.java index 3800f20..48e9f02 100644 --- a/geode-core/src/test/java/org/apache/geode/internal/offheap/MemoryBlockNodeJUnitTest.java +++ b/geode-core/src/test/java/org/apache/geode/internal/offheap/MemoryBlockNodeJUnitTest.java @@ -324,7 +324,7 @@ public class MemoryBlockNodeJUnitTest { public void getDataValueWithIllegalDataTypeCatchesIOException() { Object obj = getValue(); storedObject = createValueAsSerializedStoredObject(obj); - storedObject.writeDataByte(0, DSCODE.ILLEGAL); + storedObject.writeDataByte(0, DSCODE.ILLEGAL.toByte()); MemoryBlock mb = new MemoryBlockNode(ma, (MemoryBlock) storedObject); ByteArrayOutputStream errContent = new ByteArrayOutputStream(); System.setErr(new PrintStream(errContent)); diff --git a/geode-core/src/test/java/org/apache/geode/internal/offheap/OffHeapRegionEntryHelperJUnitTest.java b/geode-core/src/test/java/org/apache/geode/internal/offheap/OffHeapRegionEntryHelperJUnitTest.java index 2c38312..a7598a7 100644 --- a/geode-core/src/test/java/org/apache/geode/internal/offheap/OffHeapRegionEntryHelperJUnitTest.java +++ b/geode-core/src/test/java/org/apache/geode/internal/offheap/OffHeapRegionEntryHelperJUnitTest.java @@ -150,7 +150,7 @@ public class OffHeapRegionEntryHelperJUnitTest { @Test public void encodeDataAsAddressShouldReturnZeroIfValueIsLargerThanEightBytesAndNotLong() { byte[] someValue = new byte[8]; - someValue[0] = DSCODE.CLASS; + someValue[0] = DSCODE.CLASS.toByte(); boolean isSerialized = true; boolean isCompressed = false; diff --git a/geode-core/src/test/java/org/apache/geode/internal/offheap/OffHeapStoredObjectJUnitTest.java b/geode-core/src/test/java/org/apache/geode/internal/offheap/OffHeapStoredObjectJUnitTest.java index 1e37e65..1554300 100644 --- a/geode-core/src/test/java/org/apache/geode/internal/offheap/OffHeapStoredObjectJUnitTest.java +++ b/geode-core/src/test/java/org/apache/geode/internal/offheap/OffHeapStoredObjectJUnitTest.java @@ -375,19 +375,19 @@ public class OffHeapStoredObjectJUnitTest extends AbstractStoredObjectTestBase { OffHeapStoredObject chunk = createValueAsSerializedStoredObject(getValue()); byte[] serailizedValue = chunk.getSerializedValue(); - serailizedValue[0] = DSCODE.PDX; + serailizedValue[0] = DSCODE.PDX.toByte(); chunk.setSerializedValue(serailizedValue); assertThat(chunk.isSerializedPdxInstance()).isTrue(); serailizedValue = chunk.getSerializedValue(); - serailizedValue[0] = DSCODE.PDX_ENUM; + serailizedValue[0] = DSCODE.PDX_ENUM.toByte(); chunk.setSerializedValue(serailizedValue); assertThat(chunk.isSerializedPdxInstance()).isTrue(); serailizedValue = chunk.getSerializedValue(); - serailizedValue[0] = DSCODE.PDX_INLINE_ENUM; + serailizedValue[0] = DSCODE.PDX_INLINE_ENUM.toByte(); chunk.setSerializedValue(serailizedValue); assertThat(chunk.isSerializedPdxInstance()).isTrue(); @@ -572,7 +572,7 @@ public class OffHeapStoredObjectJUnitTest extends AbstractStoredObjectTestBase { byte[] actual = dataOutput.toByteArray(); byte[] expected = new byte[regionEntryValue.length + 2]; - expected[0] = DSCODE.BYTE_ARRAY; + expected[0] = DSCODE.BYTE_ARRAY.toByte(); expected[1] = (byte) regionEntryValue.length; System.arraycopy(regionEntryValue, 0, expected, 2, regionEntryValue.length); diff --git a/geode-core/src/test/java/org/apache/geode/internal/offheap/TinyStoredObjectJUnitTest.java b/geode-core/src/test/java/org/apache/geode/internal/offheap/TinyStoredObjectJUnitTest.java index 7d2efac..c20cff0 100644 --- a/geode-core/src/test/java/org/apache/geode/internal/offheap/TinyStoredObjectJUnitTest.java +++ b/geode-core/src/test/java/org/apache/geode/internal/offheap/TinyStoredObjectJUnitTest.java @@ -23,6 +23,7 @@ import org.junit.Test; import org.junit.experimental.categories.Category; import org.apache.geode.compression.Compressor; +import org.apache.geode.internal.DSCODE; import org.apache.geode.internal.cache.BytesAndBitsForCompactor; import org.apache.geode.internal.cache.CachePerfStats; import org.apache.geode.internal.cache.EntryEventImpl; @@ -346,7 +347,7 @@ public class TinyStoredObjectJUnitTest extends AbstractStoredObjectTestBase { byte[] serializedValue = EntryEventImpl.serialize(regionEntryValueAsBytes); // store -127 (DSCODE.ILLEGAL) - in order the deserialize to throw exception - serializedValue[0] = -127; + serializedValue[0] = DSCODE.ILLEGAL.toByte(); // encode a un serialized entry value to address long encodedAddress = diff --git a/geode-core/src/test/java/org/apache/geode/pdx/PdxSerializableJUnitTest.java b/geode-core/src/test/java/org/apache/geode/pdx/PdxSerializableJUnitTest.java index 37ac5f9..04b44fd 100644 --- a/geode-core/src/test/java/org/apache/geode/pdx/PdxSerializableJUnitTest.java +++ b/geode-core/src/test/java/org/apache/geode/pdx/PdxSerializableJUnitTest.java @@ -293,13 +293,13 @@ public class PdxSerializableJUnitTest { DataSerializer.writeObject(object, out); int typeId = getPdxTypeIdForClass(SimpleClass.class); byte[] actual = out.toByteArray(); - byte[] expected = new byte[] {DSCODE.PDX, // byte + byte[] expected = new byte[] {DSCODE.PDX.toByte(), // byte 0, 0, 0, 4 + 1 + 1, // int - length of byte stream = 4(myInt) + 1(myByte) + 1 (myEnum) (byte) (typeId >> 24), (byte) (typeId >> 16), (byte) (typeId >> 8), (byte) typeId, // int - // typeId 0, 0, 0, 1, // int - myInt = 1 5, // byte - myByte = 5 - DSCODE.NULL}; + DSCODE.NULL.toByte()}; StringBuffer msg = new StringBuffer("Actual output: "); for (byte val : actual) { @@ -364,7 +364,7 @@ public class PdxSerializableJUnitTest { int offset3 = offset1 + 8 + str1Bytes.length + str2Bytes.length; byte[] actual = out.toByteArray(); int floatBytes = Float.floatToRawIntBits(myFloat); - Byte[] expected = new Byte[] {DSCODE.PDX, // byte + Byte[] expected = new Byte[] {DSCODE.PDX.toByte(), // byte (byte) (length >> 24), (byte) (length >> 16), (byte) (length >> 8), (byte) length, // int - // length // of @@ -392,7 +392,7 @@ public class PdxSerializableJUnitTest { // for: // 1 // for - // DSCODE.PDX + // DSCODE.PDX.toByte() // and // 4 // for @@ -591,7 +591,7 @@ public class PdxSerializableJUnitTest { int offset3 = offset1 + 8 + str1Bytes.length + str2Bytes.length; byte[] actual = out.toByteArray(); int floatBytes = Float.floatToRawIntBits(myFloat); - Byte[] expected = new Byte[] {DSCODE.PDX, // byte + Byte[] expected = new Byte[] {DSCODE.PDX.toByte(), // byte (byte) (length >> 24), (byte) (length >> 16), (byte) (length >> 8), (byte) length, // int - // length // of @@ -619,7 +619,7 @@ public class PdxSerializableJUnitTest { // for: // 1 // for - // DSCODE.PDX + // DSCODE.PDX.toByte() // and // 4 // for @@ -803,7 +803,7 @@ public class PdxSerializableJUnitTest { int offset3 = offset1 + 8 + str1Bytes.length + mapBytes.length; byte[] actual = out.toByteArray(); int floatBytes = Float.floatToRawIntBits(myFloat); - Byte[] expected = new Byte[] {DSCODE.PDX, // byte + Byte[] expected = new Byte[] {DSCODE.PDX.toByte(), // byte (byte) (length >> 24), (byte) (length >> 16), (byte) (length >> 8), (byte) length, // int - // length // of @@ -901,7 +901,7 @@ public class PdxSerializableJUnitTest { int offset3 = offset1 + 8 + str1Bytes.length + dsBytes.length; byte[] actual = out.toByteArray(); int floatBytes = Float.floatToRawIntBits(myFloat); - Byte[] expected = new Byte[] {DSCODE.PDX, // byte + Byte[] expected = new Byte[] {DSCODE.PDX.toByte(), // byte (byte) (length >> 24), (byte) (length >> 16), (byte) (length >> 8), (byte) length, // int - // length // of @@ -925,7 +925,7 @@ public class PdxSerializableJUnitTest { // for: // 1 // for - // DSCODE.PDX + // DSCODE.PDX.toByte() // and // 4 // for @@ -1012,7 +1012,7 @@ public class PdxSerializableJUnitTest { byte[] actual = out.toByteArray(); int floatBytes = Float.floatToRawIntBits(myFloat); - Byte[] expected = new Byte[] {DSCODE.DATA_SERIALIZABLE, // byte + Byte[] expected = new Byte[] {DSCODE.DATA_SERIALIZABLE.toByte(), // byte (byte) (myLong >> 56), (byte) (myLong >> 48), (byte) (myLong >> 40), (byte) (myLong >> 32), (byte) (myLong >> 24), (byte) (myLong >> 16), (byte) (myLong >> 8), (byte) myLong, // long - // myLong diff --git a/geode-core/src/test/resources/org/apache/geode/codeAnalysis/excludedClasses.txt b/geode-core/src/test/resources/org/apache/geode/codeAnalysis/excludedClasses.txt index fdc1c43..fef1243 100644 --- a/geode-core/src/test/resources/org/apache/geode/codeAnalysis/excludedClasses.txt +++ b/geode-core/src/test/resources/org/apache/geode/codeAnalysis/excludedClasses.txt @@ -12,6 +12,7 @@ org/apache/geode/distributed/internal/membership/gms/mgr/GMSMembershipManager$Bo org/apache/geode/distributed/internal/tcpserver/LocatorCancelException org/apache/geode/internal/AbstractConfig$SortedProperties org/apache/geode/internal/AvailablePort$Keeper +org/apache/geode/internal/DSCODE org/apache/geode/internal/ExitCode org/apache/geode/internal/JarDeployer org/apache/geode/internal/ObjIdConcurrentMap @@ -90,4 +91,4 @@ org/apache/geode/cache/query/internal/types/TypeUtils$ComparisonStrategy$3 org/apache/geode/cache/query/internal/types/TypeUtils$ComparisonStrategy$4 org/apache/geode/cache/query/internal/types/TypeUtils$ComparisonStrategy$5 org/apache/geode/cache/client/internal/pooling/ConnectionManagerImpl$ClosedPoolConnectionList -org/apache/geode/cache/query/internal/parse/ASTArithmeticOp \ No newline at end of file +org/apache/geode/cache/query/internal/parse/ASTArithmeticOp diff --git a/geode-core/src/test/resources/org/apache/geode/codeAnalysis/sanctionedDataSerializables.txt b/geode-core/src/test/resources/org/apache/geode/codeAnalysis/sanctionedDataSerializables.txt index 62f44ff..f22486f 100644 --- a/geode-core/src/test/resources/org/apache/geode/codeAnalysis/sanctionedDataSerializables.txt +++ b/geode-core/src/test/resources/org/apache/geode/codeAnalysis/sanctionedDataSerializables.txt @@ -1912,7 +1912,7 @@ fromData,171 toData,162 org/apache/geode/internal/cache/tier/sockets/HAEventWrapper,2 -fromData,432 +fromData,440 toData,90 org/apache/geode/internal/cache/tier/sockets/InterestResultPolicyImpl,2 -- To stop receiving notification emails like this one, please contact pivotalsa...@apache.org.