From d49e5ec03afd09bbcdd703e4fd2faf453dbf686d Mon Sep 17 00:00:00 2001 From: CGantert345 <57003061+CGantert345@users.noreply.github.com> Date: Fri, 28 Jul 2023 14:10:32 +0200 Subject: - decode TLB also in case of wrong non-numeric formating of number values in the bar-code --- pom.xml | 2 +- src/main/java/org/uic/barcode/staticFrame/DataRecord.java | 2 +- .../java/org/uic/barcode/staticFrame/UTLAYDataRecord.java | 14 +++++++------- src/test/java/org/uic/barcode/test/utils/TestUtils.java | 11 +++++++++++ 4 files changed, 20 insertions(+), 9 deletions(-) diff --git a/pom.xml b/pom.xml index 1f0b102..e18072b 100644 --- a/pom.xml +++ b/pom.xml @@ -2,7 +2,7 @@ 4.0.0 org.uic.barcode org.uic.barcode - 1.4.2 + 1.4.3 jar UIC barcode encoding and decoding of Aztec barcode content according to UIC IRS 90918-9 diff --git a/src/main/java/org/uic/barcode/staticFrame/DataRecord.java b/src/main/java/org/uic/barcode/staticFrame/DataRecord.java index 16d3811..2b5fa42 100644 --- a/src/main/java/org/uic/barcode/staticFrame/DataRecord.java +++ b/src/main/java/org/uic/barcode/staticFrame/DataRecord.java @@ -106,7 +106,7 @@ public abstract class DataRecord { String dataSize = new String(Arrays.copyOfRange(byteData, offset, offset + 4)); offset = offset + 4; - int length = Integer.parseInt(dataSize) - 12; + int length = Integer.parseInt(dataSize.trim()) - 12; this.setData(Arrays.copyOfRange(byteData, offset, offset + length)); decodeContent(); diff --git a/src/main/java/org/uic/barcode/staticFrame/UTLAYDataRecord.java b/src/main/java/org/uic/barcode/staticFrame/UTLAYDataRecord.java index 2d403e4..0c2869a 100644 --- a/src/main/java/org/uic/barcode/staticFrame/UTLAYDataRecord.java +++ b/src/main/java/org/uic/barcode/staticFrame/UTLAYDataRecord.java @@ -125,7 +125,7 @@ public class UTLAYDataRecord extends DataRecord { int elements = 0; try { - elements = Integer.parseInt(numberValue); + elements = Integer.parseInt(numberValue.trim()); } catch(NumberFormatException e){ //Do Nothing } @@ -138,7 +138,7 @@ public class UTLAYDataRecord extends DataRecord { offset = offset + 2; int line = 0; try { - line = Integer.parseInt(lineValue); + line = Integer.parseInt(lineValue.trim()); } catch(NumberFormatException e){ //Do Nothing } @@ -146,7 +146,7 @@ public class UTLAYDataRecord extends DataRecord { offset = offset + 2; int column = 0; try { - column = Integer.parseInt(columnValue); + column = Integer.parseInt(columnValue.trim()); } catch(NumberFormatException e){ //Do Nothing } @@ -154,7 +154,7 @@ public class UTLAYDataRecord extends DataRecord { offset = offset + 2; int height = 0; try { - height = Integer.parseInt(heightValue); + height = Integer.parseInt(heightValue.trim()); } catch(NumberFormatException e){ //Do Nothing } @@ -162,7 +162,7 @@ public class UTLAYDataRecord extends DataRecord { offset = offset + 2; int width = 0; try { - width = Integer.parseInt(widthValue); + width = Integer.parseInt(widthValue.trim()); } catch(NumberFormatException e){ //Do Nothing } @@ -170,7 +170,7 @@ public class UTLAYDataRecord extends DataRecord { offset = offset + 1; int format = 0; try { - format = Integer.parseInt(formatValue); + format = Integer.parseInt(formatValue.trim()); } catch(NumberFormatException e){ //Do Nothing } @@ -178,7 +178,7 @@ public class UTLAYDataRecord extends DataRecord { offset = offset + 4; int length = 0; try { - length = Integer.parseInt(lengthValue); + length = Integer.parseInt(lengthValue.trim()); } catch(NumberFormatException e){ //Do Nothing } diff --git a/src/test/java/org/uic/barcode/test/utils/TestUtils.java b/src/test/java/org/uic/barcode/test/utils/TestUtils.java index 9791b02..cee5623 100644 --- a/src/test/java/org/uic/barcode/test/utils/TestUtils.java +++ b/src/test/java/org/uic/barcode/test/utils/TestUtils.java @@ -28,6 +28,17 @@ public class TestUtils { } + /* s must be an even-length string. */ + public static byte[] hexStringToByteArray(String s) { + int len = s.length(); + byte[] data = new byte[len / 2]; + for (int i = 0; i < len; i += 2) { + data[i / 2] = (byte) ((Character.digit(s.charAt(i), 16) << 4) + + Character.digit(s.charAt(i+1), 16)); + } + return data; + } + public static Date parseDate (String source){ SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd"); -- cgit v1.2.3