https://bugs.winehq.org/show_bug.cgi?id=46934
Bug ID: 46934 Summary: Oracle Java SE Runtime Environment 7/8, OpenJDK JVM for Windows: InternalError: Should not get here at sun.nio.fs.WindowsNativeDispatcher.FindFirstStream0 Product: Wine Version: 4.4 Hardware: x86-64 OS: Linux Status: NEW Severity: normal Priority: P2 Component: kernel32 Assignee: wine-bugs@winehq.org Reporter: focht@gmx.net Distribution: ---
Hello folks,
continuation of bug 46927
https://source.winehq.org/patches/data/161958
I don't understand what's so hard to spend a minute to create a tracking ticket.
Download: https://web.archive.org/web/20150215213043/http://ftp.psu.ac.th/pub/java/jre...
* https://bugs.java.com/bugdatabase/view_bug.do?bug_id=8152043 * https://bugs.java.com/bugdatabase/view_bug.do?bug_id=8193173 * https://bugs.openjdk.java.net/browse/JDK-8152043
http://hg.openjdk.java.net/jdk7u/jdk7u/jdk/file/b2cc99d27aa1/src/windows/nat...
--- snip --- /** * Initializes jfieldIDs and get address of Win32 calls that are located * at runtime. */ JNIEXPORT void JNICALL Java_sun_nio_fs_WindowsNativeDispatcher_initIDs(JNIEnv* env, jclass this) { jclass clazz; HMODULE h;
clazz = (*env)->FindClass(env, "sun/niofs/WindowsNativeDispatcher$FirstFile"); if (clazz == NULL) { return; } ... // get handle to kernel32 if (GetModuleHandleExW((GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS | GET_MODULE_HANDLE_EX_FLAG_UNCHANGED_REFCOUNT), (LPCWSTR)&CreateFileW, &h) != 0) { // requires Windows Server 2003 or newer FindFirstStream_func = (FindFirstStream_Proc)GetProcAddress(h, "FindFirstStreamW"); FindNextStream_func = (FindNextStream_Proc)GetProcAddress(h, "FindNextStreamW"); // requires Windows Vista or newer CreateSymbolicLink_func = (CreateSymbolicLinkProc)GetProcAddress(h, "CreateSymbolicLinkW"); GetFinalPathNameByHandle_func = (GetFinalPathNameByHandleProc)GetProcAddress(h, GetFinalPathNameByHandleW"); } } --- snip ---
http://hg.openjdk.java.net/jdk7u/jdk7u/jdk/file/b2cc99d27aa1/src/windows/nat...
--- snip --- JNIEXPORT void JNICALL Java_sun_nio_fs_WindowsNativeDispatcher_FindFirstStream0(JNIEnv* env, jclass his, jlong address, jobject obj) { WIN32_FIND_STREAM_DATA data; LPCWSTR lpFileName = jlong_to_ptr(address); HANDLE handle;
if (FindFirstStream_func == NULL) { JNU_ThrowInternalError(env, "Should not get here"); return; } handle = (*FindFirstStream_func)(lpFileName, FindStreamInfoStandard, &data, ); if (handle != INVALID_HANDLE_VALUE) { jstring name = (*env)->NewString(env, data.cStreamName, jsize)wcslen(data.cStreamName)); if (name == NULL) return; (*env)->SetLongField(env, obj, findStream_handle, ptr_to_jlong(handle)); (*env)->SetObjectField(env, obj, findStream_name, name); } else { if (GetLastError() == ERROR_HANDLE_EOF) { (*env)->SetLongField(env, obj, findStream_handle, tr_to_jlong(handle)); } else { throwWindowsException(env, GetLastError()); } } } --- snip ---
$ sha1sum jre-7u21-windows-i586.exe 620472dc1e7d015ed9a7700b846565a707946fcb jre-7u21-windows-i586.exe
$ du -sh jre-7u21-windows-i586.exe 31M jre-7u21-windows-i586.exe
$ wine --version wine-4.5
Regards