Open nikola-lukic opened 7 years ago
Hvala na prijavi greške.
Možeš li mi se javiti mejlom na grakic@devbase.net kako bih pribavio "data dump" sa te problematične (tih problematičnih?) kartica?
Polje length čita dva bajta tako da vrednost 1000 jeste moguća, međutim ako je tek 130b preostalo za parsiranje to bi značilo da ili nemamo tačan ceo sadržaj pročitan sa kartice (možda imamo neke bajtove viška?) ili da je parsiranje već omanulo negde ranije pa sadržaj taga čitamo kao novi tag.
Prilikom čitanja "novih" kartica dolazilo je do sledeće greške (sama aplikacija je u GUI izbacivala null):
Problem je u okviru klase
EidCard
(package net.devbase.jfreesteel
) u izvršavanju metodepublic static Map<Integer, byte[]> parseTlv(final byte[] bytes)
. Prilikom čitanja "novih" kartice dolazilo je do toga da pokuša da pročita više podataka nego što u bufferu postoji. Moram prizanti da ne poznajem strukturu iščitavanja, ali sam code pomenute metode malo promenio i iščitavanje je bilo uspešno i sa "novim" karticama. Ovo je izgled promenjene metode:Možda nije najsrećnije rešenje ali je odradilo posao :)
Inače, u jednom trenutku prilikom čitanja u
length
se upisuje vrednost veća od 1000, a ukupna veličina bafera je reda 250 (u tom trenutku je preostalo negde oko 130 byte-ova za čitanje).Napomena: Ovo sam probao sa jednom "starom" ličnom karticom i dve "nove".
Nisam neki guru u programiranju, poznajem osnove, te smatram da ćeš možda dati neko drugo rešenje, a nadam se da će uskoro nova verzija (
*.deb
bar) sa sređenim bug-om.Svako dobro!!!