diff --git a/src/org/jgroups/BytesMessage.java b/src/org/jgroups/BytesMessage.java index 51e15af3ed..67e970919f 100644 --- a/src/org/jgroups/BytesMessage.java +++ b/src/org/jgroups/BytesMessage.java @@ -185,10 +185,10 @@ public BytesMessage setObject(Object obj) { return setArray((ByteArray)obj); if(obj instanceof ByteBuffer) { ByteBuffer bb=(ByteBuffer)obj; - if(bb.isDirect()) - return (BytesMessage)setArray(Util.bufferToArray(bb)); - else + if(bb.hasArray()) return setArray(bb.array(), bb.arrayOffset()+bb.position(), bb.remaining()); + else + return (BytesMessage)setArray(Util.bufferToArray(bb)); } try { ByteArray tmp=Util.objectToBuffer(obj);