Skip to content

Commit 5950c5e

Browse files
committed
Fix byCode implementation
1 parent e84ffec commit 5950c5e

File tree

4 files changed

+7
-10
lines changed

4 files changed

+7
-10
lines changed

src/main/java/com/github/shyiko/mysql/binlog/event/deserialization/ColumnType.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ public int getCode() {
7070
private static final ColumnType[] INDEX_BY_CODE;
7171

7272
static {
73-
INDEX_BY_CODE = new ColumnType[ColumnType.GEOMETRY.code];
73+
INDEX_BY_CODE = new ColumnType[ColumnType.GEOMETRY.code + 1];
7474
for (ColumnType columnType : values()) {
7575
INDEX_BY_CODE[columnType.code] = columnType;
7676
}

src/main/java/com/github/shyiko/mysql/binlog/event/deserialization/EventDeserializer.java

+2-3
Original file line numberDiff line numberDiff line change
@@ -569,9 +569,8 @@ public EventData deserialize(ByteArrayInputStream inputStream) throws IOExceptio
569569
public EventData deserialize(BinaryLogEventDataReader eventDataReader) throws IOException {
570570
byte[] bytes = eventDataReader.readBytes(eventDataReader.available());
571571

572-
// TODO: use BinaryLogEventDataReader
573-
EventData internalEventData = internal.deserialize(new ByteArrayInputStream(bytes));
574-
EventData externalEventData = external.deserialize(new ByteArrayInputStream(bytes));
572+
EventData internalEventData = internal.deserialize(new BinaryLogEventDataReader(bytes));
573+
EventData externalEventData = external.deserialize(new BinaryLogEventDataReader(bytes));
575574
return new EventDataWrapper(internalEventData, externalEventData);
576575
}
577576
}

src/main/java/com/github/shyiko/mysql/binlog/event/deserialization/TableMapEventMetadataDeserializer.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -405,7 +405,7 @@ private MetadataFieldType(int code) {
405405
private static final MetadataFieldType[] INDEX_BY_CODE;
406406

407407
static {
408-
INDEX_BY_CODE = new MetadataFieldType[MetadataFieldType.UNKNOWN_METADATA_FIELD_TYPE.code];
408+
INDEX_BY_CODE = new MetadataFieldType[MetadataFieldType.UNKNOWN_METADATA_FIELD_TYPE.code + 1];
409409
for (MetadataFieldType fieldType : values()) {
410410
INDEX_BY_CODE[fieldType.code] = fieldType;
411411
}

src/main/java/com/github/shyiko/mysql/binlog/event/deserialization/TransactionPayloadEventDataDeserializer.java

+3-5
Original file line numberDiff line numberDiff line change
@@ -150,16 +150,14 @@ public TransactionPayloadEventData deserialize(BinaryLogEventDataReader eventDat
150150
byte[] dst = ByteBuffer.allocate(eventData.getUncompressedSize()).array();
151151
Zstd.decompressByteArray(dst, 0, dst.length, src, 0, src.length);
152152

153-
// Read and store events from decompressed byte array into input stream
154153
ArrayList<Event> decompressedEvents = new ArrayList<>();
155154
EventDeserializer transactionPayloadEventDeserializer = new EventDeserializer();
156-
ByteArrayInputStream destinationInputStream = new ByteArrayInputStream(dst);
155+
BinaryLogEventDataReader decompressedReader = new BinaryLogEventDataReader(dst);
157156

158-
// TODO: use BinaryLogEventDataReader here as well
159-
Event internalEvent = transactionPayloadEventDeserializer.nextEvent(destinationInputStream);
157+
Event internalEvent = transactionPayloadEventDeserializer.deserializeEvent(decompressedReader);
160158
while (internalEvent != null) {
161159
decompressedEvents.add(internalEvent);
162-
internalEvent = transactionPayloadEventDeserializer.nextEvent(destinationInputStream);
160+
internalEvent = transactionPayloadEventDeserializer.deserializeEvent(decompressedReader);
163161
}
164162

165163
eventData.setUncompressedEvents(decompressedEvents);

0 commit comments

Comments
 (0)