Coder Social home page Coder Social logo

Comments (11)

sbernard31 avatar sbernard31 commented on September 23, 2024

The resource 4/0/6 is defined as an integer. You try to write a string.
The log say: java.lang.IllegalArgumentException: Invalid value type, expected INTEGER, got STRING

If you want to write a string, you should choose a string resource.

from leshan.

Endebert avatar Endebert commented on September 23, 2024

Sorry for the mistake. I originally encountered the error in an earlier version and just tried to do a small test with the most current version.

I've adapted the test to respond to a resource that is defined as string. While the client seems to be able to send the contents, the server seems unable to decode it:

org.eclipse.leshan.core.request.exception.ResourceAccessException: [Unable to decode tlv.] (/4/0/4:2.05)
    at org.eclipse.leshan.server.californium.impl.LwM2mResponseBuilder.decodeCoapResponse(LwM2mResponseBuilder.java:335) ~[rethink-lhcb-broker-0.1.0-jar-with-dependencies.jar:?]
    at org.eclipse.leshan.server.californium.impl.LwM2mResponseBuilder.visit(LwM2mResponseBuilder.java:115) ~[rethink-lhcb-broker-0.1.0-jar-with-dependencies.jar:?]
    at org.eclipse.leshan.core.request.ReadRequest.accept(ReadRequest.java:79) ~[rethink-lhcb-broker-0.1.0-jar-with-dependencies.jar:?]
    at org.eclipse.leshan.server.californium.impl.CaliforniumLwM2mRequestSender$1.buildResponse(CaliforniumLwM2mRequestSender.java:93) ~[rethink-lhcb-broker-0.1.0-jar-with-dependencies.jar:?]
    at org.eclipse.leshan.server.californium.impl.CaliforniumLwM2mRequestSender$SyncRequestObserver.onResponse(CaliforniumLwM2mRequestSender.java:319) ~[rethink-lhcb-broker-0.1.0-jar-with-dependencies.jar:?]
    at org.eclipse.californium.core.coap.Request.setResponse(Request.java:416) ~[rethink-lhcb-broker-0.1.0-jar-with-dependencies.jar:?]
    at org.eclipse.californium.core.server.ServerMessageDeliverer.deliverResponse(ServerMessageDeliverer.java:155) ~[rethink-lhcb-broker-0.1.0-jar-with-dependencies.jar:?]
    at org.eclipse.californium.core.network.stack.CoapStack$StackTopAdapter.receiveResponse(CoapStack.java:193) ~[rethink-lhcb-broker-0.1.0-jar-with-dependencies.jar:?]
    at org.eclipse.californium.core.network.stack.AbstractLayer.receiveResponse(AbstractLayer.java:98) ~[rethink-lhcb-broker-0.1.0-jar-with-dependencies.jar:?]
    at org.eclipse.californium.core.network.stack.ObserveLayer.receiveResponse(ObserveLayer.java:138) ~[rethink-lhcb-broker-0.1.0-jar-with-dependencies.jar:?]
    at org.eclipse.californium.core.network.stack.AbstractLayer.receiveResponse(AbstractLayer.java:98) ~[rethink-lhcb-broker-0.1.0-jar-with-dependencies.jar:?]
    at org.eclipse.californium.core.network.stack.BlockwiseLayer.receiveResponse(BlockwiseLayer.java:453) ~[rethink-lhcb-broker-0.1.0-jar-with-dependencies.jar:?]
    at org.eclipse.californium.core.network.stack.AbstractLayer.receiveResponse(AbstractLayer.java:98) ~[rethink-lhcb-broker-0.1.0-jar-with-dependencies.jar:?]
    at org.eclipse.californium.core.network.stack.ReliabilityLayer.receiveResponse(ReliabilityLayer.java:257) ~[rethink-lhcb-broker-0.1.0-jar-with-dependencies.jar:?]
    at org.eclipse.californium.core.network.stack.AbstractLayer.receiveResponse(AbstractLayer.java:98) ~[rethink-lhcb-broker-0.1.0-jar-with-dependencies.jar:?]
    at org.eclipse.californium.core.network.stack.CoapStack.receiveResponse(CoapStack.java:135) ~[rethink-lhcb-broker-0.1.0-jar-with-dependencies.jar:?]
    at org.eclipse.californium.core.network.CoapEndpoint$InboxImpl.receiveMessage(CoapEndpoint.java:630) ~[rethink-lhcb-broker-0.1.0-jar-with-dependencies.jar:?]
    at org.eclipse.californium.core.network.CoapEndpoint$InboxImpl.access$700(CoapEndpoint.java:536) ~[rethink-lhcb-broker-0.1.0-jar-with-dependencies.jar:?]
    at org.eclipse.californium.core.network.CoapEndpoint$InboxImpl$1.run(CoapEndpoint.java:548) ~[rethink-lhcb-broker-0.1.0-jar-with-dependencies.jar:?]
    at org.eclipse.californium.core.network.CoapEndpoint$5.run(CoapEndpoint.java:695) ~[rethink-lhcb-broker-0.1.0-jar-with-dependencies.jar:?]
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) ~[?:1.7.0_95]
    at java.util.concurrent.FutureTask.run(FutureTask.java:262) ~[?:1.7.0_95]
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:178) ~[?:1.7.0_95]
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:292) ~[?:1.7.0_95]
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) ~[?:1.7.0_95]
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) ~[?:1.7.0_95]
    at java.lang.Thread.run(Thread.java:745) [?:1.7.0_95]
