I am sending string after converting to byte array using alljoyn, that string contain image (after converting in String using Base64) also. it is working fine, but in case of some images it gives following error
08-08 18:55:21.158 20724-21095/co.coinflipsrl.infomage E/ALLJOYN﹕ 20.237 ****** ERROR ALLJOYN external ...oyn_core/src/MsgArg.cc:790 | 0x900d
08-08 18:55:21.159 20724-21095/co.coinflipsrl.infomage E/ALLJOYN_JAVA﹕ 20.238 ****** ERROR ALLJOYN_JAVA external .../jni/alljoyn_java.cc:11480 | 0x0001
08-08 18:55:21.161 20724-21095/co.coinflipsrl.infomage E/SimpleClient﹕ SimpleInterface.Ping(): org.alljoyn.bus.MarshalBusException: cannot marshal class [B into 'ay'
org.alljoyn.bus.MarshalBusException: cannot marshal class [B into 'ay'
at org.alljoyn.bus.MsgArg.marshal(MsgArg.java:534)
at org.alljoyn.bus.MsgArg.marshal(MsgArg.java:556)
at org.alljoyn.bus.ProxyBusObject.methodCall(Native Method)
at org.alljoyn.bus.ProxyBusObject.access$300(ProxyBusObject.java:35)
at org.alljoyn.bus.ProxyBusObject$Handler.invoke(ProxyBusObject.java:264)
at java.lang.reflect.Proxy.invoke(Proxy.java:397)
at $Proxy2.Ping(Unknown Source)
at co.coinflipsrl.infomage.sharing.alljoynshare.ClientFragment$BusHandler.handleMessage(ClientFragment.java:292)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:135)
at android.os.HandlerThread.run(HandlerThread.java:61)
Caused by: org.alljoyn.bus.BusException: ER_BUS_BAD_VALUE
at org.alljoyn.bus.MsgArg.set(Native Method)
at org.alljoyn.bus.MsgArg.marshal(MsgArg.java:464)
sending code is:
sendUiMessage(MESSAGE_PING, msg.obj);
byte[] sentObj = (byte[]) msg.obj;
Object reply = mSimpleInterface.Ping((byte[]) msg.obj);
byte[] receivedObj = (byte[]) reply;
if (Arrays.equals(sentObj, receivedObj)) {
sendUiMessage(MESSAGE_PING_REPLY, true);
} else {
sendUiMessage(MESSAGE_PING_REPLY, false);
}
receiving code is:
public byte[] Ping(byte[] inStr) {
sendUiMessage(MESSAGE_PING, inStr);
//Simply echo the ping message.
sendUiMessage(MESSAGE_PING_REPLY, inStr);
return inStr;
}
/* Helper function to send a message to the UI thread. */
private void sendUiMessage(int what, Object obj) {
mHandler.sendMessage(mHandler.obtainMessage(what, obj));
}