OSEC

Neohapsis is currently accepting applications for employment. For more information, please visit our website www.neohapsis.com or email hr@neohapsis.com
Re: [Muscle] Problems with CardTerminal Block methods in Linux using Threads and Smartcardio (Java)

From: Ludovic Rousseau (ludovic.rousseaugmail.com)
Date: Wed Jan 06 2010 - 08:04:57 CST


2010/1/6 Sébastien Lorquet <squalylgmail.com>:
> $(JDK_SRC_ROOT)/j2se/src/share/classes/sun/security/smartcardio/PcscTerminals.java
> tells:
>
> final class PCSCTerminals extends CardTerminals {
>
>     // SCARDCONTEXT, currently shared between all threads/terminals
>     private static long contextId;
>
>     // terminal state used by waitForCard()
>     private Map<String,ReaderState> stateMap;
>
>     PCSCTerminals() {
>     // empty
>     }
>
>     static synchronized void initContext() throws PCSCException {
>     if (contextId == 0) {
>         contextId = SCardEstablishContext(SCARD_SCOPE_USER);
>     }
>     }
>
> ...........
>
> so the context is shared. so a single poller thread is required.

It looks like a design error in javax.smartcardio :-(

--
 Dr. Ludovic Rousseau

_______________________________________________
Muscle mailing list
Musclelists.musclecard.com
http://lists.drizzle.com/mailman/listinfo/muscle