Skip to content

Commit 2e13ecf

Browse files
committed
dev
1 parent 7a2b6ee commit 2e13ecf

File tree

2 files changed

+32
-1
lines changed

2 files changed

+32
-1
lines changed

src/main/java/rx/internal/operators/OperatorToMap.java

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -152,4 +152,35 @@ public void onCompleted() {
152152
}
153153
};
154154
}
155+
156+
static final class ToMapSubscriber<T, K, V> extends DeferredScalarSubscriberSafe<T, Map<K,V>> {
157+
158+
private final Func1<? super T, ? extends K> keySelector;
159+
private final Func1<? super T, ? extends V> valueSelector;
160+
161+
ToMapSubscriber(Subscriber<? super Map<K,V>> actual, Map<K,V> initialValue, Func1<? super T, ? extends K> keySelector,
162+
Func1<? super T, ? extends V> valueSelector) {
163+
super(actual);
164+
this.value = initialValue;
165+
this.hasValue = true;
166+
this.keySelector = keySelector;
167+
this.valueSelector = valueSelector;
168+
}
169+
170+
@Override
171+
public void onNext(T t) {
172+
if (done) {
173+
return;
174+
}
175+
try {
176+
K key = keySelector.call(t);
177+
V val = valueSelector.call(t);
178+
value.put(key, val);
179+
} catch (Throwable ex) {
180+
Exceptions.throwIfFatal(ex);
181+
unsubscribe();
182+
onError(ex);
183+
}
184+
}
185+
}
155186
}

src/test/java/rx/internal/operators/OperatorToMapTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -369,7 +369,7 @@ public Integer call(Integer t) {
369369
assertEquals(Arrays.asList(e2), list);
370370
ts.assertNotCompleted();
371371
} finally {
372-
RxJavaHooks.setOnError(null);
372+
RxJavaHooks.reset();
373373
}
374374
}
375375

0 commit comments

Comments
 (0)