core/src/main/java/com/orientechnologies/orient/core/serialization/serializer/binary/impl/OLinkSerializer.java
@Override
  public OIdentifiable deserializeFromByteBufferObject(ByteBuffer buffer, OWALChanges walChanges, int offset) {
    final int clusterId = walChanges.getShortValue(buffer, offset);

    // Wrong implementation but needed for binary compatibility
    final long clusterPosition = OLongSerializer.INSTANCE
        .deserialize(walChanges.getBinaryValue(buffer, offset + OShortSerializer.SHORT_SIZE, OLongSerializer.LONG_SIZE), 0);

    // final long clusterPosition = OLongSerializer.INSTANCE
    // .deserializeFromDirectMemory(pointer, offset + OShortSerializer.SHORT_SIZE);

    return new ORecordId(clusterId, clusterPosition);
  }
@Override
  public OIdentifiable deserializeFromByteBufferObject(ByteBuffer buffer, OWALChanges walChanges, int offset) {
    final int clusterId = walChanges.getShortValue(buffer, offset);

    // Wrong implementation but needed for binary compatibility
    final long clusterPosition = OLongSerializer.INSTANCE
        .deserialize(walChanges.getBinaryValue(buffer, offset + OShortSerializer.SHORT_SIZE, OLongSerializer.LONG_SIZE), 0);

    // final long clusterPosition = OLongSerializer.INSTANCE
    // .deserializeFromDirectMemory(pointer, offset + OShortSerializer.SHORT_SIZE);

    return new ORecordId(clusterId, clusterPosition);
  }
{@inheritDoc}