Skip to content

Commit 77801a4

Browse files
committed
Workaround for errno being overwritten by JVM (Linux)
1 parent 2e939fe commit 77801a4

File tree

1 file changed

+6
-0
lines changed

1 file changed

+6
-0
lines changed

java-does-usb/src/main/java/net/codecrete/usb/linux/LinuxUSBDevice.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -226,6 +226,9 @@ public void transferOut(int endpointNumber, byte[] data, int timeout) {
226226
int err = IO.getErrno();
227227
if (err == errno.ETIMEDOUT())
228228
throw new USBTimeoutException("Transfer out aborted due to timeout");
229+
// TODO: remove below code if 'errno' is no longer overwritten by JVM
230+
if (err == 2)
231+
throw new USBTimeoutException("Transfer in aborted due to timeout");
229232
throwException(err, "USB OUT transfer on endpoint %d failed", endpointNumber);
230233
}
231234
}
@@ -246,6 +249,9 @@ public byte[] transferIn(int endpointNumber, int timeout) {
246249
int err = IO.getErrno();
247250
if (err == errno.ETIMEDOUT())
248251
throw new USBTimeoutException("Transfer in aborted due to timeout");
252+
// TODO: remove below code if 'errno' is no longer overwritten by JVM
253+
if (err == 2)
254+
throw new USBTimeoutException("Transfer in aborted due to timeout");
249255
throwException(err, "USB IN transfer on endpoint %d failed", endpointNumber);
250256
}
251257

0 commit comments

Comments
 (0)