Hello,

I am facing "org.apache.ignite.binary.BinaryObjectException: Method
"rawReader" can be called only once." when tried to use raw mode.

I have a super class and few extending classes, both are implementing
Binarylizable. In readBinary method of extending class calling
"super.readBinary(binaryReader)" which seems to cause the issue
because binaryReader.rawReader() is called once in extending class and
one more time in super class. To resolve I am having refactoring in
super class by adding public method with BinaryRawReader parameter, Is
there a better way to achieve rawmode for extending class?

Super Class -
public void writeBinary(BinaryWriter binaryWriter) throws
BinaryObjectException {
        BinaryRawWriter writer = binaryWriter.rawWriter();
        writer.writeLong(id);
...
...
...
}

public void readBinary(BinaryReader binaryReader) throws BinaryObjectException {
        BinaryRawReader reader = binaryReader.rawReader();
        id=reader.readLong();
...
...
...
}

Extending class -
public void writeBinary(BinaryWriter binaryWriter) throws
BinaryObjectException {
        super.writeBinary(binaryWriter);
        BinaryRawWriter writer = binaryWriter.rawWriter();
        writer.writeLong(subId);
...
...
...
}

public void readBinary(BinaryReader binaryReader) throws BinaryObjectException {
        super.readBinary(binaryReader);
        BinaryRawReader reader = binaryReader.rawReader();
        subId = reader.readLong();
...
...
...
}

I am Using Ignite 2.7

Thanks,
-Sam

Reply via email to