From 2b8017c475fc40120f6a4c3177c56ececa433185 Mon Sep 17 00:00:00 2001 From: "Loch Christian (uib05376)" Date: Tue, 10 Nov 2020 21:31:58 +0100 Subject: [PATCH] Bugfix for Concurrent Exception --- .../java/de/hems/trafficsim/MainActivity.java | 10 ++------ .../de/hems/trafficsim/TimeRecordView.java | 24 ++++++++++++------- .../main/java/de/hems/trafficsim/Track.java | 10 ++++---- 3 files changed, 22 insertions(+), 22 deletions(-) diff --git a/app/src/main/java/de/hems/trafficsim/MainActivity.java b/app/src/main/java/de/hems/trafficsim/MainActivity.java index 6e2b1ab..ac433a3 100644 --- a/app/src/main/java/de/hems/trafficsim/MainActivity.java +++ b/app/src/main/java/de/hems/trafficsim/MainActivity.java @@ -45,20 +45,14 @@ public class MainActivity extends AppCompatActivity implements Observer { if (viewStackRef.getChildCount() > 0) viewStackRef.removeViewAt(0); viewStackRef.addView(newTrView); - //viewStackRef.addView(newTrView, 0); - //int childCount = viewStackRef.getChildCount(); - //if (childCount > 30) { - // viewStackRef.removeViewAt(childCount-1); - //} } }); + } public void onStepButtonClick(View view) { - //for (int j = 0; j < 3000; j++) { - this.track.timeElapse(); - //} + this.track.timeElapse(); } public void onPlayButtonClick(View view) { diff --git a/app/src/main/java/de/hems/trafficsim/TimeRecordView.java b/app/src/main/java/de/hems/trafficsim/TimeRecordView.java index 7926cdb..5997931 100644 --- a/app/src/main/java/de/hems/trafficsim/TimeRecordView.java +++ b/app/src/main/java/de/hems/trafficsim/TimeRecordView.java @@ -7,6 +7,7 @@ import android.graphics.Paint; import android.view.View; import android.view.ViewGroup; +import java.util.ConcurrentModificationException; import java.util.List; public class TimeRecordView extends View { @@ -58,16 +59,21 @@ public class TimeRecordView extends View { int y = 0; List> stepList = this.track.getVtrList(); for (int curStepIdx = stepList.size()-1; curStepIdx >= stepList.size()-1-50 && curStepIdx >= 0; curStepIdx--) { - List step = stepList.get(curStepIdx); - int i = 0; - for (VehicleTimeRecord r : step) { - int left = (int) (this.pixelPerVehicle * r.getPosition()); - this.paint.setColor(getColor(r.getVelocity(), r.getMaxVelocity())); - canvas.drawRect(left, y, left + this.pixelPerVehicle - 1, - y+10, this.paint); - i++; + try { + List step = stepList.get(curStepIdx); + int i = 0; + for (VehicleTimeRecord r : step) { + int left = (int) (this.pixelPerVehicle * r.getPosition()); + this.paint.setColor(getColor(r.getVelocity(), r.getMaxVelocity())); + canvas.drawRect(left, y, left + this.pixelPerVehicle - 1, + y + 10, this.paint); + i++; + } + y += 10; + } catch (ConcurrentModificationException ex) { + System.out.println("Concurrent Exception occured, skipping record"); + continue; } - y += 10; } } } diff --git a/app/src/main/java/de/hems/trafficsim/Track.java b/app/src/main/java/de/hems/trafficsim/Track.java index 0d4380a..4804ee0 100644 --- a/app/src/main/java/de/hems/trafficsim/Track.java +++ b/app/src/main/java/de/hems/trafficsim/Track.java @@ -73,11 +73,11 @@ public class Track extends Observable { this.setChanged(); this.notifyObservers(); this.clearChanged(); - try { - Thread.sleep(125); - } catch (InterruptedException ex) { - - } +// try { +// Thread.sleep(125); +// } catch (InterruptedException ex) { +// +// } } public float avg_step(int step){