Don't drop middle zero components in DottedVersions parsed from strings.

RELNOTES: None.
PiperOrigin-RevId: 245067134
diff --git a/src/main/java/com/google/devtools/build/lib/rules/apple/DottedVersion.java b/src/main/java/com/google/devtools/build/lib/rules/apple/DottedVersion.java
index aa7689c..b4cc5ff 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/apple/DottedVersion.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/apple/DottedVersion.java
@@ -145,10 +145,13 @@
 
     int numOriginalComponents = components.size();
 
-    // Remove trailing (but not the first) zero components for easier comparison and hashcoding.
+    // Remove trailing (but not the first or middle) zero components for easier comparison and
+    // hashcoding.
     for (int i = components.size() - 1; i > 0; i--) {
       if (components.get(i).equals(ZERO_COMPONENT)) {
         components.remove(i);
+      } else {
+        break;
       }
     }
 
diff --git a/src/test/java/com/google/devtools/build/lib/rules/apple/DottedVersionTest.java b/src/test/java/com/google/devtools/build/lib/rules/apple/DottedVersionTest.java
index 4dca484..4be08ce 100644
--- a/src/test/java/com/google/devtools/build/lib/rules/apple/DottedVersionTest.java
+++ b/src/test/java/com/google/devtools/build/lib/rules/apple/DottedVersionTest.java
@@ -42,6 +42,9 @@
         .addEqualityGroup(DottedVersion.fromString("1.2beta12.1"))
         .addEqualityGroup(DottedVersion.fromString("1.2.0"), DottedVersion.fromString("1.2"))
         .addEqualityGroup(DottedVersion.fromString("1.20"))
+        .addEqualityGroup(DottedVersion.fromString("10"), DottedVersion.fromString("10.0"))
+        .addEqualityGroup(DottedVersion.fromString("10.0.0.10A255"))
+        .addEqualityGroup(DottedVersion.fromString("10.2"))
         .addEqualityGroup(DottedVersion.fromString("10.2.0.10P99q"))
         .testCompare();
   }