Avoid NPE in multi transformation getId().
diff --git a/library/src/main/java/com/bumptech/glide/load/MultiTransformation.java b/library/src/main/java/com/bumptech/glide/load/MultiTransformation.java
index 9f5ed65..9e3a359 100644
--- a/library/src/main/java/com/bumptech/glide/load/MultiTransformation.java
+++ b/library/src/main/java/com/bumptech/glide/load/MultiTransformation.java
@@ -10,6 +10,7 @@
public class MultiTransformation<T> implements Transformation<T> {
private Transformation<T>[] transformations;
private List<Transformation<T>> transformationList;
+ private String id;
public MultiTransformation(Transformation<T>... transformations) {
if (transformations.length < 1) {
@@ -53,10 +54,19 @@
@Override
public String getId() {
- StringBuilder sb = new StringBuilder();
- for (Transformation transformation : transformations) {
- sb.append(transformation.getId());
+ if (id == null) {
+ StringBuilder sb = new StringBuilder();
+ if (transformations != null) {
+ for (Transformation transformation : transformations) {
+ sb.append(transformation.getId());
+ }
+ } else {
+ for (Transformation transformation : transformationList) {
+ sb.append(transformation.getId());
+ }
+ }
+ id = sb.toString();
}
- return sb.toString();
+ return id;
}
}
diff --git a/library/src/test/java/com/bumptech/glide/load/MultiTransformationTest.java b/library/src/test/java/com/bumptech/glide/load/MultiTransformationTest.java
index b25fd11..55b4e66 100644
--- a/library/src/test/java/com/bumptech/glide/load/MultiTransformationTest.java
+++ b/library/src/test/java/com/bumptech/glide/load/MultiTransformationTest.java
@@ -3,6 +3,8 @@
import com.bumptech.glide.Resource;
import org.junit.Test;
+import java.util.ArrayList;
+
import static junit.framework.Assert.assertEquals;
import static org.mockito.Matchers.any;
import static org.mockito.Matchers.anyInt;
@@ -27,7 +29,17 @@
MultiTransformation transformation = new MultiTransformation(first, second, third);
- assertEquals(firstId + secondId + thirdId, transformation.getId());
+ final String expected = firstId + secondId + thirdId;
+ assertEquals(expected, transformation.getId());
+
+ ArrayList<Transformation> transformations = new ArrayList<Transformation>();
+ transformations.add(first);
+ transformations.add(second);
+ transformations.add(third);
+
+ transformation = new MultiTransformation(transformations);
+
+ assertEquals(expected, transformation.getId());
}
@Test