OSDN Git Service

Improve Obex compatibility
authorJackson Fan <xyfan@motorola.com>
Mon, 20 Jul 2009 19:46:37 +0000 (03:46 +0800)
committerNick Pelly <npelly@google.com>
Thu, 20 Aug 2009 04:07:52 +0000 (21:07 -0700)
Handle headers with excessive whilespace
Send correct reponse code when client abort onPut

obex/javax/obex/ObexHelper.java
obex/javax/obex/ServerSession.java

index f569595..1b66662 100644 (file)
@@ -897,6 +897,11 @@ public final class ObexHelper {
             if (lower < 0) {
                 lower += 256;
             }
+            // If upper and lower both equal 0, it should be the end of string.
+            // Ignore left bytes from array to avoid potential issues
+            if (upper == 0 && lower == 0) {
+                return new String(c, 0, i);
+            }
 
             c[i] = (char)((upper << 8) | lower);
         }
index 423d5a7..675272d 100644 (file)
@@ -168,7 +168,7 @@ public final class ServerSession extends ObexSession implements Runnable {
             } else {
                 response = validateResponseCode(mListener.onPut(op));
             }
-            if (response != ResponseCodes.OBEX_HTTP_OK) {
+            if (response != ResponseCodes.OBEX_HTTP_OK && !op.isAborted) {
                 op.sendReply(response);
             } else if (!op.isAborted) {
                 // wait for the final bit