From 103b2265ee51f3d0f9675686d7f91e83c9aa9f08 Mon Sep 17 00:00:00 2001 From: Hans-Christoph Steiner Date: Wed, 11 May 2016 16:39:40 +0200 Subject: [PATCH] make sure HTTP servers are able to skip the right amount This should fix the PMD error: "Check the value returned by the skip() method of an InputStream to see if the requested number of bytes has been skipped." --- app/src/main/java/org/fdroid/fdroid/net/LocalHTTPD.java | 5 ++++- .../org/fdroid/fdroid/net/bluetooth/BluetoothServer.java | 5 ++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/org/fdroid/fdroid/net/LocalHTTPD.java b/app/src/main/java/org/fdroid/fdroid/net/LocalHTTPD.java index d6d2f7633..7d893287d 100644 --- a/app/src/main/java/org/fdroid/fdroid/net/LocalHTTPD.java +++ b/app/src/main/java/org/fdroid/fdroid/net/LocalHTTPD.java @@ -265,7 +265,10 @@ public class LocalHTTPD extends NanoHTTPD { return (int) dataLen; } }; - fis.skip(startFrom); + long skipped = fis.skip(startFrom); + if (skipped != startFrom) { + throw new IOException("unable to skip the required " + startFrom + " bytes."); + } res = createResponse(Response.Status.PARTIAL_CONTENT, mime, fis); res.addHeader("Content-Length", String.valueOf(dataLen)); diff --git a/app/src/main/java/org/fdroid/fdroid/net/bluetooth/BluetoothServer.java b/app/src/main/java/org/fdroid/fdroid/net/bluetooth/BluetoothServer.java index dc935199f..ba2a4f518 100644 --- a/app/src/main/java/org/fdroid/fdroid/net/bluetooth/BluetoothServer.java +++ b/app/src/main/java/org/fdroid/fdroid/net/bluetooth/BluetoothServer.java @@ -303,7 +303,10 @@ public class BluetoothServer extends Thread { return (int) dataLen; } }; - fis.skip(startFrom); + long skipped = fis.skip(startFrom); + if (skipped != startFrom) { + throw new IOException("unable to skip the required " + startFrom + " bytes."); + } res = createResponse(NanoHTTPD.Response.Status.PARTIAL_CONTENT, mime, fis); res.addHeader("Content-Length", String.valueOf(dataLen));