3

I am having this error when I am generating transaction with Magnetic stripe card. Could you suggest what is the problem here?

<receive>
<iso-exception>
  org.jpos.iso.IFB_LLLCHAR: Problem unpacking field 54 (java.lang.ArrayIndexOutOfBoundsException: 86) unpacking field=54, consumed=86
  org.jpos.iso.ISOException: org.jpos.iso.IFB_LLLCHAR: Problem unpacking field 54 (java.lang.ArrayIndexOutOfBoundsException: 86) unpacking field=54, consumed=86
at org.jpos.iso.ISOBasePackager.unpack(ISOBasePackager.java:340)
at org.jpos.iso.ISOMsg.unpack(ISOMsg.java:468)
at org.jpos.iso.BaseChannel.unpack(BaseChannel.java:965)
at org.jpos.iso.BaseChannel.receive(BaseChannel.java:735)
at org.jpos.iso.ISOServer$Session.run(ISOServer.java:344)
at org.jpos.util.ThreadPool$PooledThread.run(ThreadPool.java:76)
</iso-exception>
--- header ---
0000  00 00 00 00 00                                    .....

--- data ---
0000  02 00 70 38 04 80 20 80  3F 04 16 94 96 10 03 32  ..p8.. .?......2
0010  13 38 00 00 00 00 00 00  01 88 00 00 00 00 30 11 ..8............0.
0020  11 27 11 28 00 21 00 37  94 96 10 03 32 13 38 00  .'.(.!.7....2.8.
0030  D2 00 89 EC 49 D2 C2 B5  6B 2A 00 39 35 30 30 30  ....I...k*.95000
0040  30 32 30 34 39 36 F0 D2  EB A5 2B 2F AE 2E 00 06  020496....+/....
0050  30 30 30 30 35 30                                 000050

Andrés Alcarraz
  • 1,570
  • 1
  • 12
  • 21
Stn Bat
  • 31
  • 3
  • 1
    it seems the packager is not fully matching what you are receiving, the data ends before the message can be parsed, we need more data from you, please update the question adding at least the packager used, until field 35 (track2) all seems fine, what looks odd is the presence of field 51. Please also add a logger to your packager so that we (and tyourself) can see what the packager is reading field by field. – Andrés Alcarraz Nov 28 '18 at 11:02
  • 1
    Hi Andres, Thank you for answer. Actually I have found out problem here. We have not been fully aware of BITMAP structure at first field. There are 64 bits with and if there are not 64 i.e 62 bits with starting 1, that means 1st and 2nd fields are not presented. Bitmap never starts with 0 so as long as it starts with 1 we need to add incomplete sequence prior to that with zeros. – Stn Bat Dec 05 '18 at 00:46
  • @StnBat Please answer your question with your solution and accept your answer to close the question. Thanks – hmmftg Feb 20 '20 at 12:00

1 Answers1

0

We have not been fully aware of BITMAP structure at first field. There are 64 bits with and if there are not 64 i.e 62 bits with starting 1, that means 1st and 2nd fields are not presented. Bitmap never starts with 0 so as long as it starts with 1 we need to add incomplete sequence prior to that with zeros.

Stn Bat
  • 31
  • 3