Don't update the action locality for actions with a null owner

--
PiperOrigin-RevId: 149418372
MOS_MIGRATED_REVID=149418372
diff --git a/src/main/java/com/google/devtools/build/lib/actions/ActionStatusMessage.java b/src/main/java/com/google/devtools/build/lib/actions/ActionStatusMessage.java
index a457801..f9a2654 100644
--- a/src/main/java/com/google/devtools/build/lib/actions/ActionStatusMessage.java
+++ b/src/main/java/com/google/devtools/build/lib/actions/ActionStatusMessage.java
@@ -14,6 +14,8 @@
 
 package com.google.devtools.build.lib.actions;
 
+import com.google.common.base.Preconditions;
+
 /**
  * A message used to update in-flight action status. An action's status may change low down in the
  * execution stack (for instance, from running remotely to running locally), so this message can be
@@ -48,22 +50,26 @@
 
   /** Creates "Analyzing" status message. */
   public static ActionStatusMessage analysisStrategy(ActionExecutionMetadata action) {
+    Preconditions.checkNotNull(action.getOwner());
     return new ActionStatusMessage(action, "Analyzing", null);
   }
 
   /** Creates "Preparing" status message. */
   public static ActionStatusMessage preparingStrategy(ActionExecutionMetadata action) {
+    Preconditions.checkNotNull(action.getOwner());
     return new ActionStatusMessage(action, PREPARING, null);
   }
 
   /** Creates "Scheduling" status message. */
   public static ActionStatusMessage schedulingStrategy(ActionExecutionMetadata action) {
+    Preconditions.checkNotNull(action.getOwner());
     return new ActionStatusMessage(action, "Scheduling", null);
   }
 
   /** Creates "Running (strategy)" status message. */
   public static ActionStatusMessage runningStrategy(
       ActionExecutionMetadata action, String strategy) {
+    Preconditions.checkNotNull(action.getOwner());
     return new ActionStatusMessage(action, String.format("Running (%s)", strategy), strategy);
   }
 }
diff --git a/src/test/java/com/google/devtools/build/lib/actions/ActionExecutionStatusReporterTest.java b/src/test/java/com/google/devtools/build/lib/actions/ActionExecutionStatusReporterTest.java
index 0f01e91..6a67892 100644
--- a/src/test/java/com/google/devtools/build/lib/actions/ActionExecutionStatusReporterTest.java
+++ b/src/test/java/com/google/devtools/build/lib/actions/ActionExecutionStatusReporterTest.java
@@ -21,6 +21,7 @@
 import com.google.common.collect.ImmutableList;
 import com.google.common.collect.Iterables;
 import com.google.common.eventbus.EventBus;
+import com.google.devtools.build.lib.actions.util.ActionsTestUtil;
 import com.google.devtools.build.lib.events.EventKind;
 import com.google.devtools.build.lib.events.util.EventCollectionApparatus;
 import com.google.devtools.build.lib.util.Clock;
@@ -72,6 +73,7 @@
 
   private Action mockAction(String progressMessage) {
     Action action = Mockito.mock(Action.class);
+    when(action.getOwner()).thenReturn(ActionsTestUtil.NULL_ACTION_OWNER);
     when(action.getProgressMessage()).thenReturn(progressMessage);
     if (progressMessage == null) {
       when(action.prettyPrint()).thenReturn("default message");
diff --git a/src/test/java/com/google/devtools/build/lib/runtime/ExperimentalStateTrackerTest.java b/src/test/java/com/google/devtools/build/lib/runtime/ExperimentalStateTrackerTest.java
index 954710e..5954f43 100644
--- a/src/test/java/com/google/devtools/build/lib/runtime/ExperimentalStateTrackerTest.java
+++ b/src/test/java/com/google/devtools/build/lib/runtime/ExperimentalStateTrackerTest.java
@@ -425,6 +425,7 @@
     Path path = outputBase.getRelative(new PathFragment(primaryOutput));
     Artifact artifact = new Artifact(path, Root.asSourceRoot(path));
     ActionExecutionMetadata actionMetadata = Mockito.mock(ActionExecutionMetadata.class);
+    when(actionMetadata.getOwner()).thenReturn(Mockito.mock(ActionOwner.class));
     when(actionMetadata.getPrimaryOutput()).thenReturn(artifact);
 
     ExperimentalStateTracker stateTracker = new ExperimentalStateTracker(clock);