Hello,
And help! I have run into practically the same problem that's described here. I've installed an evaluation copy of JCAPI and wrote a simple Java test program to see how it worked and see that it does work. (Actually I hacked one of the sample programs.) The evaluation worked fine, allowing me to load and print out the contents of the certificates from a CAC smartcard. However, when I tried to include the identical code in our (fairly large) Java application, the JVM crashed in a way nearly identical to what was described in this post.
By way of environment, I'm running on Windows, using Eclipse with Java 1.5.0_10. I'll include the information from the JVM about the crash below. I am quite interested in the product, but only if I can get it to work. This is a blocking problem.
Thanks,
-Bill
#
# An unexpected error has been detected by HotSpot Virtual Machine:
#
# EXCEPTION_FLT_STACK_CHECK (0xc0000092) at pc=0x00b87ad9, pid=4752, tid=5616
#
# Java VM: Java HotSpot(TM) Client VM (1.5.0_10-b03 mixed mode)
# Problematic frame:
# j java.lang.ClassLoader$NativeLibrary.load(Ljava/lang/String

V+0
#
--------------- T H R E A D ---------------
Current thread (0x008236c0): JavaThread "main" [_thread_in_Java, id=5616]
siginfo: ExceptionCode=0xc0000092, ExceptionInformation=0x00000000 0x0006e01e
Registers:
EAX=0x02b9c0a0, EBX=0x00b87ad0, ECX=0x008236c0, EDX=0x00b8a0d2
ESP=0x0006f314, EBP=0x0006f330, ESI=0x22c7a9e8, EDI=0x0006f344
EIP=0x00b87ad9, EFLAGS=0x00210202
Top of Stack: (sp=0x0006f314)
0x0006f314: 0006f314 22c7a9e8 0006f344 22c7af80
0x0006f324: 00000000 22c7a9e8 0006f340 0006f374
0x0006f334: 00b829e3 00000000 00b873e9 02b9bf08
0x0006f344: 02b9bfb8 00000001 052fc328 00000001
0x0006f354: 052fcd58 0006f348 22b9b764 0006f3b4
0x0006f364: 22be7860 00000000 22b9b7f0 0006f3b0
0x0006f374: 0006f3d4 00b82b3b 00000000 00000000
0x0006f384: 00000000 00000000 02b9bfb8 00000000
Instructions: (pc=0x00b87ad9)
0x00b87ac9: 00 00 00 ff ff ff ff 8b 75 e8 8b 7d ec 8b 65 e4
0x00b87ad9: dd c7 dd c6 dd c5 dd c4 dd c3 dd c2 dd c1 dd c0
Stack: [0x00030000,0x00070000), sp=0x0006f314, free space=252k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
j java.lang.ClassLoader$NativeLibrary.load(Ljava/lang/String

V+0
j java.lang.ClassLoader.loadLibrary0(Ljava/lang/Class;Ljava/io/File

Z+300
j java.lang.ClassLoader.loadLibrary(Ljava/lang/Class;Ljava/lang/String;Z)V+48
j java.lang.Runtime.load0(Ljava/lang/Class;Ljava/lang/String

V+57
j java.lang.System.load(Ljava/lang/String

V+7
j com.pheox.jcapi.g.g()V+170
j com.pheox.jcapi.JCAPIProvider.init()V+16
j com.pheox.jcapi.JCAPIProvider.<clinit>()V+0
v ~StubRoutines::call_stub
V [jvm.dll+0x8757c]
V [jvm.dll+0xde804]
V [jvm.dll+0x8744d]
V [jvm.dll+0x79b74]
V [jvm.dll+0x78a40]
V [jvm.dll+0x81f44]
j com.bladelogic.auth.client.CACUserCredential.<init>(Lcom/bladelogic/session/common/BlSite;Ljava/lang/String;Lcom/bladelogic/security/cert/ClientTrustStore

V+116
j com.bladelogic.client.BRProfile.createCACUserCredential(Lcom/bladelogic/session/common/BlSite

Lcom/bladelogic/auth/client/CACUserCredential;+16
j com.bladelogic.client.cm.login.protocol.CACUserCredentialPanel.getUserCredential()Lcom/bladelogic/auth/client/UserCredential;+3
j com.bladelogic.client.cm.login.protocol.CACUserCredentialPanel.initLayout()V+12
j com.bladelogic.client.cm.login.protocol.CACUserCredentialPanel.<init>(Ljavax/swing/JPanel;Ljavax/swing/JComponent;Lcom/bladelogic/client/nodes/login/ServiceProfileNode

V+8
j com.bladelogic.client.cm.login.protocol.UserCredentialPanelFactory.createUserCredentialPanel(Lcom/bladelogic/client/nodes/login/ServiceProfileNode;Ljavax/swing/JPanel;Ljavax/swing/JComponent

Lcom/bladelogic/client/cm/login/protocol/AbstractUserCredentialPanel;+150
j com.bladelogic.client.cm.login.LoginPanel.layoutPanel()V+178
j com.bladelogic.client.cm.login.LoginPanel.resetlayout(Z)V+53
j com.bladelogic.client.cm.login.LoginPanel.<init>(Lcom/bladelogic/shared/option/OptionsManager

V+20
j com.bladelogic.client.cm.login.LoginManager.doLogin(Lcom/bladelogic/shared/option/OptionsManager;Lcom/bladelogic/client/cm/SplashScreen;Ljava/lang/String;ILjava/util/Locale

Lcom/bladelogic/client/cm/LoginResult;+43
j com.bladelogic.client.cm.login.GuiLoginOperations.obtainSessionCredential()Lcom/bladelogic/session/common/SessionCredential;+23
j com.bladelogic.session.client.SessionLoginManager.connect()V+9
j com.bladelogic.session.client.SessionLoginManager.login()V+5
j com.bladelogic.client.cm.BRMain.main([Ljava/lang/String

V+180
v ~StubRoutines::call_stub
V [jvm.dll+0x8757c]
V [jvm.dll+0xde804]
V [jvm.dll+0x8744d]
V [jvm.dll+0x8e4a9]
C [javaw.exe+0x14c5]
C [javaw.exe+0x3151]
C [kernel32.dll+0x16fd7]
--------------- P R O C E S S ---------------
Java Threads: ( => current thread )
0x00903220 JavaThread "TimerQueue" daemon [_thread_blocked, id=6044]
0x008ace70 JavaThread "Thread-2" [_thread_blocked, id=6136]
0x00888400 JavaThread "AWT-EventQueue-0" [_thread_blocked, id=5720]
0x0087e220 JavaThread "AWT-Windows" daemon [_thread_in_native, id=5772]
0x0087ea90 JavaThread "AWT-Shutdown" [_thread_blocked, id=2384]
0x0087cad0 JavaThread "Java2D Disposer" daemon [_thread_blocked, id=5704]
0x0083b260 JavaThread "Low Memory Detector" daemon [_thread_blocked, id=4380]
0x0083aa70 JavaThread "CompilerThread0" daemon [_thread_blocked, id=5204]
0x00838420 JavaThread "Signal Dispatcher" daemon [_thread_blocked, id=5784]
0x00836140 JavaThread "JDWP Command Reader" daemon [_thread_in_native, id=5756]
0x00836e60 JavaThread "JDWP Event Helper Thread" daemon [_thread_blocked, id=4732]
0x00834960 JavaThread "JDWP Transport Listener: dt_socket" daemon [_thread_blocked, id=4156]
0x0082da70 JavaThread "Finalizer" daemon [_thread_blocked, id=5372]
0x0082c800 JavaThread "Reference Handler" daemon [_thread_blocked, id=5104]
=>0x008236c0 JavaThread "main" [_thread_in_Java, id=5616]
Other Threads:
0x0082bae0 VMThread [id=4408]
0x0083de00 WatcherThread [id=1572]
VM state:not at safepoint (normal execution)
VM Mutex/Monitor currently owned by a thread: None
Heap
def new generation total 768K, used 168K [0x02b80000, 0x02c50000, 0x052e0000)
eden
[error occurred during error reporting, step 190, id 0xc0000092]
Dynamic libraries:
0x00400000 - 0x0040d000 C:\Program Files\Java\jdk1.5.0_10\bin\javaw.exe
0x7c900000 - 0x7c9b0000 C:\WINDOWS\system32\ntdll.dll
0x7c800000 - 0x7c8f5000 C:\WINDOWS\system32\kernel32.dll
0x77dd0000 - 0x77e6b000 C:\WINDOWS\system32\ADVAPI32.dll
0x77e70000 - 0x77f01000 C:\WINDOWS\system32\RPCRT4.dll
0x7e410000 - 0x7e4a0000 C:\WINDOWS\system32\USER32.dll
0x77f10000 - 0x77f57000 C:\WINDOWS\system32\GDI32.dll
0x77c10000 - 0x77c68000 C:\WINDOWS\system32\MSVCRT.dll
0x76390000 - 0x763ad000 C:\WINDOWS\system32\IMM32.DLL
0x629c0000 - 0x629c9000 C:\WINDOWS\system32\LPK.DLL
0x74d90000 - 0x74dfb000 C:\WINDOWS\system32\USP10.dll
0x6d730000 - 0x6d8cc000 C:\Program Files\Java\jdk1.5.0_10\jre\bin\client\jvm.dll
0x76b40000 - 0x76b6d000 C:\WINDOWS\system32\WINMM.dll
0x6d2f0000 - 0x6d2f8000 C:\Program Files\Java\jdk1.5.0_10\jre\bin\hpi.dll
0x76bf0000 - 0x76bfb000 C:\WINDOWS\system32\PSAPI.DLL
0x6d3f0000 - 0x6d425000 C:\Program Files\Java\jdk1.5.0_10\jre\bin\jdwp.dll
0x6d700000 - 0x6d70c000 C:\Program Files\Java\jdk1.5.0_10\jre\bin\verify.dll
0x6d370000 - 0x6d38d000 C:\Program Files\Java\jdk1.5.0_10\jre\bin\java.dll
0x6d720000 - 0x6d72f000 C:\Program Files\Java\jdk1.5.0_10\jre\bin\zip.dll
0x6d290000 - 0x6d297000 C:\Program Files\Java\jdk1.5.0_10\jre\bin\dt_socket.dll
0x71ab0000 - 0x71ac7000 C:\WINDOWS\system32\WS2_32.dll
0x71aa0000 - 0x71aa8000 C:\WINDOWS\system32\WS2HELP.dll
0x71a50000 - 0x71a8f000 C:\WINDOWS\System32\mswsock.dll
0x76f20000 - 0x76f47000 C:\WINDOWS\system32\DNSAPI.dll
0x76fb0000 - 0x76fb8000 C:\WINDOWS\System32\winrnr.dll
0x76f60000 - 0x76f8c000 C:\WINDOWS\system32\WLDAP32.dll
0x76fc0000 - 0x76fc6000 C:\WINDOWS\system32\rasadhlp.dll
0x662b0000 - 0x66308000 C:\WINDOWS\system32\hnetcfg.dll
0x71a90000 - 0x71a98000 C:\WINDOWS\System32\wshtcpip.dll
0x6d070000 - 0x6d1d9000 C:\Program Files\Java\jdk1.5.0_10\jre\bin\awt.dll
0x73000000 - 0x73026000 C:\WINDOWS\system32\WINSPOOL.DRV
0x774e0000 - 0x7761d000 C:\WINDOWS\system32\ole32.dll
0x73760000 - 0x737a9000 C:\WINDOWS\system32\ddraw.dll
0x73bc0000 - 0x73bc6000 C:\WINDOWS\system32\DCIMAN32.dll
0x6d2b0000 - 0x6d2f0000 C:\Program Files\Java\jdk1.5.0_10\jre\bin\fontmanager.dll
0x755c0000 - 0x755ee000 C:\WINDOWS\system32\msctfime.ime
0x7c9c0000 - 0x7d1d5000 C:\WINDOWS\system32\shell32.dll
0x77f60000 - 0x77fd6000 C:\WINDOWS\system32\SHLWAPI.dll
0x773d0000 - 0x774d3000 C:\WINDOWS\WinSxS\x86_Microsoft.Windows.Common-Controls_6595b64144ccf1df_6.0.2600.2982_x-ww_ac3f9c03\comctl32.dll
0x5d090000 - 0x5d12a000 C:\WINDOWS\system32\comctl32.dll
0x6d530000 - 0x6d543000 C:\Program Files\Java\jdk1.5.0_10\jre\bin\net.dll
0x6d550000 - 0x6d559000 C:\Program Files\Java\jdk1.5.0_10\jre\bin\nio.dll
0x77a80000 - 0x77b14000 C:\WINDOWS\system32\crypt32.dll
0x77b20000 - 0x77b32000 C:\WINDOWS\system32\MSASN1.dll
0x77c00000 - 0x77c08000 C:\WINDOWS\system32\version.dll
0x71ad0000 - 0x71ad9000 C:\WINDOWS\system32\wsock32.dll
VM Arguments:
jvm_args: -Dblx.cmrootdir=C:\workspaces\7_5_bugfix_cac/om/build/classes -Xmx512m -agentlib:jdwp=transport=dt_socket,suspend=y,address=localhost:2823
java_command: com.bladelogic.client.cm.BRMain
Launcher Type: SUN_STANDARD
Environment Variables:
JAVA_HOME=C:\Program Files\Java\jdk1.5.0_10
PATH=C:\Program Files\Java\jdk1.5.0_10\jre\bin;C:\workspaces\7_5_bugfix_cac\om\bin\Release;C:\workspaces\7_5_bugfix_cac\3rdparty\bladelogic\Win32
USERNAME=BHUBER
OS=Windows_NT
PROCESSOR_IDENTIFIER=x86 Family 6 Model 23 Stepping 6, GenuineIntel
--------------- S Y S T E M ---------------
OS: Windows XP Build 2600 Service Pack 2
CPU:total 1 (cores per cpu 2, threads per core 1) family 6 model 7 stepping 6, cmov, cx8, fxsr, mmx, sse, sse2
Memory: 4k page, physical 2097151k(2097151k free), swap 4194303k(3995076k free)
vm_info: Java HotSpot(TM) Client VM (1.5.0_10-b03) for windows-x86, built on Nov 9 2006 13:13:34 by "java_re" with MS VC++ 6.0