--- old/src/java.desktop/windows/native/libawt/windows/ShellFolder2.cpp 2018-09-04 15:03:42.135088900 +0530 +++ new/src/java.desktop/windows/native/libawt/windows/ShellFolder2.cpp 2018-09-04 15:03:40.805592700 +0530 @@ -920,7 +920,7 @@ */ JNIEXPORT jlong JNICALL Java_sun_awt_shell_Win32ShellFolder2_extractIcon (JNIEnv* env, jclass cls, jlong pIShellFolderL, jlong relativePIDL, - jboolean getLargeIcon, jboolean getDefaultIcon) + jint size, jboolean getDefaultIcon) { IShellFolder* pIShellFolder = (IShellFolder*)pIShellFolderL; LPITEMIDLIST pidl = (LPITEMIDLIST)relativePIDL; @@ -941,16 +941,7 @@ UINT uFlags = getDefaultIcon ? GIL_DEFAULTICON : GIL_FORSHELL | GIL_ASYNC; hres = pIcon->GetIconLocation(uFlags, szBuf, MAX_PATH, &index, &flags); if (SUCCEEDED(hres)) { - HICON hIconLarge; - hres = pIcon->Extract(szBuf, index, &hIconLarge, &hIcon, (16 << 16) + 32); - if (SUCCEEDED(hres)) { - if (getLargeIcon) { - fn_DestroyIcon((HICON)hIcon); - hIcon = hIconLarge; - } else { - fn_DestroyIcon((HICON)hIconLarge); - } - } + hres = pIcon->Extract(szBuf, index, &hIcon, 0, size); } else if (hres == E_PENDING) { pIcon->Release(); return E_PENDING;