Discussions
Categories
- 196.8K All Categories
- 2.2K Data
- 239 Big Data Appliance
- 1.9K Data Science
- 450.3K Databases
- 221.7K General Database Discussions
- 3.8K Java and JavaScript in the Database
- 31 Multilingual Engine
- 550 MySQL Community Space
- 478 NoSQL Database
- 7.9K Oracle Database Express Edition (XE)
- 3K ORDS, SODA & JSON in the Database
- 544 SQLcl
- 4K SQL Developer Data Modeler
- 187K SQL & PL/SQL
- 21.3K SQL Developer
- 295.9K Development
- 17 Developer Projects
- 138 Programming Languages
- 292.5K Development Tools
- 107 DevOps
- 3.1K QA/Testing
- 646K Java
- 28 Java Learning Subscription
- 37K Database Connectivity
- 155 Java Community Process
- 105 Java 25
- 22.1K Java APIs
- 138.1K Java Development Tools
- 165.3K Java EE (Java Enterprise Edition)
- 18 Java Essentials
- 160 Java 8 Questions
- 86K Java Programming
- 80 Java Puzzle Ball
- 65.1K New To Java
- 1.7K Training / Learning / Certification
- 13.8K Java HotSpot Virtual Machine
- 94.3K Java SE
- 13.8K Java Security
- 204 Java User Groups
- 24 JavaScript - Nashorn
- Programs
- 439 LiveLabs
- 38 Workshops
- 10.2K Software
- 6.7K Berkeley DB Family
- 3.5K JHeadstart
- 5.7K Other Languages
- 2.3K Chinese
- 171 Deutsche Oracle Community
- 1.1K Español
- 1.9K Japanese
- 232 Portuguese
Unable to throw ISO Exception 61XX
Hi,
My applet needs to return data more than 10K and hence i want to go ahead with command chaining. So after the first Get Data response i throw an ISO Exception 6100 to indicate that more data to follow. I use SmartCardIO libraries in my middleware. So the code breaks at the line where i throw the 6100 iso exception. I get a could not get response error in my java code. It used to work absolutely fine earlier for the same code. Has the PCSC wrapper changed in windows? My code works if i throw a 62XX or 63XX exception, but not 6100. Anyone else faced a similar scenario? It fails on JCShell as well.
Any help in this regard will be highly appreciated.
My code snippet:
sendLen = apdu.setOutgoing();
remainingData = (short) (obj.currentContainer.DataWritten - readOffset[OFFSET_SENT]);
boolean chain = remainingData > sendLen;
sendLen = chain ? sendLen : remainingData;
apdu.setOutgoingLength(sendLen);
apdu.sendBytesLong(obj.currentContainer.Buffer, readOffset[OFFSET_SENT], sendLen);
// Check to see if there are more Data to send
if (chain)
{
readOffset[OFFSET_SENT] += sendLen; // count the bytes sent
remain = (short) (obj.currentContainer.DataWritten - readOffset[OFFSET_SENT]);
if(remain < sendLen)
{
Util.arrayCopyNonAtomic(obj.currentContainer.Buffer, (short)(readOffset[OFFSET_SENT]),
chainingBuffer, (short)0, (short)remain);
ISOException.throwIt((short)((short)(0x6100) |(short)((remain))));
}
else
ISOException.throwIt((short) (ISO7816.SW_BYTES_REMAINING_00 | (short)(sendLen)));
//ISOException.throwIt((short)((short)(0x6100) |(short)((sendLen))));
}
PS: I tried on both JCOP 2.4.2R3 and JCOP3 Chips. Looks like its a PCSC issue as it works absolutely fine on a simulator.
Regards
Narasimha