Include the srcjar (if there is one) in the _validation output group so blaze will check whether the srcjar file actually exists.

RELNOTES: If a java_import target's srcjar attribute refers to a source file, the file should exist.
PiperOrigin-RevId: 822801332
Change-Id: Ie5b364aa873a07b4cda6d528f1a1d69bdb5b9089
diff --git a/java/common/rules/impl/bazel_java_import_impl.bzl b/java/common/rules/impl/bazel_java_import_impl.bzl
index ce338cb..7ca9cf7 100644
--- a/java/common/rules/impl/bazel_java_import_impl.bzl
+++ b/java/common/rules/impl/bazel_java_import_impl.bzl
@@ -190,11 +190,18 @@
     )
 
     output_group_src_jars = depset() if srcjar == None else depset([srcjar])
+
+    validation_group = []
+    if jdeps_artifact != None:
+        validation_group.append(jdeps_artifact)
+    if srcjar != None:
+        validation_group.append(srcjar)
+
     target["OutputGroupInfo"] = OutputGroupInfo(
         **{
             "_source_jars": output_group_src_jars,
             "_direct_source_jars": output_group_src_jars,
-            "_validation": depset() if jdeps_artifact == None else depset([jdeps_artifact]),
+            "_validation": depset(validation_group),
             "_hidden_top_level_INTERNAL_": target["ProguardSpecProvider"].specs,
         }
     )
diff --git a/test/java/common/rules/java_import_tests.bzl b/test/java/common/rules/java_import_tests.bzl
index e949e17..37941ef 100644
--- a/test/java/common/rules/java_import_tests.bzl
+++ b/test/java/common/rules/java_import_tests.bzl
@@ -293,6 +293,33 @@
         "{package}/library.srcjar",
     ])
 
+def _test_srcjar_added_to_validation_output_group(name):
+    util.helper_target(
+        java_import,
+        name = name + "/libraryjar_with_srcjar",
+        jars = ["import.jar"],
+        srcjar = "library.srcjar",
+    )
+
+    analysis_test(
+        name = name,
+        impl = _test_srcjar_added_to_validation_output_group_impl,
+        target = name + "/libraryjar_with_srcjar",
+        # Starlark rules are only used with Bazel 8 onwards.
+        attr_values = {"tags": ["min_bazel_8"]},
+    )
+
+def _test_srcjar_added_to_validation_output_group_impl(env, target):
+    assert_java_info = java_info_subject.from_target(env, target)
+    assert_java_info.outputs().source_output_jars().contains_exactly([
+        "{package}/library.srcjar",
+    ])
+
+    # Check that the srcjar is in the _validation output group.
+    env.expect.that_target(target).output_group("_validation").contains_at_least([
+        "{package}/library.srcjar",
+    ])
+
 def _test_from_genrule(name):
     target_name = name + "/library-jar"
     util.helper_target(
@@ -933,6 +960,7 @@
             _test_java_library_allows_import_in_deps,
             _test_module_flags,
             _test_src_jars,
+            _test_srcjar_added_to_validation_output_group,
             _test_from_genrule,
             _test_transitive_dependencies,
             _test_exposes_java_provider,