eigenein / openwifi-client-android

Open WiFi Android Client Application
https://play.google.com/store/apps/details?id=info.eigenein.openwifi
0 stars 0 forks source link

RejectedExecutionException #47

Closed eigenein closed 11 years ago

eigenein commented 11 years ago

Подозреваю, что таски на выборку сетей работают нереально долго и не прерываются (то есть, подозрение на долго выполняющийся запрос).

USER_COMMENT=
ANDROID_VERSION=2.1-update1
APP_VERSION_NAME=0.1.0
BRAND=LGE
PHONE_MODEL=GT540
CUSTOM_DATA=
STACK_TRACE=java.util.concurrent.RejectedExecutionException
at java.util.concurrent.ThreadPoolExecutor$AbortPolicy.rejectedExecution(ThreadPoolExecutor.java:1876)
at java.util.concurrent.ThreadPoolExecutor.reject(ThreadPoolExecutor.java:774)
at java.util.concurrent.ThreadPoolExecutor.execute(ThreadPoolExecutor.java:1295)
at android.os.AsyncTask.execute(AsyncTask.java:394)
at info.eigenein.openwifi.activities.MainActivity.startRefreshingScanResultsOnMap(MainActivity.java:221)
at info.eigenein.openwifi.activities.MainActivity.access$100(MainActivity.java:34)
at info.eigenein.openwifi.activities.MainActivity$1.onMovedOrZoomed(MainActivity.java:63)
at info.eigenein.openwifi.helpers.map.TrackableMapView.fireMovedOrZoomed(TrackableMapView.java:58)
at info.eigenein.openwifi.helpers.map.TrackableMapView.dispatchDraw(TrackableMapView.java:41)
at android.view.View.draw(View.java:6561)
at android.view.ViewGroup.drawChild(ViewGroup.java:1531)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1258)
at android.view.View.draw(View.java:6561)
at android.widget.FrameLayout.draw(FrameLayout.java:352)
at android.view.ViewGroup.drawChild(ViewGroup.java:1531)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1258)
at android.view.ViewGroup.drawChild(ViewGroup.java:1529)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1258)
at android.view.View.draw(View.java:6561)
at android.widget.FrameLayout.draw(FrameLayout.java:352)
at com.android.internal.policy.impl.PhoneWindow$DecorView.draw(PhoneWindow.java:1903)
at android.view.ViewRoot.draw(ViewRoot.java:1349)
at android.view.ViewRoot.performTraversals(ViewRoot.java:1114)
at android.view.ViewRoot.handleMessage(ViewRoot.java:1633)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:123)
at android.app.ActivityThread.main(ActivityThread.java:4363)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:521)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:885)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:643)
at dalvik.system.NativeStart.main(Native Method)
eigenein commented 11 years ago

Индексы используются явно неэффективно:

sqlite> explain query plan select * from my_scan_results where latitude > 0 and latitude < 100 and longitude > 0 and latitude < 100;
0|0|0|SEARCH TABLE my_scan_results USING INDEX my_scan_results_latitude_idx (latitude>? AND latitude<?) (~6944 rows)

Вот такой индекс уже семантически лучше, но все еще неэффективен:

sqlite> create index mylocation_idx on my_scan_results (latitude, longitude);
sqlite> explain query plan select * from my_scan_results where latitude > 0 and latitude < 100 and longitude > 0 and longitude < 100;
0|0|0|SEARCH TABLE my_scan_results USING INDEX mylocation_idx (latitude>? AND latitude<?) (~6944 rows)