diff --git a/app/src/main/java/org/fdroid/fdroid/AndroidXMLDecompress.java b/app/src/main/java/org/fdroid/fdroid/AndroidXMLDecompress.java index 86ed380d3..7391c1dd0 100644 --- a/app/src/main/java/org/fdroid/fdroid/AndroidXMLDecompress.java +++ b/app/src/main/java/org/fdroid/fdroid/AndroidXMLDecompress.java @@ -89,7 +89,8 @@ public class AndroidXMLDecompress { } int offset = xmlTagOffset; - while (offset < binaryXml.length) { + // we only need the first start tag + if (offset < binaryXml.length) { int tag0 = littleEndianWord(binaryXml, offset); if (tag0 == START_TAG) { @@ -114,8 +115,6 @@ public class AndroidXMLDecompress { } return attributes; } - // we only need the first start tag - break; } return new HashMap<>(0); } diff --git a/app/src/main/java/org/fdroid/fdroid/localrepo/peers/BluetoothPeer.java b/app/src/main/java/org/fdroid/fdroid/localrepo/peers/BluetoothPeer.java index 2ff605da2..4dac48bec 100644 --- a/app/src/main/java/org/fdroid/fdroid/localrepo/peers/BluetoothPeer.java +++ b/app/src/main/java/org/fdroid/fdroid/localrepo/peers/BluetoothPeer.java @@ -34,6 +34,11 @@ public class BluetoothPeer implements Peer { return peer != null && peer instanceof BluetoothPeer && ((BluetoothPeer) peer).device.getAddress().equals(device.getAddress()); } + @Override + public int hashCode() { + return device.getAddress().hashCode(); + } + @Override public String getRepoAddress() { return "bluetooth://" + device.getAddress().replace(':', '-') + "/fdroid/repo"; diff --git a/app/src/main/java/org/fdroid/fdroid/localrepo/peers/BonjourPeer.java b/app/src/main/java/org/fdroid/fdroid/localrepo/peers/BonjourPeer.java index 1f3e5fc51..ae09329d6 100644 --- a/app/src/main/java/org/fdroid/fdroid/localrepo/peers/BonjourPeer.java +++ b/app/src/main/java/org/fdroid/fdroid/localrepo/peers/BonjourPeer.java @@ -36,6 +36,11 @@ public class BonjourPeer extends WifiPeer { return false; } + @Override + public int hashCode() { + return getFingerprint().hashCode(); + } + @Override public String getRepoAddress() { return serviceInfo.getRepoAddress(); 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)); diff --git a/app/src/main/java/org/fdroid/fdroid/views/swap/SwapWorkflowActivity.java b/app/src/main/java/org/fdroid/fdroid/views/swap/SwapWorkflowActivity.java index 6b0b46aaf..c711d3ec6 100644 --- a/app/src/main/java/org/fdroid/fdroid/views/swap/SwapWorkflowActivity.java +++ b/app/src/main/java/org/fdroid/fdroid/views/swap/SwapWorkflowActivity.java @@ -740,7 +740,7 @@ public class SwapWorkflowActivity extends AppCompatActivity { public void logStatus() { - if (true) return; + if (true) return; // NOPMD String message = ""; if (service == null) { diff --git a/config/pmd/rules.xml b/config/pmd/rules.xml index 242403a32..6ad35b90e 100644 --- a/config/pmd/rules.xml +++ b/config/pmd/rules.xml @@ -5,7 +5,9 @@ xsi:schemaLocation="http://pmd.sf.net/ruleset/1.0.0 http://pmd.sf.net/ruleset_xml_schema.xsd" xsi:noNamespaceSchemaLocation="http://pmd.sf.net/ruleset_xml_schema.xsd"> - + + +