Caused by: org.eclipse.leshan.core.node.codec.InvalidValueException: Unable to decode tlv.
    at org.eclipse.leshan.core.node.codec.tlv.LwM2mNodeTlvDecoder.decode(LwM2mNodeTlvDecoder.java:53) ~[rethink-lhcb-broker-0.1.0-jar-with-dependencies.jar:?]
    at org.eclipse.leshan.core.node.codec.LwM2mNodeDecoder.decode(LwM2mNodeDecoder.java:98) ~[rethink-lhcb-broker-0.1.0-jar-with-dependencies.jar:?]
    at org.eclipse.leshan.core.node.codec.LwM2mNodeDecoder.decode(LwM2mNodeDecoder.java:54) ~[rethink-lhcb-broker-0.1.0-jar-with-dependencies.jar:?]
    at org.eclipse.leshan.server.californium.impl.LwM2mResponseBuilder.decodeCoapResponse(LwM2mResponseBuilder.java:330) ~[rethink-lhcb-broker-0.1.0-jar-with-dependencies.jar:?]
    ... 26 more
Caused by: org.eclipse.leshan.tlv.TlvException: Impossible to parse TLV: 
9804173e705800173e6b4c796f71436941714945427361574e6c626e4e6c494546755a33567359584a4b557942324d5334314c6a414b49436f674b474d70494449774d5441744d6a41784e6942486232396e624755730a49456c75597934676148523063446f764c3246
...
5731680a64475574633268706258743261584e70596d6c73615852354f6d68705a47526c626a74394c6d356e4c57467559326876636e747762334e7064476c76626a7068596e4e76624856305a5474390a5043397a64486c735a54346e4b54733d
    at org.eclipse.leshan.tlv.TlvDecoder.decode(TlvDecoder.java:142) ~[rethink-lhcb-broker-0.1.0-jar-with-dependencies.jar:?]
    at org.eclipse.leshan.core.node.codec.tlv.LwM2mNodeTlvDecoder.decode(LwM2mNodeTlvDecoder.java:50) ~[rethink-lhcb-broker-0.1.0-jar-with-dependencies.jar:?]
    at org.eclipse.leshan.core.node.codec.LwM2mNodeDecoder.decode(LwM2mNodeDecoder.java:98) ~[rethink-lhcb-broker-0.1.0-jar-with-dependencies.jar:?]
    at org.eclipse.leshan.core.node.codec.LwM2mNodeDecoder.decode(LwM2mNodeDecoder.java:54) ~[rethink-lhcb-broker-0.1.0-jar-with-dependencies.jar:?]
    at org.eclipse.leshan.server.californium.impl.LwM2mResponseBuilder.decodeCoapResponse(LwM2mResponseBuilder.java:330) ~[rethink-lhcb-broker-0.1.0-jar-with-dependencies.jar:?]
    ... 26 more
