Hi Anthony, Thanks for helping... On 12/16/13 1:32 PM, Anthony Petrov wrote: > Hi Pete, > > I see you've already tried the Dependency Walker. > > 1. Could you please clarify the following: if you compile two lists of > dependencies, one for JavaAccessBridge.dll and another for > JAWTAccessBridge.DLL, and compare them, are there any differences? Differences:
JAWT* has these extras jvm.dll - error opening file awt.dll - no problem with this and the following java.dll jawt.dll verify.dll Immediate load in JAWT*, delay load in Java* ole32 - colored red, i.e. missing export function required by parent module oleaut32.dll - no problem > > 2. If you change the order of loading the libraries, will it fail > right away w/o even loading the JavaAccessBridge.dll ? yes > > 3. If the above doesn't help, please post the full list of > dependencies for JAWTAccessBridge.DLL as reported by the Dependency > Walker. Error opening file: JVM.DLL API-MS-WIN-CORE-COM-L1-1-0.DLL API-MS-WIN-CORE-WINRT-ERROR-L1-1-0.DLL API-MS-WIN-CORE-WINRT-L1-1-0.DLL API-MS-WIN-CORE-WINRT-ROBUFFER-L1-1-0.DLL API-MS-WIN-CORE-WINRT-STRING-L1-1-0.DLL API-MS-WIN-SHCORE-SCALING-L1-1-0.DLL DCOMP.DLL GPSVC.DLL IESHIMS.DLL Red (missing export function required by parent module): API-MS-WIN-CORE-THREADPOOL-L1-1-0.DLL OLE32.DLL Red, delay load: DWMAPI.DLL IEFRAME.DLL IMM32.DLL MFPLAT.DLL NDFAPI.DLL USERENV.DLL UXTHEME.DLL No problems: ADVAPI32.DLL API-MS-WIN-CORE-CONSOLE-L1-1-0.DLL API-MS-WIN-CORE-DATETIME-L1-1-0.DLL API-MS-WIN-CORE-DEBUG-L1-1-0.DLL API-MS-WIN-CORE-DELAYLOAD-L1-1-0.DLL API-MS-WIN-CORE-ERRORHANDLING-L1-1-0.DLL API-MS-WIN-CORE-FIBERS-L1-1-0.DLL API-MS-WIN-CORE-FILE-L1-1-0.DLL API-MS-WIN-CORE-HANDLE-L1-1-0.DLL API-MS-WIN-CORE-HEAP-L1-1-0.DLL API-MS-WIN-CORE-INTERLOCKED-L1-1-0.DLL API-MS-WIN-CORE-IO-L1-1-0.DLL API-MS-WIN-CORE-LIBRARYLOADER-L1-1-0.DLL API-MS-WIN-CORE-LOCALIZATION-L1-1-0.DLL API-MS-WIN-CORE-LOCALREGISTRY-L1-1-0.DLL API-MS-WIN-CORE-MEMORY-L1-1-0.DLL API-MS-WIN-CORE-MISC-L1-1-0.DLL API-MS-WIN-CORE-NAMEDPIPE-L1-1-0.DLL API-MS-WIN-CORE-PROCESSENVIRONMENT-L1-1-0.DLL API-MS-WIN-CORE-PROCESSTHREADS-L1-1-0.DLL API-MS-WIN-CORE-PROFILE-L1-1-0.DLL API-MS-WIN-CORE-RTLSUPPORT-L1-1-0.DLL API-MS-WIN-CORE-STRING-L1-1-0.DLL API-MS-WIN-CORE-SYNCH-L1-1-0.DLL API-MS-WIN-CORE-SYSINFO-L1-1-0.DLL API-MS-WIN-CORE-UTIL-L1-1-0.DLL API-MS-WIN-SECURITY-BASE-L1-1-0.DLL API-MS-WIN-SECURITY-LSALOOKUP-L1-1-0.DLL API-MS-WIN-SERVICE-CORE-L1-1-0.DLL API-MS-WIN-SERVICE-MANAGEMENT-L1-1-0.DLL API-MS-WIN-SERVICE-MANAGEMENT-L2-1-0.DLL API-MS-WIN-SERVICE-WINSVC-L1-1-0.DLL AWT.DLL CRYPTBASE.DLL GDI32.DLL JAVA.DLL JAWT.DLL JAWTACCESSBRIDGE.DLL KERNEL32.DLL KERNELBASE.DLL LPK.DLL MSVCR100.DLL MSVCRT.DLL NTDLL.DLL OLEAUT32.DLL RPCRT4.DLL SSPICLI.DLL USER32.DLL USP10.DLL VERIFY.DLL ACLUI.DLL ACTIVEDS.DLL ADSLDPC.DLL ADVPACK.DLL API-MS-WIN-DOWNLEVEL-ADVAPI32-L1-1-0.DLL API-MS-WIN-DOWNLEVEL-ADVAPI32-L2-1-0.DLL API-MS-WIN-DOWNLEVEL-NORMALIZ-L1-1-0.DLL API-MS-WIN-DOWNLEVEL-OLE32-L1-1-0.DLL API-MS-WIN-DOWNLEVEL-SHELL32-L1-1-0.DLL API-MS-WIN-DOWNLEVEL-SHLWAPI-L1-1-0.DLL API-MS-WIN-DOWNLEVEL-SHLWAPI-L2-1-0.DLL API-MS-WIN-DOWNLEVEL-USER32-L1-1-0.DLL API-MS-WIN-DOWNLEVEL-VERSION-L1-1-0.DLL API-MS-WIN-SECURITY-SDDL-L1-1-0.DLL APPHELP.DLL ATL.DLL AUTHZ.DLL AVRT.DLL BCRYPT.DLL BROWCLI.DLL CABINET.DLL CERTCLI.DLL CERTENROLL.DLL CFGMGR32.DLL CLBCATQ.DLL COMCTL32.DLL COMCTL32.DLL COMDLG32.DLL CREDUI.DLL CRYPT32.DLL CRYPTSP.DLL CRYPTUI.DLL CSCAPI.DLL D2D1.DLL D3D11.DLL DAVHLPR.DLL DBGHELP.DLL DEVMGR.DLL DEVOBJ.DLL DEVRTL.DLL DFSCLI.DLL DHCPCSVC.DLL DHCPCSVC6.DLL DNSAPI.DLL DRVSTORE.DLL DSROLE.DLL DUI70.DLL DUSER.DLL DWRITE.DLL DXGI.DLL EAPPCFG.DLL EAPPPRXY.DLL EFSADU.DLL EFSUTIL.DLL ELSCORE.DLL ESENT.DLL FMS.DLL GDIPLUS.DLL GPAPI.DLL HLINK.DLL IEADVPACK.DLL IERTUTIL.DLL IEUI.DLL IMAGEHLP.DLL IMGUTIL.DLL INETCOMM.DLL IPHLPAPI.DLL LINKINFO.DLL LOGONCLI.DLL MFC42U.DLL MLANG.DLL MMDEVAPI.DLL MPR.DLL MPRAPI.DLL MPRMSG.DLL MSASN1.DLL MSCTF.DLL MSFEEDS.DLL MSHTML.DLL MSI.DLL MSILTCFG.DLL MSIMG32.DLL MSLS31.DLL MSOERT2.DLL MSRATING.DLL MSSIGN32.DLL NCRYPT.DLL NETAPI32.DLL NETBIOS.DLL NETJOIN.DLL NETPLWIZ.DLL NETUTILS.DLL NEWDEV.DLL NORMALIZ.DLL NSI.DLL NTDSAPI.DLL NTSHRUI.DLL OCCACHE.DLL ODBC32.DLL OLEACC.DLL OLEDLG.DLL ONEX.DLL PCWUM.DLL POWRPROF.DLL PRINTUI.DLL PRNTVPT.DLL PROFAPI.DLL PROPSYS.DLL PSAPI.DLL PUIAPI.DLL RASAPI32.DLL RASDLG.DLL RASMAN.DLL REGAPI.DLL RSTRTMGR.DLL RTUTILS.DLL SAMCLI.DLL SAMLIB.DLL SCECLI.DLL SECUR32.DLL SENSAPI.DLL SETUPAPI.DLL SHDOCVW.DLL SHELL32.DLL SHLWAPI.DLL SLC.DLL SPFILEQ.DLL SPINF.DLL SPPC.DLL SRVCLI.DLL TAPI32.DLL UIAUTOMATIONCORE.DLL URLMON.DLL VAULTCLI.DLL VERSION.DLL VPNIKEAPI.DLL W32TOPL.DLL WDI.DLL WEBIO.DLL WEBSERVICES.DLL WER.DLL WERUI.DLL WINBRAND.DLL WINDOWSCODECS.DLL WINHTTP.DLL WININET.DLL WINMM.DLL WINNSI.DLL WINSCARD.DLL WINSPOOL.DRV WINSTA.DLL WINTRUST.DLL WKSCLI.DLL WLANAPI.DLL WLANUTIL.DLL WLDAP32.DLL WS2_32.DLL WTSAPI32.DLL XMLLITE.DLL > > -- > best regards, > Anthony > > On 12/16/2013 08:02 PM, Pete Brunet wrote: >> I'm writing a regression test and it is failing trying to load >> bin\JAWTAccessBridge.DLL. It was successful in loading >> bin\JavaAccessBridge.dll just prior to the failure. These two DLLs are >> in jre\bin. Here's the failure: >> >> java.lang.UnsatisfiedLinkError: >> C:\\Users\\Pete\\JDK8\\JDK-8029691\\jdk8\\build\\windows-x86-normal-server-release\\images\\j2sdk-image\\jre\\bin\\JAWTAccessBridge.dll: >> >> Can't find dependent libraries >> at java.lang.ClassLoader$NativeLibrary.load(Native Method) >> at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1929) >> at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1835) >> at java.lang.Runtime.loadLibrary0(Runtime.java:870) >> at java.lang.System.loadLibrary(System.java:1119) >> at JABDLL$4.run(JABDLL.java:116) >> at java.security.AccessController.doPrivileged(Native Method) >> at JABDLL.foundLegacyDLLs(JABDLL.java:113) >> at JABDLL.main(JABDLL.java:67) >> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) >> at >> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) >> >> at >> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) >> >> at java.lang.reflect.Method.invoke(Method.java:483) >> at >> com.sun.javatest.regtest.MainWrapper$MainThread.run(MainWrapper.java:94) >> at java.lang.Thread.run(Thread.java:744) >> >> Here's the pertinent code: >> >> private static boolean foundLegacyDLLs() { >> java.security.AccessController.doPrivileged( >> new java.security.PrivilegedAction() { >> public Object run() { >> System.loadLibrary("JavaAccessBridge"); >> return null; >> } >> }, null, new >> RuntimePermission("loadLibrary.JavaAccessBridge") >> ); >> java.security.AccessController.doPrivileged( >> new java.security.PrivilegedAction() { >> public Object run() { >> System.loadLibrary("JAWTAccessBridge"); // >> line >> 116, fails here >> return null; >> } >> }, null, new >> RuntimePermission("loadLibrary.JAWTAccessBridge") >> ); >> return true; >> } >> >> Here's the jtreg run: >> >> $ /cygdrive/c/Users/Pete/JDK8/jtreg/win32/bin/jtreg >> -testjdk:/Users/Pete/JDK8/JDK-8029691/jdk8/build/windows-x86-normal-server-release/images/j2sdk-image >> >> -verbose:summary closed/com/sun/java/accessibility/JABDLL.java >> C:\Users\Pete\JDK8\JDK-8029691\jdk8\jdk\test\TEST.groups: group >> needs_jre: file not found: java/text/Bidi/Bug6665028.java // assume >> this can be ignored >> FAILED: closed/com/sun/java/accessibility/JABDLL.java >> Test results: failed: 1 >> Report written to >> C:\Users\Pete\JDK8\JDK-8029691\jdk8\jdk\test\JTreport\html\report.html >> Results written to C:\Users\Pete\JDK8\JDK-8029691\jdk8\jdk\test\JTwork >> Error: Some tests failed or other problems occurred. >> >> Here's the prolog to the test case: >> >> /* >> * @test >> * @summary ... >> * @run main JABDLL >> */ >> >> The built image runs fine in normal use, i.e. I can run SwingSet2 with >> the same image so I assume it's something I'm not doing right with >> respect to jtreg. >> >> The dependency walker reports jvm.dll which is in bin\server. I tried >> moving that to bin but that didn't help. Also some Win DLLs were >> reported most of which start with API-MS-WIN- but I assume those are >> false negatives. The sdk image I am testing is 32 bit and the DLL is >> also 32 bit. Hopefully it's just something I don't yet understand about >> jprt, like maybe a missing @ tag in the prolog. >> >> Any ideas on how to debug this? >> >> Pete >> >>