cantact-app icon indicating copy to clipboard operation
cantact-app copied to clipboard

Do not pass empty frameBytes

Open TehDmitry opened this issue 8 years ago • 1 comments

TehDmitry avatar Sep 22 '17 10:09 TehDmitry

I have done an other variant of this fix by adding a check on frame f before to call DeviceManager.giveFrame(f); and also check frameBytes.size() > 0 to avoid some exception in some cases See my proposal for your updated patch:

@@ -175,8 +175,20 @@ public class CantactDevice {
                     for (byte b : bs) {
                         if (b == '\r') {
                             // end of frame data received
-                            CanFrame f = slcanToFrame(frameBytes.toArray(new Byte[frameBytes.size()]));
-                            DeviceManager.giveFrame(f);
+                            CanFrame f;
+                            if(frameBytes.size() > 0)
+                            {
+                                f = slcanToFrame(frameBytes.toArray(new Byte[frameBytes.size()]));
+                                if(f != null)
+                                    DeviceManager.giveFrame(f);
+                            }
+                            if(frameBytes.size() > 4)
+                            {
+                                // end of frame data received
+                                f = slcanToFrame(frameBytes.toArray(new Byte[frameBytes.size()]));
+                                if(f != null)
+                                    DeviceManager.giveFrame(f);
+                            }
                             frameBytes.clear();
                         } else {
                             // byte received, add to buffer

bvernoux avatar Mar 14 '18 20:03 bvernoux