diff --git a/dd-java-agent/agent-iast/build.gradle b/dd-java-agent/agent-iast/build.gradle index 37c50f53795..d8e92698767 100644 --- a/dd-java-agent/agent-iast/build.gradle +++ b/dd-java-agent/agent-iast/build.gradle @@ -10,10 +10,6 @@ plugins { id 'dd-trace-java.module.product-subsystem' } -tasks.named("compileJava", JavaCompile) { - configureCompiler(it, 11, JavaVersion.VERSION_1_8, "Error Prone 2.23.0 / NullAway 0.10.15 are incompatible with JDK 25 javac") -} - // First version with Mac M1 support def grpcVersion = '1.42.2' protobuf { @@ -66,8 +62,8 @@ dependencies { jmh project(':dd-java-agent:instrumentation:java:java-lang:java-lang-1.8') compileOnly('org.jetbrains:annotations:24.0.0') - errorprone('com.uber.nullaway:nullaway:0.10.15') - errorprone('com.google.errorprone:error_prone_core:2.23.0') + errorprone('com.uber.nullaway:nullaway:0.14.2') + errorprone('com.google.errorprone:error_prone_core:2.50.0') } tasks.named("shadowJar", ShadowJar) { @@ -117,6 +113,7 @@ tasks.named("forbiddenApisJmh") { tasks.withType(JavaCompile).configureEach { if (name == 'compileJava') { + options.compilerArgs.add('--should-stop=ifError=FLOW') options.errorprone { check("NullAway", CheckSeverity.ERROR) option("NullAway:AnnotatedPackages", "com.datadog.iast") diff --git a/dd-java-agent/agent-iast/gradle.lockfile b/dd-java-agent/agent-iast/gradle.lockfile index 7bd61b544d8..4105e672d47 100644 --- a/dd-java-agent/agent-iast/gradle.lockfile +++ b/dd-java-agent/agent-iast/gradle.lockfile @@ -2,7 +2,6 @@ # Manual edits can break the build and are not advised. # This file is expected to be part of source control. # To regenerate this file, run: ./gradlew :dd-java-agent:agent-iast:dependencies --write-locks -aopalliance:aopalliance:1.0=annotationProcessor,errorprone,jmhAnnotationProcessor,testAnnotationProcessor cafe.cryptography:curve25519-elisabeth:0.1.0=jmh,jmhCompileProtoPath,jmhRuntimeClasspath cafe.cryptography:ed25519-elisabeth:0.1.0=jmh,jmhCompileProtoPath,jmhRuntimeClasspath ch.qos.logback:logback-classic:1.2.13=jmhRuntimeClasspath,testCompileClasspath,testCompileProtoPath,testRuntimeClasspath @@ -37,39 +36,39 @@ com.google.android:annotations:4.1.1.4=jmhRuntimeClasspath,testCompileProtoPath, com.google.api.grpc:proto-google-common-protos:2.0.1=jmhRuntimeClasspath,testCompileClasspath,testCompileProtoPath,testRuntimeClasspath com.google.auto.service:auto-service-annotations:1.0.1=annotationProcessor,errorprone,jmhAnnotationProcessor,testAnnotationProcessor com.google.auto.value:auto-value-annotations:1.9=annotationProcessor,errorprone,jmhAnnotationProcessor,testAnnotationProcessor -com.google.auto:auto-common:1.2.1=annotationProcessor,errorprone,jmhAnnotationProcessor,testAnnotationProcessor -com.google.code.findbugs:jsr305:3.0.2=annotationProcessor,compileClasspath,compileProtoPath,errorprone,jmhAnnotationProcessor,jmhCompileClasspath,jmhRuntimeClasspath,spotbugs,testAnnotationProcessor,testCompileClasspath,testCompileProtoPath,testRuntimeClasspath +com.google.auto:auto-common:1.2.2=annotationProcessor,errorprone,jmhAnnotationProcessor,testAnnotationProcessor +com.google.code.findbugs:jsr305:3.0.2=compileClasspath,compileProtoPath,jmhCompileClasspath,jmhRuntimeClasspath,spotbugs,testCompileClasspath,testCompileProtoPath,testRuntimeClasspath com.google.code.gson:gson:2.14.0=spotbugs com.google.code.gson:gson:2.8.6=jmhRuntimeClasspath,testCompileProtoPath,testRuntimeClasspath -com.google.errorprone:error_prone_annotation:2.23.0=annotationProcessor,errorprone,jmhAnnotationProcessor,testAnnotationProcessor -com.google.errorprone:error_prone_annotations:2.23.0=annotationProcessor,errorprone,jmhAnnotationProcessor,testAnnotationProcessor +com.google.errorprone:error_prone_annotation:2.50.0=annotationProcessor,errorprone,jmhAnnotationProcessor,testAnnotationProcessor com.google.errorprone:error_prone_annotations:2.48.0=spotbugs +com.google.errorprone:error_prone_annotations:2.50.0=annotationProcessor,errorprone,jmhAnnotationProcessor,testAnnotationProcessor com.google.errorprone:error_prone_annotations:2.9.0=jmhRuntimeClasspath,testCompileProtoPath,testRuntimeClasspath -com.google.errorprone:error_prone_check_api:2.23.0=annotationProcessor,errorprone,jmhAnnotationProcessor,testAnnotationProcessor -com.google.errorprone:error_prone_core:2.23.0=annotationProcessor,errorprone,jmhAnnotationProcessor,testAnnotationProcessor -com.google.errorprone:error_prone_type_annotations:2.23.0=annotationProcessor,errorprone,jmhAnnotationProcessor,testAnnotationProcessor +com.google.errorprone:error_prone_check_api:2.50.0=annotationProcessor,errorprone,jmhAnnotationProcessor,testAnnotationProcessor +com.google.errorprone:error_prone_core:2.50.0=annotationProcessor,errorprone,jmhAnnotationProcessor,testAnnotationProcessor com.google.errorprone:javac:9+181-r4173-1=errorproneJavac -com.google.guava:failureaccess:1.0.1=annotationProcessor,errorprone,jmhAnnotationProcessor,jmhRuntimeClasspath,testAnnotationProcessor,testCompileProtoPath,testRuntimeClasspath -com.google.guava:guava-parent:32.1.1-jre=annotationProcessor,errorprone,jmhAnnotationProcessor,testAnnotationProcessor +com.google.googlejavaformat:google-java-format:1.35.0=annotationProcessor,errorprone,jmhAnnotationProcessor,testAnnotationProcessor +com.google.guava:failureaccess:1.0.1=jmhRuntimeClasspath,testCompileProtoPath,testRuntimeClasspath +com.google.guava:failureaccess:1.0.3=annotationProcessor,errorprone,jmhAnnotationProcessor,testAnnotationProcessor com.google.guava:guava:30.1.1-android=jmhRuntimeClasspath,testCompileProtoPath,testRuntimeClasspath -com.google.guava:guava:32.1.1-jre=annotationProcessor,errorprone,jmhAnnotationProcessor,testAnnotationProcessor -com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava=jmhRuntimeClasspath,testCompileProtoPath,testRuntimeClasspath -com.google.inject:guice:5.1.0=annotationProcessor,errorprone,jmhAnnotationProcessor,testAnnotationProcessor +com.google.guava:guava:33.5.0-jre=annotationProcessor,errorprone,jmhAnnotationProcessor,testAnnotationProcessor +com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava=annotationProcessor,errorprone,jmhAnnotationProcessor,jmhRuntimeClasspath,testAnnotationProcessor,testCompileProtoPath,testRuntimeClasspath com.google.j2objc:j2objc-annotations:1.3=jmhRuntimeClasspath,testCompileProtoPath,testRuntimeClasspath +com.google.j2objc:j2objc-annotations:3.1=annotationProcessor,errorprone,jmhAnnotationProcessor,testAnnotationProcessor com.google.protobuf:protobuf-java:3.18.2=jmhRuntimeClasspath,testCompileClasspath,testCompileProtoPath,testRuntimeClasspath -com.google.protobuf:protobuf-java:3.19.6=annotationProcessor,errorprone,jmhAnnotationProcessor,testAnnotationProcessor +com.google.protobuf:protobuf-java:4.33.2=annotationProcessor,errorprone,jmhAnnotationProcessor,testAnnotationProcessor com.google.protobuf:protoc:3.17.3=protobufToolsLocator_protoc com.google.re2j:re2j:1.8=compileClasspath,compileProtoPath,jmh,jmhCompileClasspath,jmhCompileProtoPath,jmhRuntimeClasspath,runtimeClasspath,testCompileClasspath,testCompileProtoPath,testRuntimeClasspath com.squareup.moshi:moshi:1.11.0=compileClasspath,compileProtoPath,jmh,jmhCompileClasspath,jmhCompileProtoPath,jmhRuntimeClasspath,runtimeClasspath,testCompileClasspath,testCompileProtoPath,testRuntimeClasspath com.squareup.okio:okio:1.17.5=compileClasspath,compileProtoPath,jmh,jmhCompileClasspath,jmhCompileProtoPath,jmhRuntimeClasspath,runtimeClasspath,testCompileClasspath,testCompileProtoPath,testRuntimeClasspath com.thoughtworks.qdox:qdox:1.12.1=codenarc -com.uber.nullaway:nullaway:0.10.15=annotationProcessor,errorprone,jmhAnnotationProcessor,testAnnotationProcessor +com.uber.nullaway:nullaway:0.14.2=annotationProcessor,errorprone,jmhAnnotationProcessor,testAnnotationProcessor com.vaadin.external.google:android-json:0.0.20131108.vaadin1=jmhRuntimeClasspath,testCompileClasspath,testCompileProtoPath,testRuntimeClasspath commons-fileupload:commons-fileupload:1.5=jmh,jmhCompileClasspath,jmhCompileProtoPath,jmhRuntimeClasspath,testCompileClasspath,testCompileProtoPath,testRuntimeClasspath commons-io:commons-io:2.11.0=jmh,jmhCompileClasspath,jmhCompileProtoPath,jmhRuntimeClasspath,testCompileClasspath,testCompileProtoPath,testRuntimeClasspath commons-io:commons-io:2.21.0=spotbugs de.thetaphi:forbiddenapis:3.10=compileClasspath,compileProtoPath,jmh,jmhCompileClasspath,jmhCompileProtoPath,jmhRuntimeClasspath,testCompileClasspath,testCompileProtoPath,testRuntimeClasspath -io.github.eisop:dataflow-errorprone:3.34.0-eisop1=annotationProcessor,errorprone,jmhAnnotationProcessor,testAnnotationProcessor +io.github.eisop:dataflow-errorprone:3.41.0-eisop1=annotationProcessor,errorprone,jmhAnnotationProcessor,testAnnotationProcessor io.github.java-diff-utils:java-diff-utils:4.12=annotationProcessor,errorprone,jmhAnnotationProcessor,testAnnotationProcessor io.grpc:grpc-api:1.42.2=jmhRuntimeClasspath,testCompileClasspath,testCompileProtoPath,testRuntimeClasspath io.grpc:grpc-context:1.42.2=jmhRuntimeClasspath,testCompileClasspath,testCompileProtoPath,testRuntimeClasspath @@ -97,8 +96,8 @@ org.apache.logging.log4j:log4j-api:2.26.1=spotbugs org.apache.logging.log4j:log4j-core:2.26.1=spotbugs org.apiguardian:apiguardian-api:1.1.2=testCompileClasspath org.checkerframework:checker-compat-qual:2.5.5=jmhRuntimeClasspath,testCompileProtoPath,testRuntimeClasspath -org.checkerframework:checker-qual:3.33.0=annotationProcessor,errorprone,jmhAnnotationProcessor,testAnnotationProcessor -org.checkerframework:dataflow-nullaway:3.39.0=annotationProcessor,errorprone,jmhAnnotationProcessor,testAnnotationProcessor +org.checkerframework:checker-qual:4.2.3=annotationProcessor,errorprone,jmhAnnotationProcessor,testAnnotationProcessor +org.checkerframework:dataflow-nullaway:4.2.3=annotationProcessor,errorprone,jmhAnnotationProcessor,testAnnotationProcessor org.codehaus.groovy:groovy-ant:3.0.23=codenarc org.codehaus.groovy:groovy-docgenerator:3.0.23=codenarc org.codehaus.groovy:groovy-groovydoc:3.0.23=codenarc @@ -121,6 +120,7 @@ org.jacoco:org.jacoco.report:0.8.15=jacocoAnt org.jctools:jctools-core-jdk11:4.0.6=jmh,jmhCompileProtoPath,jmhRuntimeClasspath org.jctools:jctools-core:4.0.6=jmh,jmhCompileProtoPath,jmhRuntimeClasspath org.jetbrains:annotations:24.0.0=compileClasspath,compileProtoPath,jmhCompileClasspath +org.jspecify:jspecify:1.0.1=annotationProcessor,errorprone,jmhAnnotationProcessor,testAnnotationProcessor org.junit.jupiter:junit-jupiter-api:5.14.1=jmhRuntimeClasspath,testCompileClasspath,testCompileProtoPath,testRuntimeClasspath org.junit.jupiter:junit-jupiter-engine:5.14.1=jmhRuntimeClasspath,testCompileProtoPath,testRuntimeClasspath org.junit.jupiter:junit-jupiter-params:5.14.1=jmhRuntimeClasspath,testCompileClasspath,testCompileProtoPath,testRuntimeClasspath @@ -146,7 +146,7 @@ org.ow2.asm:asm-tree:9.7.1=jmh,jmhCompileProtoPath org.ow2.asm:asm-util:9.10.1=spotbugs org.ow2.asm:asm-util:9.7.1=jmh,jmhCompileProtoPath,jmhRuntimeClasspath org.ow2.asm:asm:9.10.1=compileClasspath,compileProtoPath,jacocoAnt,jmh,jmhCompileClasspath,jmhCompileProtoPath,jmhRuntimeClasspath,runtimeClasspath,spotbugs,testCompileClasspath,testCompileProtoPath,testRuntimeClasspath -org.pcollections:pcollections:3.1.4=annotationProcessor,errorprone,jmhAnnotationProcessor,testAnnotationProcessor +org.pcollections:pcollections:4.0.1=annotationProcessor,errorprone,jmhAnnotationProcessor,testAnnotationProcessor org.skyscreamer:jsonassert:1.5.1=jmhRuntimeClasspath,testCompileClasspath,testCompileProtoPath,testRuntimeClasspath org.slf4j:jcl-over-slf4j:1.7.30=jmhRuntimeClasspath,testCompileClasspath,testCompileProtoPath,testRuntimeClasspath org.slf4j:jul-to-slf4j:1.7.30=jmhRuntimeClasspath,testCompileClasspath,testCompileProtoPath,testRuntimeClasspath diff --git a/dd-java-agent/agent-iast/src/main/java/com/datadog/iast/util/Iterators.java b/dd-java-agent/agent-iast/src/main/java/com/datadog/iast/util/Iterators.java index 779fb607ac0..f7fcf595a16 100644 --- a/dd-java-agent/agent-iast/src/main/java/com/datadog/iast/util/Iterators.java +++ b/dd-java-agent/agent-iast/src/main/java/com/datadog/iast/util/Iterators.java @@ -34,12 +34,14 @@ public static Iterator of(@Nonnull final E head, @Nullable final E[] tail @SuppressWarnings("unchecked") @Nonnull - public static Iterator of(@Nullable final E... items) { + public static Iterator of( + final @org.jetbrains.annotations.Nullable E @org.jetbrains.annotations.Nullable ... items) { return items == null || items.length == 0 ? empty() : new ArrayIterator<>(items); } @Nonnull - public static Iterator join(@Nullable final Iterator... iterators) { + public static Iterator join( + final Iterator @org.jetbrains.annotations.Nullable ... iterators) { return iterators == null || iterators.length == 0 ? empty() : new JoinIterator(iterators); }