Suppose there is an error in the Java Card applet: a temporary array of bytes is stored in the EEPROM instead of RAM. Moreover, suppose this byte array is overwritten by each APDU.
This error should damage the card sooner or later.
What symptoms can we expect? Wrong values in an array without any explicit warnings or errors? Some exceptions that occur when accessing this array? Applet is not a choice? Does the whole card not fully respond?
Should the card be damaged "once and for all", or will these failures occur more and more?
In my experiment (J2E145), the first failure occurred after 5,000,000 APDUs, and the symptom was that the card did not send R-APDUs at all and just died. However, the next APDU was again in order, then about 1 APDU out of 10,000 with an error (with increasing frequency), and finally, after 5,100,000 APDUs, the card stopped communicating forever.
Is there any standard that says what should happen if an EEPROM is damaged? (I was looking for him, but I did not find him.)
I know that the question is wide and probably depends on the specific chip (I am particularly interested in NXP chips), but I think that your comments, answers and experience can help many Java card developers who found an error in their code after deployment.
source share