简体   繁体   中英

Requery for Android, StackOverflow on select

I'm using Requery to persist data on my Android app.

This is the code that creates the exception.

@Override
public Observable<Zone> retrieve(long id) {
    return db().select(Zone.class)
               .where(Zone.ID.eq(id))
               .get()
               .toSelfObservable()
               .map(Result::firstOrNull)
               .filter(park -> park != null)
               .flatMap(this::fillTariffs)
               .flatMap(this::fillFreeDays)
               .flatMap(this::fillWeekDays)
               .doOnNext(park -> Logs.model("Loaded: " + park));
}

private Observable<Tariff> fillSubscriptions(Tariff tariff) {
    return db().select(Subscription.class)
               .where(Subscription.TARIFF_ID.eq(tariff.getId()))
               .get()
               .toSelfObservable()
               .first()
               .map(Result::toList)
               .map(subscriptions -> {
                   tariff.getSubscriptions()
                         .clear();
                   tariff.getSubscriptions()
                         .addAll(subscriptions);
                   return tariff;
               });
}


private Observable<Zone> fillFreeDays(Zone zone) {
    return db().select(FreeDay.class)
               .where(FreeDay.ZONE_ID.eq(zone.getId()))
               .get()
               .toSelfObservable()
               .first()
               .map(Result::toList)
               .map(freeDays -> {
                   zone.getFreeDays()
                       .clear();
                   zone.getFreeDays()
                       .addAll(freeDays);
                   return zone;
               });
}

private Observable<Zone> fillWeekDays(Zone zone) {
    return db().select(WeekDay.class)
               .where(WeekDay.ZONE_ID.eq(zone.getId()))
               .get()
               .toSelfObservable()
               .first()
               .map(Result::toList)
               .flatMap(tariffs -> Observable.from(tariffs)
                                             .flatMap(this::fillTimeSlots)
                                             .toList())
               .map(weekDays -> {
                   zone.getWeekDays()
                       .clear();
                   zone.getWeekDays()
                       .addAll(weekDays);
                   return zone;
               });
}

private Observable<WeekDay> fillTimeSlots(WeekDay weekDay) {
    return db().select(TimeSlot.class)
               .where(TimeSlot.WEEK_DAY_ID.eq(weekDay.getKey()))
               .get()
               .toSelfObservable()
               .first()
               .map(Result::toList)
               .map(slots -> {
                   weekDay.getSlots()
                          .clear();
                   weekDay.getSlots()
                          .addAll(slots);
                   return weekDay;
               });
}

private Observable<Zone> fillTariffs(Zone zone) {
    return db().select(Tariff.class)
               .where(Tariff.ZONE_ID.eq(zone.getId()))
               .get()
               .toSelfObservable()
               .first()
               .map(Result::toList)
               .flatMap(tariffs -> Observable.from(tariffs)
                                             .flatMap(this::fillRates)
                                             .flatMap(this::fillSubscriptions)
                                             .toList())
               .map(tariffs -> {
                   zone.getTariffs()
                       .clear();
                   zone.getTariffs()
                       .addAll(tariffs);
                   return zone;
               });
}

private Observable<Tariff> fillRates(Tariff tariff) {
    return db().select(Rate.class)
               .where(Rate.TARIFF_ID.eq(tariff.getId()))
               .get()
               .toSelfObservable()
               .first()
               .map(Result::toList)
               .map(rates -> {
                   tariff.getRates()
                         .clear();
                   tariff.getRates()
                         .addAll(rates);
                   return tariff;
               });
}

This is the exception I get from Fabric:

