From f3e0da2689a3178150a14cf830a6c2b6cf235cd9 Mon Sep 17 00:00:00 2001 From: localhorst Date: Wed, 25 Feb 2026 22:02:46 +0100 Subject: [PATCH] fix ArrayIndexOutOfBoundsException --- .../controller/MainWindowController.java | 28 +++++++++++-------- 1 file changed, 16 insertions(+), 12 deletions(-) diff --git a/src/main/java/com/jFxKasse/controller/MainWindowController.java b/src/main/java/com/jFxKasse/controller/MainWindowController.java index e342edf..5f31e91 100644 --- a/src/main/java/com/jFxKasse/controller/MainWindowController.java +++ b/src/main/java/com/jFxKasse/controller/MainWindowController.java @@ -1299,21 +1299,25 @@ public class MainWindowController { } private static String createJobDescription(String pNames, String pQuantities) { - String line = pQuantities; - int size = line.length() - line.replace(";", "").length() + 1; + // Split the strings + String[] namesArray = pNames.split(";"); + String[] quantitiesArray = pQuantities.split(";"); - String[] namesArray = new String[size]; - String[] quantitiesArray = new String[size]; + // Use the minimum length to avoid index out of bounds + int minLength = Math.min(namesArray.length, quantitiesArray.length); - namesArray = pNames.split(";"); - quantitiesArray = pQuantities.split(";"); - - String tmp = quantitiesArray[0] + "x " + namesArray[0]; - - for (int i = 1; i < namesArray.length; i++) { - tmp = tmp + ", " + quantitiesArray[i] + "x " + namesArray[i]; + if (minLength == 0) { + return ""; // Handle empty input } - return tmp; + + // Build the description + StringBuilder tmp = new StringBuilder(quantitiesArray[0] + "x " + namesArray[0]); + + for (int i = 1; i < minLength; i++) { + tmp.append(", ").append(quantitiesArray[i]).append("x ").append(namesArray[i]); + } + + return tmp.toString(); } private void setJobPrizeLabel(float pPrize) {