The callbacks are just stored in a HashMap, and the entries there are never set null (actually that field is final), so I don't really see how that can happen. Are you sure you aren't potentially doing this loop from different threads without doing your own synchronization?
On Thu, Mar 12, 2009 at 6:07 PM, Streets Of Boston <flyingdutc...@gmail.com>wrote: > > Hi, > > I found out that RemoteCallbackList.getBroadcastItem(int) sometimes > returns null. I have this code in my Service and it raises a null- > pointer exception: > > ... > // instance variable of my Service > final RemoteCallbackList<IProgressCallback> mCallbacks > = new RemoteCallbackList<IProgressCallback>(); > > > ... > ... > public boolean sendProgressCallback(String imgUri, int albumId, int > progressBytes, int progressPercent) { > final QueuedImageUpload qiu = getUploadingImage(imgUri, albumId); > if (qiu == null) > return true; > > qiu.setSizeUploaded(progressBytes); > > final int totalSizePercent = > mQueues.calculateRemainingSizePercent(); > final int N = mCallbacks.beginBroadcast(); > try { > for (int i = 0; i < N; i++) { > try { > if > (!mCallbacks.getBroadcastItem(i).progressChanged(qiu.getID(), > imgUri, albumId, progressPercent, totalSizePercent)) { > return false; > } > } catch (RemoteException e) { > // The RemoteCallbackList will take care of > removing > // the dead object for us. > } > } > } > finally { > mCallbacks.finishBroadcast(); > } > return true; > } > > This line is the one throwing a nullpointer exception: > "if (!mCallbacks.getBroadcastItem(i).progressChanged(qiu.getID(), > imgUri, albumId, progressPercent, totalSizePercent))" > > - The mCallbacks is never null. It is declared as final. > - The local 'qui' stack-variable is never null. It is guarded by a > null-pointer check. > > That only leads me to conclude that the call getBroadcastItem(i) > returns null. However, the documentation states that this method never > returns null. Is this a bug in Android? > > This problem only happens on occasion (I can not reproduce it > consistently), but it happens often enough to be of concern for my > app. > > BTW, someone else reported the same problem a while ago: > > > http://groups.google.com/group/android-developers/browse_thread/thread/804e27f717d4296d/7aa863a31c220b44?show_docid=7aa863a31c220b44&fwc=1 > > Thank you. > -- Anton Spaans > http://soft.antonspaans.com > > > -- Dianne Hackborn Android framework engineer hack...@android.com Note: please don't send private questions to me, as I don't have time to provide private support. All such questions should be posted on public forums, where I and others can see and answer them. --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Android Developers" group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers-unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en -~----------~----~----~----~------~----~------~--~---