Dave-H Posted May 5, 2020 Author Share Posted May 5, 2020 Oh dear, it does sound like perhaps Update 241 may be the last that works properly on XP. I will roll back to that and if that works I think we have to assume that is the case. Link to comment Share on other sites More sharing options...
i430VX Posted May 5, 2020 Share Posted May 5, 2020 Does there happen to be a xx2 matching u251? (u252) If there is, I'd be interested in trying that. Link to comment Share on other sites More sharing options...
Dave-H Posted May 5, 2020 Author Share Posted May 5, 2020 OK, I've found the problem, it seems to be just one file causing it! The file is "sunmscapi.dll" which is in the \bin folder. If you replace just that file with the version from Update 241, it all comes good! What is actually wrong with the file I'm not sure, according to CFF Explorer it's still superficially XP compatible, but perhaps someone with more knowledge about this sort of thing could analyse it more deeply and tell us! Cheers, Dave. 1 Link to comment Share on other sites More sharing options...
win32 Posted May 5, 2020 Share Posted May 5, 2020 (edited) 1 hour ago, Dave-H said: OK, I've found the problem, it seems to be just one file causing it! The file is "sunmscapi.dll" which is in the \bin folder. If you replace just that file with the version from Update 241, it all comes good! What is actually wrong with the file I'm not sure, according to CFF Explorer it's still superficially XP compatible, but perhaps someone with more knowledge about this sort of thing could analyse it more deeply and tell us! Cheers, Dave. The difference between 241 and 251's sunmscapi.dlls is that the latter relies on ncrypt.dll, which doesn't exist in NT 5.x. One-Core-API has a wrapper for it. Edited May 5, 2020 by win32 1 Link to comment Share on other sites More sharing options...
Dave-H Posted May 5, 2020 Author Share Posted May 5, 2020 Thank you, so a creeping incompatibility with XP is obviously now being gradually slipped in! I can only assume that more and more files in the new Java installations will start to have this sort of problem as time goes on, until it will get to the point where you'll have to replace so many files for it to work that you might as well just stick with the previous version anyway! Link to comment Share on other sites More sharing options...
dencorso Posted May 5, 2020 Share Posted May 5, 2020 2 hours ago, Dave-H said: OK, I've found the problem, it seems to be just one file causing it! The file is "sunmscapi.dll" which is in the \bin folder. If you replace just that file with the version from Update 241, it all comes good! What version does the java test site say you have when using the 241 "sunmscapi.dll"? Link to comment Share on other sites More sharing options...
Dave-H Posted May 5, 2020 Author Share Posted May 5, 2020 It says I'm using 251, and am up to date! 1 Link to comment Share on other sites More sharing options...
FranceBB Posted May 5, 2020 Share Posted May 5, 2020 (edited) I finally had time to look at this as well and I can confirm that it doesn't work on my computer either and I know why. 2 hours ago, win32 said: sunmscapi.dlls relies on ncrypt.dll, which doesn't exist in NT 5.x. One-Core-API has a wrapper for it. Precisely. We did backport ncrypt.dll but it also relies on a series of dlls, two of which don't exist in XP either: NTEXT.DLL and BCRYPT.DLL. Although bcrypt.dll has been backported as well, there's no current implementation of NTEXT and the following APIs in our modified version of XP: RtlDeleteResource RtlInitializeResource NtClose RtlInitializeSRWLock RtlReleaseSRWLockExclusive RtlAcquireSRWLockExclusive RtlFreeSid RtlAllocateHeap RtlSizeHeap NtOpenKey RtlNtStatusToDosError NtQueryValueKey RtlCompareUnicodeString NtQueryInformationProcess NtOpenFile NtDeviceIoControlFile RtlImageNtHeader RtlReleaseResource RtlAcquireResourceExclusive RtlAcquireResourceShared LdrDisableThreadCalloutsForDll RtlAllocateAndInitializeSid RtlInitUnicodeString RtlFreeUnicodeString RtlAnsiStringToUnicodeString RtlInitAnsiString RtlFreeAnsiString RtlUnicodeStringToAnsiString RtlFreeHeap RtlReleaseRelativeName NtCreateFile RtlDosPathNameToRelativeNtPathName_U RtlAbsoluteToSelfRelativeSD RtlGetControlSecurityDescriptor RtlNtStatusToDosErrorNoTeb NtOpenProcess RtlInitializeCriticalSection RtlDeleteCriticalSection RtlLeaveCriticalSection RtlEnterCriticalSection RtlAppendUnicodeToString And... sure, you could just replace that DLL (sunmscapi.dll) and use an older one to make Java work: However the future doesn't look bright 'cause this time we've been lucky and it was a trivial component, next time we might not be as lucky... (I'm tagging you just for an heads up: @Dibya, @neverseen, @Skulltrail) Shall we try to report it to Oracle and pray that they'll revert to the former implementation of sunmscapi? EDIT: I reported it to Oracle Name of the Applet or Application: Java 8 Update 251 Provide clear and detailed description of the problem you are experiencing, including error messages: As we rolled out the new update to our Windows Embedded POSReady 2009 tills we noticed that sunmscapi.dll was changed and is now calling ncrypt.dll which represents a problem as those APIs don't exist in our Embedded version of Windows. After we rolled out the update, we replaced sunmscapi.dll with the former one. This way, we managed to get Java 8 Update 251 work. It's a shame to break Embedded products compatibility just for a silly call to the APIs like this one. You can see that it works on this test machine running Windows Embedded POSReady 2009 x86 in Virtual Machine: (screenshot). Your Operating System: Windows Embedded POSReady 2009 x86 Java Software Version: 8 Update 251 Which Java version(s) did this work with before this issue? 8 Update 241 Thank you for taking the time to write. We will reply as soon as possible, Oracle. Edited May 5, 2020 by FranceBB Link to comment Share on other sites More sharing options...
Dave-H Posted May 5, 2020 Author Share Posted May 5, 2020 Just as a matter of interest, is that file security critical? Link to comment Share on other sites More sharing options...
FranceBB Posted May 5, 2020 Share Posted May 5, 2020 (edited) 8 minutes ago, Dave-H said: Just as a matter of interest, is that file security critical? Well... SunMSCAPI it's part of security.cpp in src/windows/native/sun/security/ and these APIs are used by desktop applications for things like to access smartcard certificates for TLS connections and other stuff, so I can't tell you that it's safe to ignore the update, however I don't have enough knowledge of Java to tell you that it's critical either. Edited May 5, 2020 by FranceBB Link to comment Share on other sites More sharing options...
Dave-H Posted May 5, 2020 Author Share Posted May 5, 2020 (edited) OK, well I don't think I'll be losing any sleep about using one out of date file! One other thing I've noticed, which probably isn't related but you never know, is that when you do the Java test page, it puts up a warning for you to accept or cancel, and there is an option to not show it again. I never bother to tick that, but it's now acting as if I have, and after the first time the warning never appears again unless and until I do the "Restore Security Prompts" option on the security tab of the Java control panel. Not a problem of course, but strange! I don't know where the setting to not show the prompt again is stored, and I haven't been able to find out. Anyone know? Edited May 5, 2020 by Dave-H Typo Link to comment Share on other sites More sharing options...
Dave-H Posted May 6, 2020 Author Share Posted May 6, 2020 Just tested in Internet Explorer 11 on Windows 10 and the behaviour is exactly the same! I guess this has been changed, and the warning now only appears once even if you don't check the "do not show again" option. 1 Link to comment Share on other sites More sharing options...
i430VX Posted May 7, 2020 Share Posted May 7, 2020 Thank you, @Dave-H! Replacing the DLL worked! 1 Link to comment Share on other sites More sharing options...
dencorso Posted May 11, 2020 Share Posted May 11, 2020 I decided to take the plunge... and work it does! On 5/5/2020 at 4:31 PM, dencorso said: What version does the java test site say you have when using the 241 "sunmscapi.dll"? On 5/5/2020 at 4:33 PM, Dave-H said: It says I'm using 251, and am up to date! On 5/5/2020 at 6:10 PM, Dave-H said: Just as a matter of interest, is that file security critical? On 5/5/2020 at 7:50 PM, Dave-H said: OK, well I don't think I'll be losing any sleep about using one out of date file! Yeah, that's my take on it, too. And, anyway, it's not the 1st file from the java bin folder at least some of us have been replacing for sometime, already... it just happens to be the 1st one that's really mandatory, in fact. My own current replacements list is the following: Quote jre1.8.0_102 v.8.0.1020.14 152,640 06-22-2016 fxplugins.dll jre1.8.0_102 v.8.0.1020.14 115,264 06-22-2016 jfxmedia.dll jre1.8.0_102 v.8.0.1020.14 33,944,128 06-22-2016 jfxwebkit.dll jre1.8.0_201 v. 11.201.2.9 93,048 05-27-2019 jp2launcher.exe jre1.8.0_241 v. 8.0.2410.7 27,712 01-16-2020 sunmscapi.dll @Dave-H: Thanks a lot, once more! 1 Link to comment Share on other sites More sharing options...
Thomas S. Posted July 15, 2020 Share Posted July 15, 2020 Java SE RE 8 Update 261 is out 1 Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now