JDK-8047777 : (process) ProcessEnvironment_md.c not compiling on 8uX
  • Type: Bug
  • Component: core-libs
  • Sub-Component: java.lang
  • Affected Version: 8u20
  • Priority: P2
  • Status: Closed
  • Resolution: Fixed
  • Submitted: 2014-06-22
  • Updated: 2014-07-29
  • Resolved: 2014-06-23
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
8u20 b20Fixed
jdk8u-dev isn't building on windows since the JDK-8036603 fix was pushed. A bad macro call is made. 

c:/jprt/T/P1/162027.scoffey/s/jdk/src/windows/native/java/lang/ProcessEnvironment_md.c(44) : warning C4003: not enough actual parameters for macro 'CHECK_NULL_RETURN'
c:/jprt/T/P1/162027.scoffey/s/jdk/src/windows/native/java/lang/ProcessEnvironment_md.c(44) : error C2059: syntax error : ')'
c:/jprt/T/P1/162027.scoffey/s/jdk/src/windows/native/java/lang/ProcessEnvironment_md.c(70) : error C2143: syntax error : missing '{' before '__cdecl'
c:/jprt/T/P1/162027.scoffey/s/jdk/src/windows/native/java/lang/ProcessEnvironment_md.c(77) : warning C4047: 'return' : 'int' differs in levels of indirection from 'jstring'
c:/jprt/T/P1/162027.scoffey/s/jdk/src/windows/native/java/lang/ProcessEnvironment_md.c(87) : warning C4047: 'return' : 'int' differs in levels of indirection from 'jstring'

Fixing should be straightforward. Currently testing.
Marking this as verified based on JDK is building every day.

diff --git a/src/windows/native/java/lang/ProcessEnvironment_md.c b/src/windows/native/java/lang/ProcessEnvironment_md.c --- a/src/windows/native/java/lang/ProcessEnvironment_md.c +++ b/src/windows/native/java/lang/ProcessEnvironment_md.c @@ -41,7 +41,7 @@ CHECK_NULL_RETURN(string_class, NULL); String_init_ID = (*env)->GetMethodID(env, string_class, "<init>", "([B)V"); - CHECK_NULL_RETURN(String_init_ID); + CHECK_NULL_RETURN(String_init_ID, NULL); blockA = (jbyte *) GetEnvironmentStringsA(); if (blockA == NULL) { /* Both GetEnvironmentStringsW and GetEnvironmentStringsA