diff --git a/lib/analyze-action-post.js b/lib/analyze-action-post.js index 128246dd1d..072a4d02a1 100644 --- a/lib/analyze-action-post.js +++ b/lib/analyze-action-post.js @@ -161576,6 +161576,11 @@ var featureConfig = { envVar: "CODEQL_ACTION_IMPROVED_PROXY_CERTIFICATES", minimumVersion: void 0 }, + ["java_network_debugging" /* JavaNetworkDebugging */]: { + defaultValue: false, + envVar: "CODEQL_ACTION_JAVA_NETWORK_DEBUGGING", + minimumVersion: void 0 + }, ["overlay_analysis" /* OverlayAnalysis */]: { defaultValue: false, envVar: "CODEQL_ACTION_OVERLAY_ANALYSIS", diff --git a/lib/analyze-action.js b/lib/analyze-action.js index eaa9e47374..5d123334a7 100644 --- a/lib/analyze-action.js +++ b/lib/analyze-action.js @@ -107644,6 +107644,11 @@ var featureConfig = { envVar: "CODEQL_ACTION_IMPROVED_PROXY_CERTIFICATES", minimumVersion: void 0 }, + ["java_network_debugging" /* JavaNetworkDebugging */]: { + defaultValue: false, + envVar: "CODEQL_ACTION_JAVA_NETWORK_DEBUGGING", + minimumVersion: void 0 + }, ["overlay_analysis" /* OverlayAnalysis */]: { defaultValue: false, envVar: "CODEQL_ACTION_OVERLAY_ANALYSIS", diff --git a/lib/autobuild-action.js b/lib/autobuild-action.js index 238e80cf3a..fa45fb4bc2 100644 --- a/lib/autobuild-action.js +++ b/lib/autobuild-action.js @@ -103981,6 +103981,11 @@ var featureConfig = { envVar: "CODEQL_ACTION_IMPROVED_PROXY_CERTIFICATES", minimumVersion: void 0 }, + ["java_network_debugging" /* JavaNetworkDebugging */]: { + defaultValue: false, + envVar: "CODEQL_ACTION_JAVA_NETWORK_DEBUGGING", + minimumVersion: void 0 + }, ["overlay_analysis" /* OverlayAnalysis */]: { defaultValue: false, envVar: "CODEQL_ACTION_OVERLAY_ANALYSIS", diff --git a/lib/init-action-post.js b/lib/init-action-post.js index fbf46aa3ed..992d31882e 100644 --- a/lib/init-action-post.js +++ b/lib/init-action-post.js @@ -164970,6 +164970,11 @@ var featureConfig = { envVar: "CODEQL_ACTION_IMPROVED_PROXY_CERTIFICATES", minimumVersion: void 0 }, + ["java_network_debugging" /* JavaNetworkDebugging */]: { + defaultValue: false, + envVar: "CODEQL_ACTION_JAVA_NETWORK_DEBUGGING", + minimumVersion: void 0 + }, ["overlay_analysis" /* OverlayAnalysis */]: { defaultValue: false, envVar: "CODEQL_ACTION_OVERLAY_ANALYSIS", diff --git a/lib/init-action.js b/lib/init-action.js index afb3ba6670..85ebad7f46 100644 --- a/lib/init-action.js +++ b/lib/init-action.js @@ -103372,6 +103372,13 @@ function getRequiredEnvParam(paramName) { } return value; } +function getOptionalEnvVar(paramName) { + const value = process.env[paramName]; + if (value?.trim().length === 0) { + return void 0; + } + return value; +} var HTTPError = class extends Error { status; constructor(message, status) { @@ -105177,6 +105184,11 @@ var featureConfig = { envVar: "CODEQL_ACTION_IMPROVED_PROXY_CERTIFICATES", minimumVersion: void 0 }, + ["java_network_debugging" /* JavaNetworkDebugging */]: { + defaultValue: false, + envVar: "CODEQL_ACTION_JAVA_NETWORK_DEBUGGING", + minimumVersion: void 0 + }, ["overlay_analysis" /* OverlayAnalysis */]: { defaultValue: false, envVar: "CODEQL_ACTION_OVERLAY_ANALYSIS", @@ -109469,6 +109481,13 @@ exec ${goBinaryPath} "$@"` core13.exportVariable(key, value); } } + if (await features.getValue("java_network_debugging" /* JavaNetworkDebugging */)) { + const existingJavaToolOptions = getOptionalEnvVar("JAVA_TOOL_OPTIONS") || ""; + core13.exportVariable( + "JAVA_TOOL_OPTIONS", + `${existingJavaToolOptions} -Djavax.net.debug=ssl,handshake,certpath` + ); + } flushDiagnostics(config); await saveConfig(config, logger); core13.setOutput("codeql-path", config.codeQLCmd); diff --git a/lib/resolve-environment-action.js b/lib/resolve-environment-action.js index 81e2d7ca2e..803892ce8f 100644 --- a/lib/resolve-environment-action.js +++ b/lib/resolve-environment-action.js @@ -103968,6 +103968,11 @@ var featureConfig = { envVar: "CODEQL_ACTION_IMPROVED_PROXY_CERTIFICATES", minimumVersion: void 0 }, + ["java_network_debugging" /* JavaNetworkDebugging */]: { + defaultValue: false, + envVar: "CODEQL_ACTION_JAVA_NETWORK_DEBUGGING", + minimumVersion: void 0 + }, ["overlay_analysis" /* OverlayAnalysis */]: { defaultValue: false, envVar: "CODEQL_ACTION_OVERLAY_ANALYSIS", diff --git a/lib/setup-codeql-action.js b/lib/setup-codeql-action.js index f55c529c5d..a0308fc375 100644 --- a/lib/setup-codeql-action.js +++ b/lib/setup-codeql-action.js @@ -103882,6 +103882,11 @@ var featureConfig = { envVar: "CODEQL_ACTION_IMPROVED_PROXY_CERTIFICATES", minimumVersion: void 0 }, + ["java_network_debugging" /* JavaNetworkDebugging */]: { + defaultValue: false, + envVar: "CODEQL_ACTION_JAVA_NETWORK_DEBUGGING", + minimumVersion: void 0 + }, ["overlay_analysis" /* OverlayAnalysis */]: { defaultValue: false, envVar: "CODEQL_ACTION_OVERLAY_ANALYSIS", diff --git a/lib/start-proxy-action-post.js b/lib/start-proxy-action-post.js index 6705d5745d..fe30a097fd 100644 --- a/lib/start-proxy-action-post.js +++ b/lib/start-proxy-action-post.js @@ -160982,6 +160982,11 @@ var featureConfig = { envVar: "CODEQL_ACTION_IMPROVED_PROXY_CERTIFICATES", minimumVersion: void 0 }, + ["java_network_debugging" /* JavaNetworkDebugging */]: { + defaultValue: false, + envVar: "CODEQL_ACTION_JAVA_NETWORK_DEBUGGING", + minimumVersion: void 0 + }, ["overlay_analysis" /* OverlayAnalysis */]: { defaultValue: false, envVar: "CODEQL_ACTION_OVERLAY_ANALYSIS", diff --git a/lib/start-proxy-action.js b/lib/start-proxy-action.js index 5d76065c6b..0c8a78849f 100644 --- a/lib/start-proxy-action.js +++ b/lib/start-proxy-action.js @@ -120674,6 +120674,11 @@ var featureConfig = { envVar: "CODEQL_ACTION_IMPROVED_PROXY_CERTIFICATES", minimumVersion: void 0 }, + ["java_network_debugging" /* JavaNetworkDebugging */]: { + defaultValue: false, + envVar: "CODEQL_ACTION_JAVA_NETWORK_DEBUGGING", + minimumVersion: void 0 + }, ["overlay_analysis" /* OverlayAnalysis */]: { defaultValue: false, envVar: "CODEQL_ACTION_OVERLAY_ANALYSIS", diff --git a/lib/upload-lib.js b/lib/upload-lib.js index ae13b131f3..ff4eca882a 100644 --- a/lib/upload-lib.js +++ b/lib/upload-lib.js @@ -107037,6 +107037,11 @@ var featureConfig = { envVar: "CODEQL_ACTION_IMPROVED_PROXY_CERTIFICATES", minimumVersion: void 0 }, + ["java_network_debugging" /* JavaNetworkDebugging */]: { + defaultValue: false, + envVar: "CODEQL_ACTION_JAVA_NETWORK_DEBUGGING", + minimumVersion: void 0 + }, ["overlay_analysis" /* OverlayAnalysis */]: { defaultValue: false, envVar: "CODEQL_ACTION_OVERLAY_ANALYSIS", diff --git a/lib/upload-sarif-action-post.js b/lib/upload-sarif-action-post.js index 4ae72f4591..3e83f06d21 100644 --- a/lib/upload-sarif-action-post.js +++ b/lib/upload-sarif-action-post.js @@ -161144,6 +161144,11 @@ var featureConfig = { envVar: "CODEQL_ACTION_IMPROVED_PROXY_CERTIFICATES", minimumVersion: void 0 }, + ["java_network_debugging" /* JavaNetworkDebugging */]: { + defaultValue: false, + envVar: "CODEQL_ACTION_JAVA_NETWORK_DEBUGGING", + minimumVersion: void 0 + }, ["overlay_analysis" /* OverlayAnalysis */]: { defaultValue: false, envVar: "CODEQL_ACTION_OVERLAY_ANALYSIS", diff --git a/lib/upload-sarif-action.js b/lib/upload-sarif-action.js index 9e3a16a162..94b944adf7 100644 --- a/lib/upload-sarif-action.js +++ b/lib/upload-sarif-action.js @@ -106832,6 +106832,11 @@ var featureConfig = { envVar: "CODEQL_ACTION_IMPROVED_PROXY_CERTIFICATES", minimumVersion: void 0 }, + ["java_network_debugging" /* JavaNetworkDebugging */]: { + defaultValue: false, + envVar: "CODEQL_ACTION_JAVA_NETWORK_DEBUGGING", + minimumVersion: void 0 + }, ["overlay_analysis" /* OverlayAnalysis */]: { defaultValue: false, envVar: "CODEQL_ACTION_OVERLAY_ANALYSIS", diff --git a/src/feature-flags.ts b/src/feature-flags.ts index b2ac6f1158..60f8f79048 100644 --- a/src/feature-flags.ts +++ b/src/feature-flags.ts @@ -48,6 +48,7 @@ export enum Feature { ExportDiagnosticsEnabled = "export_diagnostics_enabled", IgnoreGeneratedFiles = "ignore_generated_files", ImprovedProxyCertificates = "improved_proxy_certificates", + JavaNetworkDebugging = "java_network_debugging", OverlayAnalysis = "overlay_analysis", OverlayAnalysisActions = "overlay_analysis_actions", OverlayAnalysisCodeScanningActions = "overlay_analysis_code_scanning_actions", @@ -174,6 +175,11 @@ export const featureConfig = { envVar: "CODEQL_ACTION_IMPROVED_PROXY_CERTIFICATES", minimumVersion: undefined, }, + [Feature.JavaNetworkDebugging]: { + defaultValue: false, + envVar: "CODEQL_ACTION_JAVA_NETWORK_DEBUGGING", + minimumVersion: undefined, + }, [Feature.OverlayAnalysis]: { defaultValue: false, envVar: "CODEQL_ACTION_OVERLAY_ANALYSIS", diff --git a/src/init-action.ts b/src/init-action.ts index 5d459acaec..bd331be2b5 100644 --- a/src/init-action.ts +++ b/src/init-action.ts @@ -95,6 +95,7 @@ import { BuildMode, GitHubVersion, Result, + getOptionalEnvVar, } from "./util"; import { checkWorkflow } from "./workflow"; @@ -753,6 +754,19 @@ async function run(startedAt: Date) { } } + // Enable Java network debugging if the FF is enabled. + if (await features.getValue(Feature.JavaNetworkDebugging)) { + // Get the existing value of `JAVA_OPTS`, if any. + const existingJavaToolOptions = + getOptionalEnvVar("JAVA_TOOL_OPTIONS") || ""; + + // Add the network debugging options. + core.exportVariable( + "JAVA_TOOL_OPTIONS", + `${existingJavaToolOptions} -Djavax.net.debug=ssl,handshake,certpath`, + ); + } + // Write diagnostics to the database that we previously stored in memory because the database // did not exist until now. flushDiagnostics(config);