Caused by: org.eclipse.leshan.tlv.TlvException: Unexpected TLV parse error: 
9804173e705800173e6b4c796f71436941714945427361574e6c626e4e6c494546755a33567359584a4b557942324d5334314c6a414b49436f674b474d70494449774d5441744d6a41784e6942486232396e624755730a49456c75597934676148523063446f764c3246
...
5731680a64475574633268706258743261584e70596d6c73615852354f6d68705a47526c626a74394c6d356e4c57467559326876636e747762334e7064476c76626a7068596e4e76624856305a5474390a5043397a64486c735a54346e4b54733d
    at org.eclipse.leshan.tlv.TlvDecoder.decode(TlvDecoder.java:145) ~[rethink-lhcb-broker-0.1.0-jar-with-dependencies.jar:?]
    at org.eclipse.leshan.tlv.TlvDecoder.decode(TlvDecoder.java:126) ~[rethink-lhcb-broker-0.1.0-jar-with-dependencies.jar:?]
    at org.eclipse.leshan.core.node.codec.tlv.LwM2mNodeTlvDecoder.decode(LwM2mNodeTlvDecoder.java:50) ~[rethink-lhcb-broker-0.1.0-jar-with-dependencies.jar:?]
    at org.eclipse.leshan.core.node.codec.LwM2mNodeDecoder.decode(LwM2mNodeDecoder.java:98) ~[rethink-lhcb-broker-0.1.0-jar-with-dependencies.jar:?]
    at org.eclipse.leshan.core.node.codec.LwM2mNodeDecoder.decode(LwM2mNodeDecoder.java:54) ~[rethink-lhcb-broker-0.1.0-jar-with-dependencies.jar:?]
    at org.eclipse.leshan.server.californium.impl.LwM2mResponseBuilder.decodeCoapResponse(LwM2mResponseBuilder.java:330) ~[rethink-lhcb-broker-0.1.0-jar-with-dependencies.jar:?]
    ... 26 more
Caused by: java.nio.BufferUnderflowException
    at java.nio.HeapByteBuffer.get(HeapByteBuffer.java:145) ~[?:1.7.0_95]
    at java.nio.ByteBuffer.get(ByteBuffer.java:694) ~[?:1.7.0_95]
    at org.eclipse.leshan.tlv.TlvDecoder.decode(TlvDecoder.java:111) ~[rethink-lhcb-broker-0.1.0-jar-with-dependencies.jar:?]
    at org.eclipse.leshan.tlv.TlvDecoder.decode(TlvDecoder.java:126) ~[rethink-lhcb-broker-0.1.0-jar-with-dependencies.jar:?]
    at org.eclipse.leshan.core.node.codec.tlv.LwM2mNodeTlvDecoder.decode(LwM2mNodeTlvDecoder.java:50) ~[rethink-lhcb-broker-0.1.0-jar-with-dependencies.jar:?]
    at org.eclipse.leshan.core.node.codec.LwM2mNodeDecoder.decode(LwM2mNodeDecoder.java:98) ~[rethink-lhcb-broker-0.1.0-jar-with-dependencies.jar:?]
    at org.eclipse.leshan.core.node.codec.LwM2mNodeDecoder.decode(LwM2mNodeDecoder.java:54) ~[rethink-lhcb-broker-0.1.0-jar-with-dependencies.jar:?]
    at org.eclipse.leshan.server.californium.impl.LwM2mResponseBuilder.decodeCoapResponse(LwM2mResponseBuilder.java:330) ~[rethink-lhcb-broker-0.1.0-jar-with-dependencies.jar:?]
    ... 26 more

from leshan.

sbernard31 avatar sbernard31 commented on September 23, 2024

You choose the /4/0/4 resource which is a multiple instance resource are you sure this is what you want to do ? Why not using a single instance string resource ?
Did you use Leshan Client to encode you TLV ?

from leshan.

Endebert avatar Endebert commented on September 23, 2024

