# HG changeset patch # User mbaesken # Date 1538480888 -7200 # Node ID c02aa8873ff21963b58d7b4b18331c56dd9258d7 # Parent a2413ed39eff68161c1a5276df2e54ecf7f95076 8211106: [windows] Update OS detection code to recognize Windows Server 2019 Reviewed-by: alanb, clanger, bobv diff -r a2413ed39eff -r c02aa8873ff2 src/hotspot/os/windows/os_windows.cpp --- a/src/hotspot/os/windows/os_windows.cpp Thu Nov 15 11:26:46 2018 +0000 +++ b/src/hotspot/os/windows/os_windows.cpp Tue Oct 02 13:48:08 2018 +0200 @@ -1688,7 +1688,13 @@ if (is_workstation) { st->print("10"); } else { - st->print("Server 2016"); + // distinguish Windows Server 2016 and 2019 by build number + // Windows server 2019 GA 10/2018 build number is 17763 + if (build_number > 17762) { + st->print("Server 2019"); + } else { + st->print("Server 2016"); + } } break; diff -r a2413ed39eff -r c02aa8873ff2 src/java.base/windows/native/libjava/java_props_md.c --- a/src/java.base/windows/native/libjava/java_props_md.c Thu Nov 15 11:26:46 2018 +0000 +++ b/src/java.base/windows/native/libjava/java_props_md.c Tue Oct 02 13:48:08 2018 +0200 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2017, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2018, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -359,6 +359,7 @@ static java_props_t sprops = {0}; int majorVersion; int minorVersion; + int buildNumber = 0; if (sprops.line_separator) { return &sprops; @@ -398,6 +399,8 @@ GetVersionEx((OSVERSIONINFO *) &ver); majorVersion = ver.dwMajorVersion; minorVersion = ver.dwMinorVersion; + /* distinguish Windows Server 2016 and 2019 by build number */ + buildNumber = ver.dwBuildNumber; is_workstation = (ver.wProductType == VER_NT_WORKSTATION); platformId = ver.dwPlatformId; sprops.patch_level = _strdup(ver.szCSDVersion); @@ -448,6 +451,7 @@ } majorVersion = HIWORD(file_info->dwProductVersionMS); minorVersion = LOWORD(file_info->dwProductVersionMS); + buildNumber = HIWORD(file_info->dwProductVersionLS); free(version_info); } while (0); @@ -478,6 +482,8 @@ * Windows Server 2012 R2 6 3 (!VER_NT_WORKSTATION) * Windows 10 10 0 (VER_NT_WORKSTATION) * Windows Server 2016 10 0 (!VER_NT_WORKSTATION) + * Windows Server 2019 10 0 (!VER_NT_WORKSTATION) + * where (buildNumber > 17762) * * This mapping will presumably be augmented as new Windows * versions are released. @@ -551,7 +557,14 @@ } } else { switch (minorVersion) { - case 0: sprops.os_name = "Windows Server 2016"; break; + case 0: + /* Windows server 2019 GA 10/2018 build number is 17763 */ + if (buildNumber > 17762) { + sprops.os_name = "Windows Server 2019"; + } else { + sprops.os_name = "Windows Server 2016"; + } + break; default: sprops.os_name = "Windows NT (unknown)"; } }