Skip to content

serialize ByteBuffer report error #1577

@stardustman

Description

@stardustman

Search before asking

  • I had searched in the issues and found no similar issues.

Version

  1. jdk1.8.0_241
  2. fury v0.4.1

Component(s)

Java

Minimal reproduce step

test code as follows:

public class FurySerde {

    // Note that Fury instances should be reused between
    // multiple serializations of different objects.
    private static final ThreadSafeFury fury = new ThreadLocalFury(classLoader -> {
        Fury f = Fury.builder()
                .withLanguage(Language.JAVA)
                .withClassLoader(classLoader)
                .requireClassRegistration(false)
                .build();
        return f;
    });

    public static byte[] encoder(Object object) {
        return fury.serialize(object);
    }

    public static <T> T decoder(byte[] bytes) {
        return (T) fury.deserialize(bytes);
    }

    public static void main(String[] args) {
        byte len = 10;
        ByteBuffer byteBuffer = ByteBuffer.allocate(len);
        for (int i = 0; i < len; i++) {
            byteBuffer.put((byte) i);
        }
        System.out.println(FurySerde.encoder(byteBuffer).length);
    }

}

What did you expect to see?

get the size of serialization byte array

What did you see instead?

Exception in thread "main" java.lang.NoSuchMethodError: java.nio.ByteBuffer.position(I)Ljava/nio/ByteBuffer;
at io.fury.memory.MemoryBuffer.put(MemoryBuffer.java:404)
at io.fury.memory.MemoryBuffer.write(MemoryBuffer.java:1935)
at io.fury.memory.MemoryBuffer.write(MemoryBuffer.java:1928)
at io.fury.serializer.BufferObject$ByteBufferBufferObject.writeTo(BufferObject.java:59)
at io.fury.Fury.writeBufferObject(Fury.java:571)
at io.fury.serializer.BufferSerializers$ByteBufferSerializer.write(BufferSerializers.java:45)
at io.fury.serializer.BufferSerializers$ByteBufferSerializer.write(BufferSerializers.java:36)
at io.fury.Fury.writeData(Fury.java:551)
at io.fury.Fury.writeRef(Fury.java:344)
at io.fury.Fury.write(Fury.java:319)
at io.fury.Fury.serialize(Fury.java:255)
at io.fury.Fury.serialize(Fury.java:221)
at io.fury.ThreadLocalFury.serialize(ThreadLocalFury.java:67)
at benchmarks.serde.FurySerde.encoder(FurySerde.java:37)
at benchmarks.serde.FurySerde.main(FurySerde.java:51)

Anything Else?

No response

Are you willing to submit a PR?

  • I'm willing to submit a PR!

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions