Skip to content

Commit 3ffa95f

Browse files
authored
Remove pom deps after iteration. (#1563)
Removing them during iteration mutates the node list making us skip the dep immediately following the removed dep.
1 parent 3e14a1f commit 3ffa95f

File tree

1 file changed

+6
-1
lines changed
  • buildSrc/src/main/java/com/google/firebase/gradle/plugins/publish

1 file changed

+6
-1
lines changed

buildSrc/src/main/java/com/google/firebase/gradle/plugins/publish/Publisher.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -93,15 +93,17 @@ private static void processDependencies(FirebaseLibraryExtension library, Elemen
9393
Map<String, String> deps = getDependencyTypes(library.project);
9494

9595
NodeList dependencies = rootElement.getElementsByTagName("dependency");
96+
List<Element> depsToRemove = new ArrayList<>();
9697
for (int i = 0; i < dependencies.getLength(); i++) {
9798
Element dep = (Element) dependencies.item(i);
9899
String groupId = dep.getElementsByTagName("groupId").item(0).getTextContent();
99100
String artifactId = dep.getElementsByTagName("artifactId").item(0).getTextContent();
100101

101102
if (SUPPORT_GROUP_IDS.contains(groupId) && "multidex".equals(artifactId)) {
102-
dep.getParentNode().removeChild(dep);
103+
depsToRemove.add(dep);
103104
continue;
104105
}
106+
105107
Element type = dep.getOwnerDocument().createElement("type");
106108
type.setTextContent(deps.get(groupId + ":" + artifactId));
107109
dep.appendChild(type);
@@ -114,6 +116,9 @@ private static void processDependencies(FirebaseLibraryExtension library, Elemen
114116
scope.setTextContent("compile");
115117
dep.appendChild(scope);
116118
}
119+
for (Element dep : depsToRemove) {
120+
dep.getParentNode().removeChild(dep);
121+
}
117122
}
118123

119124
private static String renderVersion(String baseVersion, Mode mode) {

0 commit comments

Comments
 (0)