@sbernard31 Sorry for the inconvenience, I think I found the reason why I've had so much trouble with this.

After testing with a custom model that only has a single instance string resource, I found the following:

If I request only the resource, i.e. /3000/0/0, it works. Changing the resource to opaque, it also works.

But if I request the instance, i.e. /3000/0, it doesn't work, independently of using a string or opaque resource.

from leshan.

sbernard31 avatar sbernard31 commented on September 23, 2024

What do you mean by "it doesn't work" ? Could you be more accurate ?
I need more input (logs, the string or opaque you try to encode, or the TLV you try to decode)

from leshan.

Endebert avatar Endebert commented on September 23, 2024

OK, first the server part where I'm requesting the resource/instance.

ReadResponse response;
boolean requestResource = true;

if (requestResource) {
    response = server.send(client, new ReadRequest(3000, 0, 0));
} else {
    response = server.send(client, new ReadRequest(3000, 0));
}

if (response.getCode().equals(ResponseCode.CONTENT)) {
    response.getContent().accept(new LwM2mNodeVisitor() {
        @Override
        public void visit(LwM2mObject object) {
            LOG.debug("got object");
        }

        @Override
        public void visit(LwM2mObjectInstance instance) {
            LOG.debug("got instance");
        }

        @Override
        public void visit(LwM2mResource resource) {
            if (resource.getType().equals(ResourceModel.Type.OPAQUE)) {
                LOG.debug("TYPE IS OPAQUE");
            } else {
                LOG.debug("TYPE IS STRING");
            }
        }
    });
}

Second, the custom BaseInstanceEnabler I use for testing:

public class CustomBaseInstanceEnabler extends BaseInstanceEnabler {
    private byte[] encoded = null;
    private String veryLongString = null;