Caused by java.lang.StackOverflowError
java.lang.String.toLowerCase (String.java:1513)
io.requery.sql.QueryBuilder.keyword (QueryBuilder.java:102)
io.requery.sql.gen.SelectGenerator.write (SelectGenerator.java:34)
io.requery.sql.gen.SelectGenerator.write (SelectGenerator.java:29)
io.requery.sql.gen.StatementGenerator.write (StatementGenerator.java:70)
io.requery.sql.gen.DefaultOutput.toSql (DefaultOutput.java:94)
io.requery.sql.SelectResult.createQuery (SelectResult.java:97)
io.requery.sql.SelectResult.iterator (SelectResult.java:105)
io.requery.query.BaseResult.iterator (BaseResult.java:122)
io.requery.query.BaseResult.collect (BaseResult.java:76)
io.requery.query.BaseResult.toList (BaseResult.java:70)
eu.elios.smartpark.mvp.repository.RequeryZoneRepository$$Lambda$13.call (Unknown Source)
rx.internal.operators.OnSubscribeMap$MapSubscriber.onNext (OnSubscribeMap.java:69)
rx.internal.producers.SingleProducer.request (SingleProducer.java:65)
rx.Subscriber.setProducer (Subscriber.java:211)
rx.internal.operators.OnSubscribeMap$MapSubscriber.setProducer (OnSubscribeMap.java:102)
rx.internal.operators.OnSubscribeMap$MapSubscriber.setProducer (OnSubscribeMap.java:102)
rx.internal.operators.OperatorSingle$ParentSubscriber.onCompleted (OperatorSingle.java:110)
rx.internal.operators.OperatorTake$1.onNext (OperatorTake.java:80)
rx.observers.SerializedObserver.onNext (SerializedObserver.java:92)
rx.observers.SerializedSubscriber.onNext (SerializedSubscriber.java:94)
rx.internal.operators.OnSubscribeConcatMap$ConcatMapSubscriber.innerNext (OnSubscribeConcatMap.java:182)
rx.internal.operators.OnSubscribeConcatMap$ConcatMapInnerScalarProducer.request (OnSubscribeConcatMap.java:366)
rx.internal.producers.ProducerArbiter.setProducer (ProducerArbiter.java:126)
rx.internal.operators.OnSubscribeConcatMap$ConcatMapSubscriber.drain (OnSubscribeConcatMap.java:278)
rx.internal.operators.OnSubscribeConcatMap$ConcatMapSubscriber.onNext (OnSubscribeConcatMap.java:144)
rx.internal.operators.OnSubscribeFromArray$FromArrayProducer.slowPath (OnSubscribeFromArray.java:100)
rx.internal.operators.OnSubscribeFromArray$FromArrayProducer.request (OnSubscribeFromArray.java:63)
rx.Subscriber.setProducer (Subscriber.java:211)
rx.internal.operators.OnSubscribeFromArray.call (OnSubscribeFromArray.java:32)
rx.internal.operators.OnSubscribeFromArray.call (OnSubscribeFromArray.java:24)
rx.Observable.unsafeSubscribe (Observable.java:10151)
rx.internal.operators.OnSubscribeConcatMap.call (OnSubscribeConcatMap.java:94)
rx.internal.operators.OnSubscribeConcatMap.call (OnSubscribeConcatMap.java:42)
rx.internal.operators.OnSubscribeLift.call (OnSubscribeLift.java:48)
rx.internal.operators.OnSubscribeLift.call (OnSubscribeLift.java:30)
rx.internal.operators.OnSubscribeLift.call (OnSubscribeLift.java:48)
rx.internal.operators.OnSubscribeLift.call (OnSubscribeLift.java:30)
rx.Observable.unsafeSubscribe (Observable.java:10151)
rx.internal.operators.OnSubscribeMap.call (OnSubscribeMap.java:48)
rx.internal.operators.OnSubscribeMap.call (OnSubscribeMap.java:33)
rx.Observable.unsafeSubscribe (Observable.java:10151)
rx.internal.operators.OnSubscribeMap.call (OnSubscribeMap.java:48)
rx.internal.operators.OnSubscribeMap.call (OnSubscribeMap.java:33)
rx.internal.operators.OnSubscribeLift.call (OnSubscribeLift.java:48)
rx.internal.operators.OnSubscribeLift.call (OnSubscribeLift.java:30)
rx.Observable.unsafeSubscribe (Observable.java:10151)
rx.internal.operators.OnSubscribeMap.call (OnSubscribeMap.java:48)
rx.internal.operators.OnSubscribeMap.call (OnSubscribeMap.java:33)
rx.Observable.unsafeSubscribe (Observable.java:10151)
rx.internal.operators.OperatorMerge$MergeSubscriber.onNext (OperatorMerge.java:251)
rx.internal.operators.OperatorMerge$MergeSubscriber.onNext (OperatorMerge.java:148)
rx.internal.operators.OnSubscribeMap$MapSubscriber.onNext (OnSubscribeMap.java:77)
rx.internal.operators.OperatorMerge$MergeSubscriber.emitScalar (OperatorMerge.java:398)
rx.internal.operators.OperatorMerge$MergeSubscriber.tryEmit (OperatorMerge.java:358)
rx.internal.operators.OperatorMerge$InnerSubscriber.onNext (OperatorMerge.java:849)
rx.internal.operators.OnSubscribeMap$MapSubscriber.onNext (OnSubscribeMap.java:77)
rx.internal.operators.OnSubscribeMap$MapSubscriber.onNext (OnSubscribeMap.java:77)
rx.internal.producers.SingleProducer.request (SingleProducer.java:65)
rx.Subscriber.setProducer (Subscriber.java:211)
rx.internal.operators.OnSubscribeMap$MapSubscriber.setProducer (OnSubscribeMap.java:102)
rx.internal.operators.OnSubscribeMap$MapSubscriber.setProducer (OnSubscribeMap.java:102)
rx.internal.operators.OperatorSingle$ParentSubscriber.onCompleted (OperatorSingle.java:110)
rx.internal.operators.OperatorTake$1.onNext (OperatorTake.java:80)
rx.observers.SerializedObserver.onNext (SerializedObserver.java:92)
rx.observers.SerializedSubscriber.onNext (SerializedSubscriber.java:94)
rx.internal.operators.OnSubscribeConcatMap$ConcatMapSubscriber.innerNext (OnSubscribeConcatMap.java:182)
rx.internal.operators.OnSubscribeConcatMap$ConcatMapInnerScalarProducer.request (OnSubscribeConcatMap.java:366)
rx.internal.producers.ProducerArbiter.setProducer (ProducerArbiter.java:126)
rx.internal.operators.OnSubscribeConcatMap$ConcatMapSubscriber.drain (OnSubscribeConcatMap.java:278)
rx.internal.operators.OnSubscribeConcatMap$ConcatMapSubscriber.onNext (OnSubscribeConcatMap.java:144)
rx.internal.operators.OnSubscribeFromArray$FromArrayProducer.slowPath (OnSubscribeFromArray.java:100)
rx.internal.operators.OnSubscribeFromArray$FromArrayProducer.request (OnSubscribeFromArray.java:63)
rx.Subscriber.setProducer (Subscriber.java:211)
rx.internal.operators.OnSubscribeFromArray.call (OnSubscribeFromArray.java:32)
rx.internal.operators.OnSubscribeFromArray.call (OnSubscribeFromArray.java:24)
rx.Observable.unsafeSubscribe (Observable.java:10151)
rx.internal.operators.OnSubscribeConcatMap.call (OnSubscribeConcatMap.java:94)
rx.internal.operators.OnSubscribeConcatMap.call (OnSubscribeConcatMap.java:42)
rx.internal.operators.OnSubscribeLift.call (OnSubscribeLift.java:48)
rx.internal.operators.OnSubscribeLift.call (OnSubscribeLift.java:30)
rx.internal.operators.OnSubscribeLift.call (OnSubscribeLift.java:48)
rx.internal.operators.OnSubscribeLift.call (OnSubscribeLift.java:30)
rx.Observable.unsafeSubscribe (Observable.java:10151)
rx.internal.operators.OnSubscribeMap.call (OnSubscribeMap.java:48)
rx.internal.operators.OnSubscribeMap.call (OnSubscribeMap.java:33)
rx.Observable.unsafeSubscribe (Observable.java:10151)
rx.internal.operators.OnSubscribeMap.call (OnSubscribeMap.java:48)
rx.internal.operators.OnSubscribeMap.call (OnSubscribeMap.java:33)
rx.Observable.unsafeSubscribe (Observable.java:10151)
rx.internal.operators.OperatorMerge$MergeSubscriber.onNext (OperatorMerge.java:251)
rx.internal.operators.OperatorMerge$MergeSubscriber.onNext (OperatorMerge.java:148)
rx.internal.operators.OnSubscribeMap$MapSubscriber.onNext (OnSubscribeMap.java:77)
rx.internal.operators.OperatorMerge$MergeSubscriber.emitScalar (OperatorMerge.java:398)
rx.internal.operators.OperatorMerge$MergeSubscriber.tryEmit (OperatorMerge.java:358)
rx.internal.operators.OperatorMerge$InnerSubscriber.onNext (OperatorMerge.java:849)
rx.internal.operators.OnSubscribeMap$MapSubscriber.onNext (OnSubscribeMap.java:77)
rx.internal.operators.OperatorMerge$MergeSubscriber.emitScalar (OperatorMerge.java:398)
rx.internal.operators.OperatorMerge$MergeSubscriber.tryEmit (OperatorMerge.java:358)
rx.internal.operators.OperatorMerge$InnerSubscriber.onNext (OperatorMerge.java:849)
rx.internal.producers.SingleDelayedProducer.emit (SingleDelayedProducer.java:102)
rx.internal.producers.SingleDelayedProducer.setValue (SingleDelayedProducer.java:85)
rx.internal.operators.OperatorToObservableList$1.onCompleted (OperatorToObservableList.java:98)
rx.internal.operators.OperatorMerge$MergeSubscriber.emitLoop (OperatorMerge.java:659)
rx.internal.operators.OperatorMerge$MergeSubscriber.emit (OperatorMerge.java:571)
rx.internal.operators.OperatorMerge$MergeSubscriber.onCompleted (OperatorMerge.java:284)
rx.internal.operators.OnSubscribeMap$MapSubscriber.onCompleted (OnSubscribeMap.java:97)
rx.internal.operators.OperatorMerge$MergeSubscriber.emitLoop (OperatorMerge.java:659)
rx.internal.operators.OperatorMerge$MergeSubscriber.emit (OperatorMerge.java:571)
rx.internal.operators.OperatorMerge$MergeSubscriber.onCompleted (OperatorMerge.java:284)
rx.internal.operators.OnSubscribeMap$MapSubscriber.onCompleted (OnSubscribeMap.java:97)
rx.internal.operators.OnSubscribeFromIterable$IterableProducer.fastPath (OnSubscribeFromIterable.java:190)
rx.internal.operators.OnSubscribeFromIterable$IterableProducer.request (OnSubscribeFromIterable.java:86)
rx.Subscriber.setProducer (Subscriber.java:211)
rx.internal.operators.OnSubscribeMap$MapSubscriber.setProducer (OnSubscribeMap.java:102)
rx.internal.operators.OnSubscribeFromIterable.call (OnSubscribeFromIterable.java:63)
rx.internal.operators.OnSubscribeFromIterable.call (OnSubscribeFromIterable.java:34)
rx.Observable.unsafeSubscribe (Observable.java:10151)
rx.internal.operators.OnSubscribeMap.call (OnSubscribeMap.java:48)
rx.internal.operators.OnSubscribeMap.call (OnSubscribeMap.java:33)
rx.internal.operators.OnSubscribeLift.call (OnSubscribeLift.java:48)
rx.internal.operators.OnSubscribeLift.call (OnSubscribeLift.java:30)
rx.Observable.unsafeSubscribe (Observable.java:10151)
rx.internal.operators.OnSubscribeMap.call (OnSubscribeMap.java:48)
rx.internal.operators.OnSubscribeMap.call (OnSubscribeMap.java:33)
rx.internal.operators.OnSubscribeLift.call (OnSubscribeLift.java:48)
rx.internal.operators.OnSubscribeLift.call (OnSubscribeLift.java:30)
rx.internal.operators.OnSubscribeLift.call (OnSubscribeLift.java:48)
rx.internal.operators.OnSubscribeLift.call (OnSubscribeLift.java:30)
rx.Observable.unsafeSubscribe (Observable.java:10151)
rx.internal.operators.OperatorMerge$MergeSubscriber.onNext (OperatorMerge.java:251)
rx.internal.operators.OperatorMerge$MergeSubscriber.onNext (OperatorMerge.java:148)
rx.internal.operators.OnSubscribeMap$MapSubscriber.onNext (OnSubscribeMap.java:77)
rx.internal.operators.OnSubscribeMap$MapSubscriber.onNext (OnSubscribeMap.java:77)
rx.internal.producers.SingleProducer.request (SingleProducer.java:65)
rx.Subscriber.setProducer (Subscriber.java:211)
rx.internal.operators.OnSubscribeMap$MapSubscriber.setProducer (OnSubscribeMap.java:102)
rx.internal.operators.OnSubscribeMap$MapSubscriber.setProducer (OnSubscribeMap.java:102)
rx.internal.operators.OperatorSingle$ParentSubscriber.onCompleted (OperatorSingle.java:110)
rx.internal.operators.OperatorTake$1.onNext (OperatorTake.java:80)
rx.observers.SerializedObserver.onNext (SerializedObserver.java:92)
rx.observers.SerializedSubscriber.onNext (SerializedSubscriber.java:94)
rx.internal.operators.OnSubscribeConcatMap$ConcatMapSubscriber.innerNext (OnSubscribeConcatMap.java:182)
rx.internal.operators.OnSubscribeConcatMap$ConcatMapInnerScalarProducer.request (OnSubscribeConcatMap.java:366)
rx.internal.producers.ProducerArbiter.setProducer (ProducerArbiter.java:126)
rx.internal.operators.OnSubscribeConcatMap$ConcatMapSubscriber.drain (OnSubscribeConcatMap.java:278)
rx.internal.operators.OnSubscribeConcatMap$ConcatMapSubscriber.onNext (OnSubscribeConcatMap.java:144)
rx.internal.operators.OnSubscribeFromArray$FromArrayProducer.slowPath (OnSubscribeFromArray.java:100)
rx.internal.operators.OnSubscribeFromArray$FromArrayProducer.request (OnSubscribeFromArray.java:63)
rx.Subscriber.setProducer (Subscriber.java:211)
rx.internal.operators.OnSubscribeFromArray.call (OnSubscribeFromArray.java:32)
rx.internal.operators.OnSubscribeFromArray.call (OnSubscribeFromArray.java:24)
rx.Observable.unsafeSubscribe (Observable.java:10151)
rx.internal.operators.OnSubscribeConcatMap.call (OnSubscribeConcatMap.java:94)
rx.internal.operators.OnSubscribeConcatMap.call (OnSubscribeConcatMap.java:42)
rx.internal.operators.OnSubscribeLift.call (OnSubscribeLift.java:48)
rx.internal.operators.OnSubscribeLift.call (OnSubscribeLift.java:30)
rx.internal.operators.OnSubscribeLift.call (OnSubscribeLift.java:48)
rx.internal.operators.OnSubscribeLift.call (OnSubscribeLift.java:30)
rx.Observable.unsafeSubscribe (Observable.java:10151)
rx.internal.operators.OnSubscribeMap.call (OnSubscribeMap.java:48)
rx.internal.operators.OnSubscribeMap.call (OnSubscribeMap.java:33)
rx.Observable.unsafeSubscribe (Observable.java:10151)
rx.internal.operators.OnSubscribeMap.call (OnSubscribeMap.java:48)
rx.internal.operators.OnSubscribeMap.call (OnSubscribeMap.java:33)
rx.internal.operators.OnSubscribeLift.call (OnSubscribeLift.java:48)
rx.internal.operators.OnSubscribeLift.call (OnSubscribeLift.java:30)
rx.Observable.unsafeSubscribe (Observable.java:10151)
rx.internal.operators.OnSubscribeMap.call (OnSubscribeMap.java:48)
rx.internal.operators.OnSubscribeMap.call (OnSubscribeMap.java:33)
rx.Observable.unsafeSubscribe (Observable.java:10151)
rx.internal.operators.OperatorMerge$MergeSubscriber.onNext (OperatorMerge.java:251)
rx.internal.operators.OperatorMerge$MergeSubscriber.onNext (OperatorMerge.java:148)
rx.internal.operators.OnSubscribeMap$MapSubscriber.onNext (OnSubscribeMap.java:77)
rx.internal.operators.OnSubscribeFilter$FilterSubscriber.onNext (OnSubscribeFilter.java:76)
rx.internal.operators.OnSubscribeMap$MapSubscriber.onNext (OnSubscribeMap.java:77)
rx.observers.SerializedObserver.onNext (SerializedObserver.java:92)
rx.observers.SerializedSubscriber.onNext (SerializedSubscriber.java:94)
rx.internal.operators.OnSubscribeConcatMap$ConcatMapSubscriber.innerNext (OnSubscribeConcatMap.java:182)
rx.internal.operators.OnSubscribeConcatMap$ConcatMapInnerScalarProducer.request (OnSubscribeConcatMap.java:366)
rx.internal.producers.ProducerArbiter.setProducer (ProducerArbiter.java:126)
rx.internal.operators.OnSubscribeConcatMap$ConcatMapSubscriber.drain (OnSubscribeConcatMap.java:278)
rx.internal.operators.OnSubscribeConcatMap$ConcatMapSubscriber.onNext (OnSubscribeConcatMap.java:144)
rx.internal.operators.OnSubscribeFromArray$FromArrayProducer.slowPath (OnSubscribeFromArray.java:100)
rx.internal.operators.OnSubscribeFromArray$FromArrayProducer.request (OnSubscribeFromArray.java:63)
rx.Subscriber.setProducer (Subscriber.java:211)
rx.internal.operators.OnSubscribeFromArray.call (OnSubscribeFromArray.java:32)
rx.internal.operators.OnSubscribeFromArray.call (OnSubscribeFromArray.java:24)
rx.Observable.unsafeSubscribe (Observable.java:10151)
rx.internal.operators.OnSubscribeConcatMap.call (OnSubscribeConcatMap.java:94)
rx.internal.operators.OnSubscribeConcatMap.call (OnSubscribeConcatMap.java:42)
rx.Observable.unsafeSubscribe (Observable.java:10151)
rx.internal.operators.OnSubscribeMap.call (OnSubscribeMap.java:48)
rx.internal.operators.OnSubscribeMap.call (OnSubscribeMap.java:33)
rx.Observable.unsafeSubscribe (Observable.java:10151)
rx.internal.operators.OnSubscribeFilter.call (OnSubscribeFilter.java:45)
rx.internal.operators.OnSubscribeFilter.call (OnSubscribeFilter.java:30)
rx.Observable.unsafeSubscribe (Observable.java:10151)
rx.internal.operators.OnSubscribeMap.call (OnSubscribeMap.java:48)
rx.internal.operators.OnSubscribeMap.call (OnSubscribeMap.java:33)
rx.internal.operators.OnSubscribeLift.call (OnSubscribeLift.java:48)
rx.internal.operators.OnSubscribeLift.call (OnSubscribeLift.java:30)
rx.Observable.unsafeSubscribe (Observable.java:10151)
rx.internal.operators.OnSubscribeMap.call (OnSubscribeMap.java:48)
rx.internal.operators.OnSubscribeMap.call (OnSubscribeMap.java:33)
rx.internal.operators.OnSubscribeLift.call (OnSubscribeLift.java:48)
rx.internal.operators.OnSubscribeLift.call (OnSubscribeLift.java:30)
rx.Observable.unsafeSubscribe (Observable.java:10151)
rx.internal.operators.OnSubscribeMap.call (OnSubscribeMap.java:48)
rx.internal.operators.OnSubscribeMap.call (OnSubscribeMap.java:33)
rx.internal.operators.OnSubscribeLift.call (OnSubscribeLift.java:48)
rx.internal.operators.OnSubscribeLift.call (OnSubscribeLift.java:30)
rx.Observable.unsafeSubscribe (Observable.java:10151)
rx.internal.operators.OnSubscribeDoOnEach.call (OnSubscribeDoOnEach.java:41)
rx.internal.operators.OnSubscribeDoOnEach.call (OnSubscribeDoOnEach.java:30)
rx.Observable.unsafeSubscribe (Observable.java:10151)
rx.internal.operators.OnSubscribeFilter.call (OnSubscribeFilter.java:45)
rx.internal.operators.OnSubscribeFilter.call (OnSubscribeFilter.java:30)
rx.internal.operators.OnSubscribeLift.call (OnSubscribeLift.java:48)
rx.internal.operators.OnSubscribeLift.call (OnSubscribeLift.java:30)
rx.internal.operators.OnSubscribeLift.call (OnSubscribeLift.java:48)
rx.internal.operators.OnSubscribeLift.call (OnSubscribeLift.java:30)
rx.Observable.unsafeSubscribe (Observable.java:10151)
rx.internal.operators.OnSubscribeSingle.call (OnSubscribeSingle.java:81)
rx.internal.operators.OnSubscribeSingle.call (OnSubscribeSingle.java:27)
rx.Single$1.call (Single.java:89)
rx.Single$1.call (Single.java:69)
rx.Single.subscribe (Single.java:1824)
rx.Single.subscribe (Single.java:1901)
rx.internal.operators.SingleOnSubscribeMap.call (SingleOnSubscribeMap.java:45)
rx.internal.operators.SingleOnSubscribeMap.call (SingleOnSubscribeMap.java:30)
rx.Single$1.call (Single.java:89)
rx.Single$1.call (Single.java:69)
rx.Single.unsafeSubscribe (Single.java:1714)
rx.internal.util.ScalarSynchronousSingle$2.call (ScalarSynchronousSingle.java:153)
rx.internal.util.ScalarSynchronousSingle$2.call (ScalarSynchronousSingle.java:128)
rx.Single$1.call (Single.java:89)
rx.Single$1.call (Single.java:69)
rx.Single.subscribe (Single.java:1824)
rx.Single.subscribe (Single.java:1901)
rx.internal.operators.SingleOnSubscribeMap.call (SingleOnSubscribeMap.java:45)
rx.internal.operators.SingleOnSubscribeMap.call (SingleOnSubscribeMap.java:30)
rx.Single$1.call (Single.java:89)
rx.Single$1.call (Single.java:69)
rx.Single.subscribe (Single.java:1824)
rx.Single.subscribe (Single.java:1901)
rx.Single$5$1.onSuccess (Single.java:677)
rx.Single$5$1.onSuccess (Single.java:673)
rx.Single$18.onNext (Single.java:1896)
rx.observers.SafeSubscriber.onNext (SafeSubscriber.java:134)
rx.internal.producers.SingleDelayedProducer.emit (SingleDelayedProducer.java:102)
rx.internal.producers.SingleDelayedProducer.setValue (SingleDelayedProducer.java:85)
rx.Single$1$1.onSuccess (Single.java:79)
rx.internal.operators.SingleOnSubscribeMap$MapSubscriber.onSuccess (SingleOnSubscribeMap.java:74)
rx.Single$18.onNext (Single.java:1896)
rx.observers.SafeSubscriber.onNext (SafeSubscriber.java:134)
rx.internal.producers.SingleDelayedProducer.emit (SingleDelayedProducer.java:102)
rx.internal.producers.SingleDelayedProducer.setValue (SingleDelayedProducer.java:85)
rx.Single$1$1.onSuccess (Single.java:79)
rx.Single$18.onNext (Single.java:1896)
rx.observers.SafeSubscriber.onNext (SafeSubscriber.java:134)
rx.internal.producers.SingleDelayedProducer.emit (SingleDelayedProducer.java:102)
rx.internal.producers.SingleDelayedProducer.setValue (SingleDelayedProducer.java:85)
rx.Single$1$1.onSuccess (Single.java:79)
rx.internal.operators.OnSubscribeSingle$1.onCompleted (OnSubscribeSingle.java:55)
rx.internal.producers.SingleProducer.request (SingleProducer.java:75)
rx.Subscriber.setProducer (Subscriber.java:211)
rx.internal.operators.OperatorSingle$ParentSubscriber.onCompleted (OperatorSingle.java:110)
rx.internal.operators.OperatorTake$1.onNext (OperatorTake.java:80)
rx.internal.operators.OnSubscribeMap$MapSubscriber.onNext (OnSubscribeMap.java:77)
rx.internal.operators.OnSubscribeFilter$FilterSubscriber.onNext (OnSubscribeFilter.java:76)
rx.observers.SerializedObserver.onNext (SerializedObserver.java:92)
rx.observers.SerializedSubscriber.onNext (SerializedSubscriber.java:94)
rx.internal.operators.OnSubscribeConcatMap$ConcatMapSubscriber.innerNext (OnSubscribeConcatMap.java:182)
rx.internal.operators.OnSubscribeConcatMap$ConcatMapInnerScalarProducer.request (OnSubscribeConcatMap.java:366)
rx.internal.producers.ProducerArbiter.setProducer (ProducerArbiter.java:126)
rx.internal.operators.OnSubscribeConcatMap$ConcatMapSubscriber.drain (OnSubscribeConcatMap.java:278)
rx.internal.operators.OnSubscribeConcatMap$ConcatMapSubscriber.onNext (OnSubscribeConcatMap.java:144)
rx.internal.operators.OnSubscribeFromArray$FromArrayProducer.slowPath (OnSubscribeFromArray.java:100)
rx.internal.operators.OnSubscribeFromArray$FromArrayProducer.request (OnSubscribeFromArray.java:63)
rx.Subscriber.setProducer (Subscriber.java:211)
rx.internal.operators.OnSubscribeFromArray.call (OnSubscribeFromArray.java:32)
rx.internal.operators.OnSubscribeFromArray.call (OnSubscribeFromArray.java:24)
rx.Observable.unsafeSubscribe (Observable.java:10151)
rx.internal.operators.OnSubscribeConcatMap.call (OnSubscribeConcatMap.java:94)
rx.internal.operators.OnSubscribeConcatMap.call (OnSubscribeConcatMap.java:42)
rx.Observable.unsafeSubscribe (Observable.java:10151)
rx.internal.operators.OnSubscribeFilter.call (OnSubscribeFilter.java:45)
rx.internal.operators.OnSubscribeFilter.call (OnSubscribeFilter.java:30)
rx.Observable.unsafeSubscribe (Observable.java:10151)
rx.internal.operators.OnSubscribeMap.call (OnSubscribeMap.java:48)
rx.internal.operators.OnSubscribeMap.call (OnSubscribeMap.java:33)
rx.internal.operators.OnSubscribeLift.call (OnSubscribeLift.java:48)
rx.internal.operators.OnSubscribeLift.call (OnSubscribeLift.java:30)
rx.internal.operators.OnSubscribeLift.call (OnSubscribeLift.java:48)
rx.internal.operators.OnSubscribeLift.call (OnSubscribeLift.java:30)
rx.Observable.unsafeSubscribe (Observable.java:10151)
rx.internal.operators.OnSubscribeSingle.call (OnSubscribeSingle.java:81)
rx.internal.operators.OnSubscribeSingle.call (OnSubscribeSingle.java:27)
rx.Single$1.call (Single.java:89)
rx.Single$1.call (Single.java:69)
rx.Single.subscribe (Single.java:1824)
rx.Single.subscribe (Single.java:1901)
rx.Single$5$1.onSuccess (Single.java:677)
rx.Single$5$1.onSuccess (Single.java:673)
rx.Single$18.onNext (Single.java:1896)
rx.observers.SafeSubscriber.onNext (SafeSubscriber.java:134)
rx.internal.producers.SingleDelayedProducer.emit (SingleDelayedProducer.java:102)
rx.internal.producers.SingleDelayedProducer.setValue (SingleDelayedProducer.java:85)
rx.Single$1$1.onSuccess (Single.java:79)
rx.internal.operators.SingleOnSubscribeMap$MapSubscriber.onSuccess (SingleOnSubscribeMap.java:74)
rx.Single$18.onNext (Single.java:1896)
rx.observers.SafeSubscriber.onNext (SafeSubscriber.java:134)
rx.internal.producers.SingleDelayedProducer.emit (SingleDelayedProducer.java:102)
rx.internal.producers.SingleDelayedProducer.setValue (SingleDelayedProducer.java:85)
rx.Single$1$1.onSuccess (Single.java:79)
rx.internal.operators.OnSubscribeSingle$1.onCompleted (OnSubscribeSingle.java:55)
rx.internal.producers.SingleProducer.request (SingleProducer.java:75)
rx.Subscriber.setProducer (Subscriber.java:211)
rx.internal.operators.OperatorSingle$ParentSubscriber.onCompleted (OperatorSingle.java:110)
rx.internal.operators.OperatorTake$1.onNext (OperatorTake.java:80)
rx.internal.operators.NotificationLite.accept (NotificationLite.java:152)
rx.subjects.SubjectSubscriptionManager$SubjectObserver.accept (SubjectSubscriptionManager.java:320)
rx.subjects.SubjectSubscriptionManager$SubjectObserver.emitLoop (SubjectSubscriptionManager.java:293)
rx.subjects.SubjectSubscriptionManager$SubjectObserver.emitFirst (SubjectSubscriptionManager.java:272)
rx.subjects.BehaviorSubject$1.call (BehaviorSubject.java:110)
rx.subjects.BehaviorSubject$1.call (BehaviorSubject.java:106)
rx.subjects.SubjectSubscriptionManager.add (SubjectSubscriptionManager.java:102)
rx.subjects.SubjectSubscriptionManager.call (SubjectSubscriptionManager.java:62)
rx.subjects.SubjectSubscriptionManager.call (SubjectSubscriptionManager.java:35)
rx.internal.operators.OnSubscribeLift.call (OnSubscribeLift.java:48)
rx.internal.operators.OnSubscribeLift.call (OnSubscribeLift.java:30)
rx.internal.operators.OnSubscribeLift.call (OnSubscribeLift.java:48)
rx.internal.operators.OnSubscribeLift.call (OnSubscribeLift.java:30)
rx.Observable.unsafeSubscribe (Observable.java:10151)
rx.internal.operators.OnSubscribeSingle.call (OnSubscribeSingle.java:81)
rx.internal.operators.OnSubscribeSingle.call (OnSubscribeSingle.java:27)
rx.Single$1.call (Single.java:89)
rx.Single$1.call (Single.java:69)
rx.Single.subscribe (Single.java:1824)
rx.Single.subscribe (Single.java:1901)
rx.internal.operators.SingleOnSubscribeMap.call (SingleOnSubscribeMap.java:45)
rx.internal.operators.SingleOnSubscribeMap.call (SingleOnSubscribeMap.java:30)
...a few more lines

I can't figure out what's happening.

It's difficult to understand where the problem is coming from because of the lambdas but I'd guess that it's coming from these lines in your second method:

.toSelfObservable()
.first()
.map(Result::toList)

toSelfObservable() returns a stream of objects that emits when the underlying data changes, first() simply takes the first element from that stream and ignores everything else. Immediately afterwards you're trying to map the first item back to a list.

My suggestion is to remove first and go with something like this:

.toSelfObservable()
.flatMap(new Func1<Result<Tarrif>, Observable<Tarrif>>() {
     @Override
     public Observable<Tarrif> call(final Result<Tarrif> tarrifs) {
         return tarrifs.toObservable();
      }
 })

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM