From ee8a4bca0879cc08d8fe080b0a08da611fd7673a Mon Sep 17 00:00:00 2001 From: Enrique Zamudio Date: Tue, 17 Apr 2018 14:57:59 -0500 Subject: [PATCH] fix --- src/main/java/com/solab/iso8583/util/Bcd.java | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/src/main/java/com/solab/iso8583/util/Bcd.java b/src/main/java/com/solab/iso8583/util/Bcd.java index 3798e80..54f9527 100644 --- a/src/main/java/com/solab/iso8583/util/Bcd.java +++ b/src/main/java/com/solab/iso8583/util/Bcd.java @@ -147,17 +147,12 @@ public final class Bcd { int start = 0; int i = pos; int limit = pos + (length / 2) + (length % 2); - if (length % 2 == 1) { - limit--; - } for (;i < limit; i++) { digits[start++] = (char)(((buf[i] & 0xf0) >> 4) + 48); - digits[start++] = (char)((buf[i] & 0x0f) + 48); + int r = buf[i] & 0xf; + digits[start++] = r == 15 ? ' ' : (char)(r + 48); } - if (length % 2 == 1) { - digits[start] = (char)(((buf[i] & 0xf0) >> 4) + 48); - } - return new BigInteger(new String(digits)); + return new BigInteger(new String(digits, 0, start).trim()); } }