Throw a checked `ActionTransformException` when `transformForSharedAction` is called with an action with different outputs.

PiperOrigin-RevId: 465561877
Change-Id: Iaf7077ab0425f7f811cbb5c0cf02d3b52965d6b8
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/ActionExecutionState.java b/src/main/java/com/google/devtools/build/lib/skyframe/ActionExecutionState.java
index d459173..fa51941 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/ActionExecutionState.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/ActionExecutionState.java
@@ -23,6 +23,7 @@
 import com.google.devtools.build.lib.actions.Artifact.OwnerlessArtifactWrapper;
 import com.google.devtools.build.lib.actions.LostInputsActionExecutionException;
 import com.google.devtools.build.lib.bugreport.BugReport;
+import com.google.devtools.build.lib.skyframe.ActionExecutionValue.ActionTransformException;
 import com.google.devtools.build.skyframe.SkyFunction;
 import com.google.devtools.build.skyframe.SkyFunction.Environment;
 import com.google.errorprone.annotations.DoNotCall;
@@ -125,7 +126,12 @@
       result = state.get();
     }
     sharedActionCallback.actionCompleted();
-    return result.transformForSharedAction(action);
+    try {
+      return result.transformForSharedAction(action);
+    } catch (ActionTransformException e) {
+      throw new IllegalStateException(
+          String.format("Cannot share %s and %s", this.actionLookupData, actionLookupData), e);
+    }
   }
 
   private static void scheduleRestart(Environment env) {