X-Git-Url: https://git.gag.com/?p=fw%2Faltos;a=blobdiff_plain;f=altosui%2FAltosDebug.java;h=c69369ef26a10683da2f6324642d6db1c6b09681;hp=d18de80d09d36e0fe9d84f0652f79bbdbd533d5a;hb=09d5d6f546ccef2bfd4941e590f047485bb73d76;hpb=924d56a4d2d8b16530cd378b18cfc5d6e08420ed diff --git a/altosui/AltosDebug.java b/altosui/AltosDebug.java index d18de80d..c69369ef 100644 --- a/altosui/AltosDebug.java +++ b/altosui/AltosDebug.java @@ -17,12 +17,8 @@ package altosui; -import java.lang.*; import java.io.*; -import java.util.concurrent.*; -import java.util.*; - -import libaltosJNI.*; +import org.altusmetrum.altosuilib_1.*; public class AltosDebug extends AltosSerial { @@ -163,7 +159,11 @@ public class AltosDebug extends AltosSerial { int i = 0; byte[] data = new byte[length]; while (i < length) { - String line = get_reply().trim(); + String line = get_reply(); + + if (line == null) + throw new IOException("Timeout in read_bytes"); + line = line.trim(); String tokens[] = line.split("\\s+"); for (int j = 0; j < tokens.length; j++) { if (!Altos.ishex(tokens[j]) || @@ -172,7 +172,12 @@ public class AltosDebug extends AltosSerial { String.format ("Invalid read_bytes reply \"%s\"", line)); try { - data[i + j] = (byte) Integer.parseInt(tokens[j], 16); + if (i + j >= length) + throw new IOException( + String.format + ("Invalid read_bytes reply \"%s\"", line)); + else + data[i + j] = (byte) Integer.parseInt(tokens[j], 16); } catch (NumberFormatException ne) { throw new IOException( String.format