From e9d27bbba0df01dde4607e2706efd21f495fc1b7 Mon Sep 17 00:00:00 2001 From: Felipe Herranz Date: Thu, 4 Jan 2018 13:10:05 +0100 Subject: [PATCH] returning a 0 length array when position -1 --- build.gradle | 2 +- usbserial/src/main/java/com/felhr/usbserial/SerialBuffer.java | 2 +- .../src/main/java/com/felhr/usbserial/UsbSerialDevice.java | 3 ++- usbserial/src/main/java/com/felhr/usbserial/UsbSpiDevice.java | 3 ++- 4 files changed, 6 insertions(+), 4 deletions(-) diff --git a/build.gradle b/build.gradle index 7a8e3ab..3d5ba79 100644 --- a/build.gradle +++ b/build.gradle @@ -3,7 +3,7 @@ buildscript { jcenter() } dependencies { - classpath 'com.android.tools.build:gradle:2.2.0' + classpath 'com.android.tools.build:gradle:2.2.3' } } diff --git a/usbserial/src/main/java/com/felhr/usbserial/SerialBuffer.java b/usbserial/src/main/java/com/felhr/usbserial/SerialBuffer.java index ea030ee..a59f53e 100644 --- a/usbserial/src/main/java/com/felhr/usbserial/SerialBuffer.java +++ b/usbserial/src/main/java/com/felhr/usbserial/SerialBuffer.java @@ -149,7 +149,7 @@ public class SerialBuffer e.printStackTrace(); } } - if(position <= -1 ) return new byte[DEFAULT_READ_BUFFER_SIZE]; + if(position <= -1 ) return new byte[0]; byte[] dst = Arrays.copyOfRange(buffer, 0, position); if(debugging) UsbSerialDebugger.printLogGet(dst, true); diff --git a/usbserial/src/main/java/com/felhr/usbserial/UsbSerialDevice.java b/usbserial/src/main/java/com/felhr/usbserial/UsbSerialDevice.java index 1b37a88..95b7594 100644 --- a/usbserial/src/main/java/com/felhr/usbserial/UsbSerialDevice.java +++ b/usbserial/src/main/java/com/felhr/usbserial/UsbSerialDevice.java @@ -304,7 +304,8 @@ public abstract class UsbSerialDevice implements UsbSerialInterface while(working.get()) { byte[] data = serialBuffer.getWriteBuffer(); - connection.bulkTransfer(outEndpoint, data, data.length, USB_TIMEOUT); + if(data.length > 0) + connection.bulkTransfer(outEndpoint, data, data.length, USB_TIMEOUT); } } diff --git a/usbserial/src/main/java/com/felhr/usbserial/UsbSpiDevice.java b/usbserial/src/main/java/com/felhr/usbserial/UsbSpiDevice.java index c9c8425..b831aa8 100644 --- a/usbserial/src/main/java/com/felhr/usbserial/UsbSpiDevice.java +++ b/usbserial/src/main/java/com/felhr/usbserial/UsbSpiDevice.java @@ -99,7 +99,8 @@ public abstract class UsbSpiDevice implements UsbSpiInterface while(working.get()) { byte[] data = serialBuffer.getWriteBuffer(); - connection.bulkTransfer(outEndpoint, data, data.length, USB_TIMEOUT); + if(data.length > 0) + connection.bulkTransfer(outEndpoint, data, data.length, USB_TIMEOUT); } }