title: ListView random IndexOutOfBoundsException on Froyo
body: <p>I have an app with tons of downloads and I'm receiving a lot of this error:</p>
  
  <pre><code> 16783         AndroidRuntime  E  java.lang.IndexOutOfBoundsException: Invalid index 0, size is 0
   16783         AndroidRuntime  E    at java.util.ArrayList.throwIndexOutOfBoundsException(ArrayList.java:257)
   16783         AndroidRuntime  E    at java.util.ArrayList.get(ArrayList.java:311)
   16783         AndroidRuntime  E    at android.widget.HeaderViewListAdapter.isEnabled(HeaderViewListAdapter.java:16
                                    4)
   16783         AndroidRuntime  E    at android.widget.ListView.dispatchDrawWithExcessScroll_Default(ListView.java:3
                                    288)
   16783         AndroidRuntime  E    at android.widget.ListView.dispatchDraw(ListView.java:3029)
   16783         AndroidRuntime  E    at android.view.View.draw(View.java:6743)
   16783         AndroidRuntime  E    at android.widget.AbsListView.draw(AbsListView.java:2549)
   16783         AndroidRuntime  E    at android.view.ViewGroup.drawChild(ViewGroup.java:1640)
   16783         AndroidRuntime  E    at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1367)
   16783         AndroidRuntime  E    at android.view.View.draw(View.java:6743)
   16783         AndroidRuntime  E    at android.view.ViewGroup.drawChild(ViewGroup.java:1640)
   16783         AndroidRuntime  E    at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1367)
   16783         AndroidRuntime  E    at android.view.ViewGroup.drawChild(ViewGroup.java:1638)
   16783         AndroidRuntime  E    at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1367)
   16783         AndroidRuntime  E    at android.view.ViewGroup.drawChild(ViewGroup.java:1638)
   16783         AndroidRuntime  E    at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1367)
   16783         AndroidRuntime  E    at android.view.ViewGroup.drawChild(ViewGroup.java:1638)
   16783         AndroidRuntime  E    at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1367)
   16783         AndroidRuntime  E    at android.view.ViewGroup.drawChild(ViewGroup.java:1638)
   16783         AndroidRuntime  E    at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1367)
   16783         AndroidRuntime  E    at android.view.ViewGroup.drawChild(ViewGroup.java:1638)
   16783         AndroidRuntime  E    at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1367)
   16783         AndroidRuntime  E    at android.view.ViewGroup.drawChild(ViewGroup.java:1638)
   16783         AndroidRuntime  E    at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1367)
   16783         AndroidRuntime  E    at android.view.ViewGroup.drawChild(ViewGroup.java:1638)
   16783         AndroidRuntime  E    at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1367)
   16783         AndroidRuntime  E    at android.view.View.draw(View.java:6743)
   16783         AndroidRuntime  E    at android.view.ViewGroup.drawChild(ViewGroup.java:1640)
   16783         AndroidRuntime  E    at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1367)
   16783         AndroidRuntime  E    at android.view.ViewGroup.drawChild(ViewGroup.java:1638)
   16783         AndroidRuntime  E    at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1367)
   16783         AndroidRuntime  E    at android.view.View.draw(View.java:6743)
   16783         AndroidRuntime  E    at android.widget.FrameLayout.draw(FrameLayout.java:352)
   16783         AndroidRuntime  E    at com.android.internal.policy.impl.PhoneWindow$DecorView.draw(PhoneWindow.java
                                    :1885)
   16783         AndroidRuntime  E    at android.view.ViewRoot.draw(ViewRoot.java:1407)
   16783         AndroidRuntime  E    at android.view.ViewRoot.performTraversals(ViewRoot.java:1163)
   16783         AndroidRuntime  E    at android.view.ViewRoot.handleMessage(ViewRoot.java:1727)
   16783         AndroidRuntime  E    at android.os.Handler.dispatchMessage(Handler.java:99)
   16783         AndroidRuntime  E    at android.os.Looper.loop(Looper.java:123)
   16783         AndroidRuntime  E    at android.app.ActivityThread.main(ActivityThread.java:4627)
   16783         AndroidRuntime  E    at java.lang.reflect.Method.invokeNative(Native Method)
   16783         AndroidRuntime  E    at java.lang.reflect.Method.invoke(Method.java:521)
   16783         AndroidRuntime  E    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:8
                                    58)
   16783         AndroidRuntime  E    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
   16783         AndroidRuntime  E    at dalvik.system.NativeStart.main(Native Method)
  </code></pre>
  
  <p>As you can see in the stack trace, there is not one line with my code trace in it.
  To reproduce this, I luckily found an user with a Froyo (2.2 p7) and I just scrolled down one of the <code>ListView</code>s on the code. After some random time, it just froze with this exception. This happens every time at a different time.</p>
  
  <p>It is a <code>ListView</code> with an <code>EndlessAdapter</code> behind it, just adding more and more rows.
  Apparently I get this error when I do the "over-scroll" but I cannot even think of a way to fix this.
  It is hard enough to reproduce, but with almost 200 users online at every time, if they keep getting this error they will end up not using the app anymore.</p>
  
  <p>Any help would be appreciated.</p>
  
  <p>EDIT: 
  There has been a similar issue with someone else with the <code>EndlessAdapter</code>. <a href="http://groups.google.com/group/cw-android/browse_thread/thread/4739ce05742841da/af59c779e99f5e23?lnk=gst&amp;q=index#af59c779e99f5e23">http://groups.google.com/group/cw-android/browse_thread/thread/4739ce05742841da/af59c779e99f5e23?lnk=gst&amp;q=index#af59c779e99f5e23</a></p>
  
  <p>But it's not <code>EndlessAdapter</code>'s fault. It's android's fault.</p>