Automated rollback of commit c4e128e2c6d8cacaeba034d6a3195796d50f1745.

Always generating source jars can lead to action conflicts.

RELNOTES: None
PiperOrigin-RevId: 198994272
diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaInfoBuildHelper.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaInfoBuildHelper.java
index 0037212..e5c2cde 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaInfoBuildHelper.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/java/JavaInfoBuildHelper.java
@@ -483,7 +483,13 @@
 
     JavaRuleOutputJarsProvider.Builder outputJarsBuilder = JavaRuleOutputJarsProvider.builder();
 
-    Artifact outputSourceJar = getSourceJar(skylarkRuleContext.getRuleContext(), outputJar);
+    boolean generateMergedSourceJar =
+        (sourceJars.size() > 1 || !sourceFiles.isEmpty())
+            || (sourceJars.isEmpty() && sourceFiles.isEmpty() && !exports.isEmpty());
+    Artifact outputSourceJar =
+        generateMergedSourceJar
+            ? getSourceJar(skylarkRuleContext.getRuleContext(), outputJar)
+            : sourceJars.get(0);
 
     JavaInfo.Builder javaInfoBuilder = JavaInfo.Builder.create();
     JavaCompilationArtifacts artifacts =
@@ -493,7 +499,7 @@
             javaRuntimeInfo,
             SkylarkList.createImmutable(ImmutableList.of()),
             outputJarsBuilder,
-            /*createOutputSourceJar=*/ true,
+            /*createOutputSourceJar*/ generateMergedSourceJar,
             outputSourceJar,
             javaInfoBuilder);
 
diff --git a/src/test/java/com/google/devtools/build/lib/rules/java/JavaSkylarkApiTest.java b/src/test/java/com/google/devtools/build/lib/rules/java/JavaSkylarkApiTest.java
index 2220aa7..6a28c8c 100644
--- a/src/test/java/com/google/devtools/build/lib/rules/java/JavaSkylarkApiTest.java
+++ b/src/test/java/com/google/devtools/build/lib/rules/java/JavaSkylarkApiTest.java
@@ -546,12 +546,12 @@
     ConfiguredTarget configuredTarget = getConfiguredTarget("//java/test:custom");
     JavaInfo info = configuredTarget.get(JavaInfo.PROVIDER);
     SkylarkList<Artifact> sourceJars = info.getSourceJars();
-    assertThat(artifactFilesNames(sourceJars)).containsExactly("libcustom-src.jar");
+    assertThat(artifactFilesNames(sourceJars)).containsExactly("myjar-src.jar");
     JavaRuleOutputJarsProvider outputJars = info.getOutputJars();
     assertThat(outputJars.getOutputJars()).hasSize(1);
     OutputJar outputJar = outputJars.getOutputJars().get(0);
     assertThat((outputJar.getClassJar().getFilename())).isEqualTo("libcustom.jar");
-    assertThat((outputJar.getSrcJar().getFilename())).isEqualTo("libcustom-src.jar");
+    assertThat((outputJar.getSrcJar().getFilename())).isEqualTo("myjar-src.jar");
     assertThat((outputJar.getIJar().getFilename())).isEqualTo("libcustom-hjar.jar");
     assertThat(outputJars.getJdeps().getFilename()).isEqualTo("libcustom.jdeps");
   }
diff --git a/src/test/java/com/google/devtools/build/lib/rules/java/proto/SkylarkJavaLiteProtoLibraryTest.java b/src/test/java/com/google/devtools/build/lib/rules/java/proto/SkylarkJavaLiteProtoLibraryTest.java
index 4ad570e..7d8f1fa 100644
--- a/src/test/java/com/google/devtools/build/lib/rules/java/proto/SkylarkJavaLiteProtoLibraryTest.java
+++ b/src/test/java/com/google/devtools/build/lib/rules/java/proto/SkylarkJavaLiteProtoLibraryTest.java
@@ -308,7 +308,7 @@
     JavaSourceJarsProvider sourceJarsProvider = getProvider(JavaSourceJarsProvider.class, rule);
     assertThat(sourceJarsProvider).isNotNull();
     assertThat(prettyArtifactNames(sourceJarsProvider.getSourceJars()))
-        .containsExactly("x/libproto_lib-lite-src.jar");
+        .containsExactly("x/proto_lib-lite-src.jar");
 
     ImmutableListMultimap<String, Artifact> runtimeJars =
         Multimaps.index(compilationArgs.getRuntimeJars(), ROOT_RELATIVE_PATH_STRING);
@@ -458,7 +458,7 @@
           getProvider(JavaSourceJarsProvider.class, getConfiguredTarget("//x:foo_lite_pb2"));
       assertThat(sourceJarsProvider).isNotNull();
       assertThat(prettyArtifactNames(sourceJarsProvider.getSourceJars()))
-          .containsExactly("x/libfoo-lite-src.jar");
+          .containsExactly("x/foo-lite-src.jar");
     }
 
     {
@@ -474,7 +474,7 @@
           getProvider(JavaSourceJarsProvider.class, getConfiguredTarget("//x:bar_lite_pb2"));
       assertThat(sourceJarsProvider).isNotNull();
       assertThat(prettyArtifactNames(sourceJarsProvider.getSourceJars()))
-          .containsExactly("x/libbar-lite-src.jar");
+          .containsExactly("x/bar-lite-src.jar");
     }
   }