{"action":"opened","issue":{"url":"https://api.github.com/repos/ReactiveX/RxJava/issues/3687","repository_url":"https://api.github.com/repos/ReactiveX/RxJava","labels_url":"https://api.github.com/repos/ReactiveX/RxJava/issues/3687/labels{/name}","comments_url":"https://api.github.com/repos/ReactiveX/RxJava/issues/3687/comments","events_url":"https://api.github.com/repos/ReactiveX/RxJava/issues/3687/events","html_url":"https://github.com/ReactiveX/RxJava/issues/3687","id":132433697,"number":3687,"title":"NullPointerException on OperatorZip","user":{"login":"jkettmann","id":9722792,"avatar_url":"https://avatars.githubusercontent.com/u/9722792?v=3","gravatar_id":"","url":"https://api.github.com/users/jkettmann","html_url":"https://github.com/jkettmann","followers_url":"https://api.github.com/users/jkettmann/followers","following_url":"https://api.github.com/users/jkettmann/following{/other_user}","gists_url":"https://api.github.com/users/jkettmann/gists{/gist_id}","starred_url":"https://api.github.com/users/jkettmann/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jkettmann/subscriptions","organizations_url":"https://api.github.com/users/jkettmann/orgs","repos_url":"https://api.github.com/users/jkettmann/repos","events_url":"https://api.github.com/users/jkettmann/events{/privacy}","received_events_url":"https://api.github.com/users/jkettmann/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":0,"created_at":"2016-02-09T14:31:16Z","updated_at":"2016-02-09T14:31:16Z","closed_at":null,"body":"I get crashreports caused by a NullPointerException in OperatorZip's tick() method. You find the stacktrace and my code, causing the problem below.\r\n\r\nThe responsible line in tick() method is\r\n\r\n'RxRingBuffer buffer = ((InnerSubscriber) observers[i]).items;'\r\n\r\nwhere observers[i] seems to be null. \r\n\r\nThe app crashes only rarely on one device, which I don't have acces to (Samsung S3, Android 4.3).  The reason seems to be, that  the property `missedProducer` in `ProducerArbiter` must be set, which is never the case on my devices.\r\n\r\nWe're not in production yet, so I can not tell how many other devices will show this error. \r\n\r\nStacktrace:\r\n`0 java.lang.IllegalStateException: Fatal Exception thrown on Scheduler.Worker thread.\r\n1\tat rx.internal.schedulers.ScheduledAction.run(ScheduledAction.java:62)\r\n2\tat rx.schedulers.ExecutorScheduler$ExecutorSchedulerWorker.run(ExecutorScheduler.java:98)\r\n3\tat java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)\r\n4\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)\r\n5\tat java.lang.Thread.run(Thread.java:841)\r\n6 Caused by: java.lang.NullPointerException\r\n7\tat rx.internal.operators.OperatorZip$Zip.tick(OperatorZip.java:237)\r\n8\tat rx.internal.operators.OperatorZip$ZipProducer.request(OperatorZip.java:175)\r\n9\tat rx.internal.producers.ProducerArbiter.emitLoop(ProducerArbiter.java:181)\r\n10\tat rx.internal.producers.ProducerArbiter.request(ProducerArbiter.java:69)\r\n11\tat rx.internal.operators.OperatorConcat$ConcatSubscriber.requestFromChild(OperatorConcat.java:118)\r\n12\tat rx.internal.operators.OperatorConcat$ConcatSubscriber.access$100(OperatorConcat.java:79)\r\n13\tat rx.internal.operators.OperatorConcat$ConcatProducer.request(OperatorConcat.java:74)\r\n14\tat rx.internal.producers.ProducerArbiter.request(ProducerArbiter.java:66)\r\n15\tat rx.internal.operators.OperatorSubscribeOn$1$1$1$1$1.call(OperatorSubscribeOn.java:94)\r\n16\tat rx.internal.schedulers.ScheduledAction.run(ScheduledAction.java:55)\r\n17\t... 4 more `\r\n\r\nThis is the code causing the problem: Get Observable<List<ContainerEntity>>, map each container entity to my actual container model. flatmap is used to split my list into single items.\r\n\r\n`\r\ngetContainerEntities()\r\n.flatMap(containerEntities ->\r\n            Observable.from(containerEntities))\r\n    .concatMap(containerEntity ->\r\n            mDashboardMapper.mapContainerEntity(containerEntity))\r\n    .onErrorResumeNext(throwable -> {\r\n        Log.e(TAG, throwable);\r\n        return Observable.empty();\r\n    });`"}}