    public CustomBaseInstanceEnabler() {
        try {
            encoded = Files.readAllBytes(Paths.get("test.txt"));
            veryLongString = new String(encoded, Charset.forName("UTF-8"));
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    @Override
    public ReadResponse read(int resourceid) {
        switch (resourceid) {
            case 0:
                //LOG.debug("sending byte array");
                //return ReadResponse.success(resourceid, encoded);
                LOG.debug("sending string");
                return ReadResponse.success(resourceid, veryLongString);
        }
        return super.read(resourceid);
    }
}

My custom model:

[
  {
    "name": "Test",
    "id": 3000,
    "instancetype": "single",
    "mandatory": true,
    "description": "test model",
    "resourcedefs": [
      {
        "id": 0,
        "name": "someName",
        "operations": "RW",
        "instancetype": "single",
        "mandatory": true,
        "type": "string",
        "range": "",
        "units": "",
        "description": ""
      }
    ]
  }
]

For testing the string response, I set the type in the model to "string" and send the veryLongString variable.
For testing the byte array response, I set the type in the model to "opaque" and send the encoded variable.

Based on requestResource, I can either request the resource or the whole instance.

As I mentioned, requesting only the resource (/3000/0/0) works, the server behaves as intended:

2016-03-30 17:24:34,981 DEBUG WellKnownServlet TYPE IS STRING

When requesting the instance, I expect a simple output of got instance, but instead I get the following:

org.eclipse.leshan.core.request.exception.ResourceAccessException: [Unable to decode tlv.] (/3000/0:2.05)
    at org.eclipse.leshan.server.californium.impl.LwM2mResponseBuilder.decodeCoapResponse(LwM2mResponseBuilder.java:335) ~[rethink-lhcb-broker-0.1.0-jar-with-dependencies.jar:?]
    at org.eclipse.leshan.server.californium.impl.LwM2mResponseBuilder.visit(LwM2mResponseBuilder.java:115) ~[rethink-lhcb-broker-0.1.0-jar-with-dependencies.jar:?]
    at org.eclipse.leshan.core.request.ReadRequest.accept(ReadRequest.java:79) ~[rethink-lhcb-broker-0.1.0-jar-with-dependencies.jar:?]
    at org.eclipse.leshan.server.californium.impl.CaliforniumLwM2mRequestSender$1.buildResponse(CaliforniumLwM2mRequestSender.java:93) ~[rethink-lhcb-broker-0.1.0-jar-with-dependencies.jar:?]
    at org.eclipse.leshan.server.californium.impl.CaliforniumLwM2mRequestSender$SyncRequestObserver.onResponse(CaliforniumLwM2mRequestSender.java:319) ~[rethink-lhcb-broker-0.1.0-jar-with-dependencies.jar:?]
    at org.eclipse.californium.core.coap.Request.setResponse(Request.java:416) ~[rethink-lhcb-broker-0.1.0-jar-with-dependencies.jar:?]
    at org.eclipse.californium.core.server.ServerMessageDeliverer.deliverResponse(ServerMessageDeliverer.java:155) ~[rethink-lhcb-broker-0.1.0-jar-with-dependencies.jar:?]
    at org.eclipse.californium.core.network.stack.CoapStack$StackTopAdapter.receiveResponse(CoapStack.java:193) ~[rethink-lhcb-broker-0.1.0-jar-with-dependencies.jar:?]
    at org.eclipse.californium.core.network.stack.AbstractLayer.receiveResponse(AbstractLayer.java:98) ~[rethink-lhcb-broker-0.1.0-jar-with-dependencies.jar:?]
    at org.eclipse.californium.core.network.stack.ObserveLayer.receiveResponse(ObserveLayer.java:138) ~[rethink-lhcb-broker-0.1.0-jar-with-dependencies.jar:?]
    at org.eclipse.californium.core.network.stack.AbstractLayer.receiveResponse(AbstractLayer.java:98) ~[rethink-lhcb-broker-0.1.0-jar-with-dependencies.jar:?]
    at org.eclipse.californium.core.network.stack.BlockwiseLayer.receiveResponse(BlockwiseLayer.java:453) ~[rethink-lhcb-broker-0.1.0-jar-with-dependencies.jar:?]
    at org.eclipse.californium.core.network.stack.AbstractLayer.receiveResponse(AbstractLayer.java:98) ~[rethink-lhcb-broker-0.1.0-jar-with-dependencies.jar:?]
    at org.eclipse.californium.core.network.stack.ReliabilityLayer.receiveResponse(ReliabilityLayer.java:257) ~[rethink-lhcb-broker-0.1.0-jar-with-dependencies.jar:?]
    at org.eclipse.californium.core.network.stack.AbstractLayer.receiveResponse(AbstractLayer.java:98) ~[rethink-lhcb-broker-0.1.0-jar-with-dependencies.jar:?]
    at org.eclipse.californium.core.network.stack.CoapStack.receiveResponse(CoapStack.java:135) ~[rethink-lhcb-broker-0.1.0-jar-with-dependencies.jar:?]
    at org.eclipse.californium.core.network.CoapEndpoint$InboxImpl.receiveMessage(CoapEndpoint.java:630) ~[rethink-lhcb-broker-0.1.0-jar-with-dependencies.jar:?]
    at org.eclipse.californium.core.network.CoapEndpoint$InboxImpl.access$700(CoapEndpoint.java:536) ~[rethink-lhcb-broker-0.1.0-jar-with-dependencies.jar:?]
    at org.eclipse.californium.core.network.CoapEndpoint$InboxImpl$1.run(CoapEndpoint.java:548) ~[rethink-lhcb-broker-0.1.0-jar-with-dependencies.jar:?]
    at org.eclipse.californium.core.network.CoapEndpoint$5.run(CoapEndpoint.java:695) ~[rethink-lhcb-broker-0.1.0-jar-with-dependencies.jar:?]
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) ~[?:1.7.0_95]
    at java.util.concurrent.FutureTask.run(FutureTask.java:262) ~[?:1.7.0_95]
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:178) ~[?:1.7.0_95]
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:292) ~[?:1.7.0_95]
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) ~[?:1.7.0_95]
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) ~[?:1.7.0_95]
    at java.lang.Thread.run(Thread.java:745) [?:1.7.0_95]
Caused by: org.eclipse.leshan.core.node.codec.InvalidValueException: Unable to decode tlv.
    at org.eclipse.leshan.core.node.codec.tlv.LwM2mNodeTlvDecoder.decode(LwM2mNodeTlvDecoder.java:53) ~[rethink-lhcb-broker-0.1.0-jar-with-dependencies.jar:?]
    at org.eclipse.leshan.core.node.codec.LwM2mNodeDecoder.decode(LwM2mNodeDecoder.java:98) ~[rethink-lhcb-broker-0.1.0-jar-with-dependencies.jar:?]
    at org.eclipse.leshan.core.node.codec.LwM2mNodeDecoder.decode(LwM2mNodeDecoder.java:54) ~[rethink-lhcb-broker-0.1.0-jar-with-dependencies.jar:?]
    at org.eclipse.leshan.server.californium.impl.LwM2mResponseBuilder.decodeCoapResponse(LwM2mResponseBuilder.java:330) ~[rethink-lhcb-broker-0.1.0-jar-with-dependencies.jar:?]
    ... 26 more
Caused by: org.eclipse.leshan.tlv.TlvException: Impossible to parse TLV: 
d800173e6b4c796f71436941714945427361574e6c626e4e6c494546755a33567359584a4b557942324d5334314c6a414b49436f674b474d70494449774d5441744d6a41784e6942486232396e624755730a49456c75597934676148523063446f764c3246755a33567359584a7163793576636d634b49436f6754476c6a5a57357a5a546f6754556c55436941714c776f6f5a6e5675593352706232346f0a64326c755a4739334c43426b62324e3162575675644377676457356b5a575a70626d566b4b5342374a33567a5a53427a64484a7059
...
4335755a79316f6157526c4c5746756157316864475570653252700a6333427359586b36626d39755a5341686157317762334a30595735304f3331755a3178634f6d5a76636d31375a476c7a63477868655470696247396a617a74394c6d356e4c574675615731680a64475574633268706258743261584e70596d6c73615852354f6d68705a47526c626a74394c6d356e4c57467559326876636e747762334e7064476c76626a7068596e4e76624856305a5474390a5043397a64486c735a54346e4b54733d
    at org.eclipse.leshan.tlv.TlvDecoder.decode(TlvDecoder.java:142) ~[rethink-lhcb-broker-0.1.0-jar-with-dependencies.jar:?]
    at org.eclipse.leshan.core.node.codec.tlv.LwM2mNodeTlvDecoder.decode(LwM2mNodeTlvDecoder.java:50) ~[rethink-lhcb-broker-0.1.0-jar-with-dependencies.jar:?]
    at org.eclipse.leshan.core.node.codec.LwM2mNodeDecoder.decode(LwM2mNodeDecoder.java:98) ~[rethink-lhcb-broker-0.1.0-jar-with-dependencies.jar:?]
    at org.eclipse.leshan.core.node.codec.LwM2mNodeDecoder.decode(LwM2mNodeDecoder.java:54) ~[rethink-lhcb-broker-0.1.0-jar-with-dependencies.jar:?]
    at org.eclipse.leshan.server.californium.impl.LwM2mResponseBuilder.decodeCoapResponse(LwM2mResponseBuilder.java:330) ~[rethink-lhcb-broker-0.1.0-jar-with-dependencies.jar:?]
    ... 26 more
