@@ -436,11 +436,30 @@ public static Class<?> compileAndLoad(
436436      String  compilerOutputDir  = "/tmp/"  + CapturedSnapshotTest .class .getSimpleName () + "-kotlin" ;
437437      args .setDestination (compilerOutputDir );
438438      args .setClasspath (System .getProperty ("java.class.path" ));
439-       ExitCode  exitCode  =
440-           compiler .execImpl (
441-               new  PrintingMessageCollector (System .out , MessageRenderer .WITHOUT_PATHS , true ),
442-               Services .EMPTY ,
443-               args );
439+       // We are currently testing JDK 25-ea, which is not yet generally available. This is causing 
440+       // Kotlin compilation issues for "25-ea" and "25". Temporarily override java.version "25-ea" 
441+       // to be the latest generally available JDK version "24". 
442+       // TODO: Revert this change once JDK 25 is generally available and tested. 
443+       String  originalJavaVersion  = System .getProperty ("java.version" );
444+       boolean  overrideEAJavaVersion  =
445+           originalJavaVersion  != null  && originalJavaVersion .contains ("-ea" );
446+       ExitCode  exitCode ;
447+       try  {
448+         if  (overrideEAJavaVersion ) {
449+           System .setProperty ("java.version" , "24" );
450+         }
451+         exitCode  =
452+             compiler .execImpl (
453+                 new  PrintingMessageCollector (System .out , MessageRenderer .WITHOUT_PATHS , true ),
454+                 Services .EMPTY ,
455+                 args );
456+       } finally  {
457+         // Restore the original java.version if it was overridden (25-ea) 
458+         if  (overrideEAJavaVersion ) {
459+           System .setProperty ("java.version" , originalJavaVersion );
460+         }
461+       }
462+ 
444463      if  (exitCode .getCode () != 0 ) {
445464        throw  new  RuntimeException ("Kotlin compilation failed" );
446465      }
0 commit comments