sensorsdata/sa-sdk-android

数据库连接

Closed this issue · 1 comments

短时间记录多个事件会造成 java.lang.IllegalStateException: #Cannot perform this operation because the connection pool has been closed. 的问题,并提示 SA.AnalyticsMessages: SensorsData will not process any more analytics messages,之后每次尝试记录事件均会提示 SA.AnalyticsMessages: Dead worker dropping a message: 3。重启应用恢复正常。

Full log:

06-17 11:26:59.344 9709-9758/com.example.test E/SA.AnalyticsMessages: Worker threw an unhandled exception
                                                                       java.lang.IllegalStateException: Cannot perform this operation because the connection pool has been closed.
                                                                           at android.database.sqlite.SQLiteConnectionPool.throwIfClosedLocked(SQLiteConnectionPool.java:962)
                                                                           at android.database.sqlite.SQLiteConnectionPool.waitForConnection(SQLiteConnectionPool.java:599)
                                                                           at android.database.sqlite.SQLiteConnectionPool.acquireConnection(SQLiteConnectionPool.java:348)
                                                                           at android.database.sqlite.SQLiteSession.acquireConnection(SQLiteSession.java:894)
                                                                           at android.database.sqlite.SQLiteSession.executeForCursorWindow(SQLiteSession.java:834)
                                                                           at android.database.sqlite.SQLiteQuery.fillWindow(SQLiteQuery.java:62)
                                                                           at android.database.sqlite.SQLiteCursor.fillWindow(SQLiteCursor.java:144)
                                                                           at android.database.sqlite.SQLiteCursor.getCount(SQLiteCursor.java:133)
                                                                           at android.database.AbstractCursor.moveToPosition(AbstractCursor.java:197)
                                                                           at android.database.AbstractCursor.moveToFirst(AbstractCursor.java:237)
                                                                           at com.sensorsdata.analytics.android.sdk.DbAdapter.cleanupEvents(DbAdapter.java:180)
                                                                           at com.sensorsdata.analytics.android.sdk.AnalyticsMessages.sendData(AnalyticsMessages.java:201)
                                                                           at com.sensorsdata.analytics.android.sdk.AnalyticsMessages$Worker$AnalyticsMessageHandler.handleMessage(AnalyticsMessages.java:304)
                                                                           at android.os.Handler.dispatchMessage(Handler.java:102)
                                                                           at android.os.Looper.loop(Looper.java:135)
                                                                           at android.os.HandlerThread.run(HandlerThread.java:61)
06-17 11:26:59.344 9709-9758/com.example.test E/SA.AnalyticsMessages: SensorsData will not process any more analytics messages
                                                                       java.lang.IllegalStateException: Cannot perform this operation because the connection pool has been closed.
                                                                           at android.database.sqlite.SQLiteConnectionPool.throwIfClosedLocked(SQLiteConnectionPool.java:962)
                                                                           at android.database.sqlite.SQLiteConnectionPool.waitForConnection(SQLiteConnectionPool.java:599)
                                                                           at android.database.sqlite.SQLiteConnectionPool.acquireConnection(SQLiteConnectionPool.java:348)
                                                                           at android.database.sqlite.SQLiteSession.acquireConnection(SQLiteSession.java:894)
                                                                           at android.database.sqlite.SQLiteSession.executeForCursorWindow(SQLiteSession.java:834)
                                                                           at android.database.sqlite.SQLiteQuery.fillWindow(SQLiteQuery.java:62)
                                                                           at android.database.sqlite.SQLiteCursor.fillWindow(SQLiteCursor.java:144)
                                                                           at android.database.sqlite.SQLiteCursor.getCount(SQLiteCursor.java:133)
                                                                           at android.database.AbstractCursor.moveToPosition(AbstractCursor.java:197)
                                                                           at android.database.AbstractCursor.moveToFirst(AbstractCursor.java:237)
                                                                           at com.sensorsdata.analytics.android.sdk.DbAdapter.cleanupEvents(DbAdapter.java:180)
                                                                           at com.sensorsdata.analytics.android.sdk.AnalyticsMessages.sendData(AnalyticsMessages.java:201)
                                                                           at com.sensorsdata.analytics.android.sdk.AnalyticsMessages$Worker$AnalyticsMessageHandler.handleMessage(AnalyticsMessages.java:304)
                                                                           at android.os.Handler.dispatchMessage(Handler.java:102)
                                                                           at android.os.Looper.loop(Looper.java:135)
                                                                           at android.os.HandlerThread.run(HandlerThread.java:61)

Fixed in 1.51