Caused by: org.eclipse.leshan.tlv.TlvException: Unexpected TLV parse error: 
d800173e6b4c796f71436941714945427361574e6c626e4e6c494546755a33567359584a4b557942324d5334314c6a414b49436f674b474d70494449774d5441744d6a41784e6942486232396e624755730a49456c75597934676148523063446f764c3246755a33567359584a7163793576636d634b49436f6754476c6a5a57357a5a546f6754556c55436941714c776f6f5a6e5675593352706232346f0a64326c755a4739334c43426b62324e3162575675644377676457356b5a575a70626d566b4b5342374a33567a5a53427a64484a7059
...
4335755a79316f6157526c4c5746756157316864475570653252700a6333427359586b36626d39755a5341686157317762334a30595735304f3331755a3178634f6d5a76636d31375a476c7a63477868655470696247396a617a74394c6d356e4c574675615731680a64475574633268706258743261584e70596d6c73615852354f6d68705a47526c626a74394c6d356e4c57467559326876636e747762334e7064476c76626a7068596e4e76624856305a5474390a5043397a64486c735a54346e4b54733d
    at org.eclipse.leshan.tlv.TlvDecoder.decode(TlvDecoder.java:145) ~[rethink-lhcb-broker-0.1.0-jar-with-dependencies.jar:?]
    at org.eclipse.leshan.tlv.TlvDecoder.decode(TlvDecoder.java:126) ~[rethink-lhcb-broker-0.1.0-jar-with-dependencies.jar:?]
    at org.eclipse.leshan.core.node.codec.tlv.LwM2mNodeTlvDecoder.decode(LwM2mNodeTlvDecoder.java:50) ~[rethink-lhcb-broker-0.1.0-jar-with-dependencies.jar:?]
    at org.eclipse.leshan.core.node.codec.LwM2mNodeDecoder.decode(LwM2mNodeDecoder.java:98) ~[rethink-lhcb-broker-0.1.0-jar-with-dependencies.jar:?]
    at org.eclipse.leshan.core.node.codec.LwM2mNodeDecoder.decode(LwM2mNodeDecoder.java:54) ~[rethink-lhcb-broker-0.1.0-jar-with-dependencies.jar:?]
    at org.eclipse.leshan.server.californium.impl.LwM2mResponseBuilder.decodeCoapResponse(LwM2mResponseBuilder.java:330) ~[rethink-lhcb-broker-0.1.0-jar-with-dependencies.jar:?]
    ... 26 more
Caused by: java.nio.BufferUnderflowException
    at java.nio.HeapByteBuffer.get(HeapByteBuffer.java:145) ~[?:1.7.0_95]
    at java.nio.ByteBuffer.get(ByteBuffer.java:694) ~[?:1.7.0_95]
    at org.eclipse.leshan.tlv.TlvDecoder.decode(TlvDecoder.java:111) ~[rethink-lhcb-broker-0.1.0-jar-with-dependencies.jar:?]
    at org.eclipse.leshan.tlv.TlvDecoder.decode(TlvDecoder.java:126) ~[rethink-lhcb-broker-0.1.0-jar-with-dependencies.jar:?]
    at org.eclipse.leshan.core.node.codec.tlv.LwM2mNodeTlvDecoder.decode(LwM2mNodeTlvDecoder.java:50) ~[rethink-lhcb-broker-0.1.0-jar-with-dependencies.jar:?]
    at org.eclipse.leshan.core.node.codec.LwM2mNodeDecoder.decode(LwM2mNodeDecoder.java:98) ~[rethink-lhcb-broker-0.1.0-jar-with-dependencies.jar:?]
    at org.eclipse.leshan.core.node.codec.LwM2mNodeDecoder.decode(LwM2mNodeDecoder.java:54) ~[rethink-lhcb-broker-0.1.0-jar-with-dependencies.jar:?]
    at org.eclipse.leshan.server.californium.impl.LwM2mResponseBuilder.decodeCoapResponse(LwM2mResponseBuilder.java:330) ~[rethink-lhcb-broker-0.1.0-jar-with-dependencies.jar:?]
    ... 26 more

The exception occurs independently of /3000/0/0 being string or opaque.

The contents of the file is just a huge bas64 string
test.txt

from leshan.

sbernard31 avatar sbernard31 commented on September 23, 2024

Thx a lot for details. This help a lot to identify the bug. I pushed a fix in master tell me if this fix your problem now.

from leshan.

sbernard31 avatar sbernard31 commented on September 23, 2024

@Endebert, if this fix your issue, please close this issue ;).
(Thx again for reporting this one)

from leshan.

Endebert avatar Endebert commented on September 23, 2024

Yes it seems to be fixed. Can you give me an ETA when the next leshan version (0.1.11-M10) will be released?

from leshan.

sbernard31 avatar sbernard31 commented on September 23, 2024

Something like that the end of the month.

from leshan.

Endebert avatar Endebert commented on September 23, 2024

Great, thank you very much for your support

from leshan.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.