jeudi 27 août 2015

StackOverflowError in android application

If you analize the following code, You will see that there 4 function being invoked many times (pushNextEntityUpdatedRows, pushNextUpdatedRow, pushNextEntityCreatedRows, pushNextCreatedRow), thats not a BUG, Thats how I desgined my code to work. What you should know is that I have a class (DataAccess) that extends SQLiteOpenHelper and I only instantiate that class once. Everytime the functions pushNextEntityUpdatedRows and pushNextEntityCreatedRows are invoked, a rawQuery is executed in my DataAccess class instance. I never close the connection, I only close the Cursor objects instances. I dont know What is causing this StackOverflowError. I also dont know why It always happens after 145 invocations. How to I solve it? Thanks is advance.

The stack trace is telling me this:

    java.lang.StackOverflowError
    at java.util.WeakHashMap.poll(WeakHashMap.java:550)
    at java.util.WeakHashMap.put(WeakHashMap.java:589)
    at android.database.sqlite.SQLiteConnectionPool.finishAcquireConnectionLocked(SQLiteConnectionPool.java:980)
    at android.database.sqlite.SQLiteConnectionPool.tryAcquirePrimaryConnectionLocked(SQLiteConnectionPool.java:916)
    at android.database.sqlite.SQLiteConnectionPool.waitForConnection(SQLiteConnectionPool.java:682)
    at android.database.sqlite.SQLiteConnectionPool.acquireConnection(SQLiteConnectionPool.java:400)
    at android.database.sqlite.SQLiteSession.acquireConnection(SQLiteSession.java:905)
    at android.database.sqlite.SQLiteSession.prepare(SQLiteSession.java:586)
    at android.database.sqlite.SQLiteProgram.<init>(SQLiteProgram.java:58)
    at android.database.sqlite.SQLiteQuery.<init>(SQLiteQuery.java:37)
    at android.database.sqlite.SQLiteDirectCursorDriver.query(SQLiteDirectCursorDriver.java:44)
    at android.database.sqlite.SQLiteDatabase.rawQueryWithFactory(SQLiteDatabase.java:1436)
    at android.database.sqlite.SQLiteDatabase.rawQuery(SQLiteDatabase.java:1375)
    at mz.co.cloud.dumbo.db.LSH.getAllNewCreatedRows(LSH.java:2072)
    at mz.co.cloud.dumbo.syncmechanism.SyncDataAccessImplementation.getAllNewCreatedRows(SyncDataAccessImplementation.java:182)
    at mz.co.cloud.dumbo.syncmechanism.SyncWorker.pushNextEntityCreatedRows(SyncWorker.java:1039)
    at mz.co.cloud.dumbo.syncmechanism.SyncWorker.pushNextCreatedRow(SyncWorker.java:1355)
    at mz.co.cloud.dumbo.syncmechanism.SyncWorker.pushNextEntityCreatedRows(SyncWorker.java:1046)
    at mz.co.cloud.dumbo.syncmechanism.SyncWorker.pushNextCreatedRow(SyncWorker.java:1355)
    at mz.co.cloud.dumbo.syncmechanism.SyncWorker.pushNextEntityCreatedRows(SyncWorker.java:1046)
    at mz.co.cloud.dumbo.syncmechanism.SyncWorker.pushNextCreatedRow(SyncWorker.java:1355)
    at mz.co.cloud.dumbo.syncmechanism.SyncWorker.pushNextEntityCreatedRows(SyncWorker.java:1046)
    at mz.co.cloud.dumbo.syncmechanism.SyncWorker.pushNextCreatedRow(SyncWorker.java:1355)
    at mz.co.cloud.dumbo.syncmechanism.SyncWorker.pushNextEntityCreatedRows(SyncWorker.java:1046)
    at mz.co.cloud.dumbo.syncmechanism.SyncWorker.pushNextCreatedRow(SyncWorker.java:1355)
    at mz.co.cloud.dumbo.syncmechanism.SyncWorker.pushNextEntityCreatedRows(SyncWorker.java:1046)
    at mz.co.cloud.dumbo.syncmechanism.SyncWorker.pushNextCreatedRow(SyncWorker.java:1355)
    at mz.co.cloud.dumbo.syncmechanism.SyncWorker.pushNextEntityCreatedRows(SyncWorker.java:1046)
    at mz.co.cloud.dumbo.syncmechanism.SyncWorker.pushNextCreatedRow(SyncWorker.java:1355)
    at mz.co.cloud.dumbo.syncmechanism.SyncWorker.pushNextEntityCreatedRows(SyncWorker.java:1046)
    at mz.co.cloud.dumbo.syncmechanism.SyncWorker.pushNextCreatedRow(SyncWorker.java:1355)
    at mz.co.cloud.dumbo.syncmechanism.SyncWorker.pushNextEntityCreatedRows(SyncWorker.java:1046)
    at mz.co.cloud.dumbo.syncmechanism.SyncWorker.pushNextCreatedRow(SyncWorker.java:1355)
    at mz.co.cloud.dumbo.syncmechanism.SyncWorker.pushNextEntityCreatedRows(SyncWorker.java:1046)
    at mz.co.cloud.dumbo.syncmechanism.SyncWorker.pushNextCreatedRow(SyncWorker.java:1355)
    at mz.co.cloud.dumbo.syncmechanism.SyncWorker.pushNextEntityCreatedRows(SyncWorker.java:1046)
    at mz.co.cloud.dumbo.syncmechanism.SyncWorker.pushNextCreatedRow(SyncWorker.java:1355)
    at mz.co.cloud.dumbo.syncmechanism.SyncWorker.pushNextEntityCreatedRows(SyncWorker.java:1046)
    at mz.co.cloud.dumbo.syncmechanism.SyncWorker.pushNextCreatedRow(SyncWorker.java:1355)
    at mz.co.cloud.dumbo.syncmechanism.SyncWorker.pushNextEntityCreatedRows(SyncWorker.java:1046)
    at mz.co.cloud.dumbo.syncmechanism.SyncWorker.pushNextCreatedRow(SyncWorker.java:1355)
    at mz.co.cloud.dumbo.syncmechanism.SyncWorker.pushNextEntityCreatedRows(SyncWorker.java:1046)
    at mz.co.cloud.dumbo.syncmechanism.SyncWorker.pushNextCreatedRow(SyncWorker.java:1355)
    at mz.co.cloud.dumbo.syncmechanism.SyncWorker.pushNextEntityCreatedRows(SyncWorker.java:1046)
    at mz.co.cloud.dumbo.syncmechanism.SyncWorker.pushNextCreatedRow(SyncWorker.java:1355)
    at mz.co.cloud.dumbo.syncmechanism.SyncWorker.pushNextEntityCreatedRows(SyncWorker.java:1046)
    at mz.co.cloud.dumbo.syncmechanism.SyncWorker.pushNextCreatedRow(SyncWorker.java:1355)
    at mz.co.cloud.dumbo.syncmechanism.SyncWorker.pushNextEntityCreatedRows(SyncWorker.java:1046)
    at mz.co.cloud.dumbo.syncmechanism.SyncWorker.pushNextCreatedRow(SyncWorker.java:1355)
    at mz.co.cloud.dumbo.syncmechanism.SyncWorker.pushNextCreatedRow(SyncWorker.java:1154)
    at mz.co.cloud.dumbo.syncmechanism.SyncWorker.pushNextCreatedRow(SyncWorker.java:1154)
    at mz.co.cloud.dumbo.syncmechanism.SyncWorker.pushNextCreatedRow(SyncWorker.java:1154)
    at mz.co.cloud.dumbo.syncmechanism.SyncWorker.pushNextCreatedRow(SyncWorker.java:1154)
    at mz.co.cloud.dumbo.syncmechanism.SyncWorker.pushNextCreatedRow(SyncWorker.java:1154)
    at mz.co.cloud.dumbo.syncmechanism.SyncWorker.pushNextCreatedRow(SyncWorker.java:1154)
    at mz.co.cloud.dumbo.syncmechanism.SyncWorker.pushNextCreatedRow(SyncWorker.java:1154)
    at mz.co.cloud.dumbo.syncmechanism.SyncWorker.pushNextCreatedRow(SyncWorker.java:1154)
    at mz.co.cloud.dumbo.syncmechanism.SyncWorker.pushNextCreatedRow(SyncWorker.java:1154)
    at mz.co.cloud.dumbo.syncmechanism.SyncWorker.pushNextCreatedRow(SyncWorker.java:1154)
    at mz.co.cloud.dumbo.syncmechanism.SyncWorker.pushNextCreatedRow(SyncWorker.java:1154)
    at mz.co.cloud.dumbo.syncmechanism.SyncWorker.pushNextCreatedRow(SyncWorker.java:1154)
    at mz.co.cloud.dumbo.syncmechanism.SyncWorker.pushNextCreatedRow(SyncWorker.java:1154)
    at mz.co.cloud.dumbo.syncmechanism.SyncWorker.pushNextCreatedRow(SyncWorker.java:1154)
    at mz.co.cloud.dumbo.syncmechanism.SyncWorker.pushNextCreatedRow(SyncWorker.java:1154)
    at mz.co.cloud.dumbo.syncmechanism.SyncWorker.pushNextCreatedRow(SyncWorker.java:1154)
    at mz.co.cloud.dumbo.syncmechanism.SyncWorker.pushNextCreatedRow(SyncWorker.java:1154)
    at mz.co.cloud.dumbo.syncmechanism.SyncWorker.pushNextCreatedRow(SyncWorker.java:1154)
    at mz.co.cloud.dumbo.syncmechanism.SyncWorker.pushNextCreatedRow(SyncWorker.java:1154)
    at mz.co.cloud.dumbo.syncmechanism.SyncWorker.pushNextCreatedRow(SyncWorker.java:1154)
    at mz.co.cloud.dumbo.syncmechanism.SyncWorker.pushNextCreatedRow(SyncWorker.java:1154)
    at mz.co.cloud.dumbo.syncmechanism.SyncWorker.pushNextCreatedRow(SyncWorker.java:1154)
    at mz.co.cloud.dumbo.syncmechanism.SyncWorker.pushNextCreatedRow(SyncWorker.java:1154)
    at mz.co.cloud.dumbo.syncmechanism.SyncWorker.pushNextCreatedRow(SyncWorker.java:1154)
    at mz.co.cloud.dumbo.syncmechanism.SyncWorker.pushNextCreatedRow(SyncWorker.java:1154)
    at mz.co.cloud.dumbo.syncmechanism.SyncWorker.pushNextCreatedRow(SyncWorker.java:1154)
    at mz.co.cloud.dumbo.syncmechanism.SyncWorker.pushNextCreatedRow(SyncWorker.java:1154)
    at mz.co.cloud.dumbo.syncmechanism.SyncWorker.pushNextCreatedRow(SyncWorker.java:1154)
    at mz.co.cloud.dumbo.syncmechanism.SyncWorker.pushNextCreatedRow(SyncWorker.java:1154)
    at mz.co.cloud.dumbo.syncmechanism.SyncWorker.pushNextCreatedRow(SyncWorker.java:1154)
    at mz.co.cloud.dumbo.syncmechanism.SyncWorker.pushNextCreatedRow(SyncWorker.java:1154)
    at mz.co.cloud.dumbo.syncmechanism.SyncWorker.pushNextCreatedRow(SyncWorker.java:1154)
    at mz.co.cloud.dumbo.syncmechanism.SyncWorker.pushNextCreatedRow(SyncWorker.java:1154)
    at mz.co.cloud.dumbo.syncmechanism.SyncWorker.pushNextCreatedRow(SyncWorker.java:1154)
    at mz.co.cloud.dumbo.syncmechanism.SyncWorker.pushNextCreatedRow(SyncWorker.java:1154)
    at mz.co.cloud.dumbo.syncmechanism.SyncWorker.pushNextCreatedRow(SyncWorker.java:1154)
    at mz.co.cloud.dumbo.syncmechanism.SyncWorker.pushNextCreatedRow(SyncWorker.java:1154)
    at mz.co.cloud.dumbo.syncmechanism.SyncWorker.pushNextCreatedRow(SyncWorker.java:1154)
    at mz.co.cloud.dumbo.syncmechanism.SyncWorker.pushNextCreatedRow(SyncWorker.java:1154)
    at mz.co.cloud.dumbo.syncmechanism.SyncWorker.pushNextCreatedRow(SyncWorker.java:1154)
    at mz.co.cloud.dumbo.syncmechanism.SyncWorker.pushNextCreatedRow(SyncWorker.java:1154)
    at mz.co.cloud.dumbo.syncmechanism.SyncWorker.pushNextCreatedRow(SyncWorker.java:1154)
    at mz.co.cloud.dumbo.syncmechanism.SyncWorker.pushNextCreatedRow(SyncWorker.java:1154)
    at mz.co.cloud.dumbo.syncmechanism.SyncWorker.pushNextCreatedRow(SyncWorker.java:1154)
    at mz.co.cloud.dumbo.syncmechanism.SyncWorker.pushNextCreatedRow(SyncWorker.java:1154)
    at mz.co.cloud.dumbo.syncmechanism.SyncWorker.pushNextCreatedRow(SyncWorker.java:1154)
    at mz.co.cloud.dumbo.syncmechanism.SyncWorker.pushNextCreatedRow(SyncWorker.java:1154)
    at mz.co.cloud.dumbo.syncmechanism.SyncWorker.pushNextCreatedRow(SyncWorker.java:1154)
    at mz.co.cloud.dumbo.syncmechanism.SyncWorker.pushNextCreatedRow(SyncWorker.java:1154)
    at mz.co.cloud.dumbo.syncmechanism.SyncWorker.pushNextCreatedRow(SyncWorker.java:1154)
    at mz.co.cloud.dumbo.syncmechanism.SyncWorker.pushNextCreatedRow(SyncWorker.java:1154)
    at mz.co.cloud.dumbo.syncmechanism.SyncWorker.pushNextCreatedRow(SyncWorker.java:1154)
    at mz.co.cloud.dumbo.syncmechanism.SyncWorker.pushNextCreatedRow(SyncWorker.java:1169)
    at mz.co.cloud.dumbo.syncmechanism.SyncWorker.pushNextCreatedRow(SyncWorker.java:1154)
    at mz.co.cloud.dumbo.syncmechanism.SyncWorker.pushNextCreatedRow(SyncWorker.java:1154)
    at mz.co.cloud.dumbo.syncmechanism.SyncWorker.pushNextCreatedRow(SyncWorker.java:1154)
    at mz.co.cloud.dumbo.syncmechanism.SyncWorker.pushNextCreatedRow(SyncWorker.java:1154)
    at mz.co.cloud.dumbo.syncmechanism.SyncWorker.pushNextCreatedRow(SyncWorker.java:1154)
    at mz.co.cloud.dumbo.syncmechanism.SyncWorker.pushNextCreatedRow(SyncWorker.java:1154)
    at mz.co.cloud.dumbo.syncmechanism.SyncWorker.pushNextCreatedRow(SyncWorker.java:1154)
    at mz.co.cloud.dumbo.syncmechanism.SyncWorker.pushNextCreatedRow(SyncWorker.java:1154)
    at mz.co.cloud.dumbo.syncmechanism.SyncWorker.pushNextEntityCreatedRows(SyncWorker.java:1046)
    at mz.co.cloud.dumbo.syncmechanism.SyncWorker.pushNextCreatedRow(SyncWorker.java:1355)
    at mz.co.cloud.dumbo.syncmechanism.SyncWorker.pushNextEntityCreatedRows(SyncWorker.java:1046)
    at mz.co.cloud.dumbo.syncmechanism.SyncWorker.pushNextEntityUpdatedRows(SyncWorker.java:714)
    at mz.co.cloud.dumbo.syncmechanism.SyncWorker.pushNextUpdatedRow(SyncWorker.java:1020)
    at mz.co.cloud.dumbo.syncmechanism.SyncWorker.pushNextEntityUpdatedRows(SyncWorker.java:704)
    at mz.co.cloud.dumbo.syncmechanism.SyncWorker.pushNextUpdatedRow(SyncWorker.java:1020)
    at mz.co.cloud.dumbo.syncmechanism.SyncWorker.pushNextEntityUpdatedRows(SyncWorker.java:704)
    at mz.co.cloud.dumbo.syncmechanism.SyncWorker.pushNextUpdatedRow(SyncWorker.java:1020)
    at mz.co.cloud.dumbo.syncmechanism.SyncWorker.pushNextEntityUpdatedRows(SyncWorker.java:704)
    at mz.co.cloud.dumbo.syncmechanism.SyncWorker.pushNextUpdatedRow(SyncWorker.java:1020)
    at mz.co.cloud.dumbo.syncmechanism.SyncWorker.pushNextEntityUpdatedRows(SyncWorker.java:704)
    at mz.co.cloud.dumbo.syncmechanism.SyncWorker.pushNextUpdatedRow(SyncWorker.java:1020)
    at mz.co.cloud.dumbo.syncmechanism.SyncWorker.pushNextEntityUpdatedRows(SyncWorker.java:704)
    at mz.co.cloud.dumbo.syncmechanism.SyncWorker.pushNextUpdatedRow(SyncWorker.java:1020)
    at mz.co.cloud.dumbo.syncmechanism.SyncWorker.pushNextEntityUpdatedRows(SyncWorker.java:704)
    at mz.co.cloud.dumbo.syncmechanism.SyncWorker.pushNextUpdatedRow(SyncWorker.java:1020)
    at mz.co.cloud.dumbo.syncmechanism.SyncWorker.pushNextEntityUpdatedRows(SyncWorker.java:704)
    at mz.co.cloud.dumbo.syncmechanism.SyncWorker.pushNextUpdatedRow(SyncWorker.java:1020)
    at mz.co.cloud.dumbo.syncmechanism.SyncWorker.pushNextEntityUpdatedRows(SyncWorker.java:704)
    at mz.co.cloud.dumbo.syncmechanism.SyncWorker.pushNextUpdatedRow(SyncWorker.java:1020)
    at mz.co.cloud.dumbo.syncmechanism.SyncWorker.pushNextEntityUpdatedRows(SyncWorker.java:704)
    at mz.co.cloud.dumbo.syncmechanism.SyncWorker.pushNextUpdatedRow(SyncWorker.java:1020)
    at mz.co.cloud.dumbo.syncmechanism.SyncWorker.pushNextEntityUpdatedRows(SyncWorker.java:704)
    at mz.co.cloud.dumbo.syncmechanism.SyncWorker.pushNextUpdatedRow(SyncWorker.java:1020)
    at mz.co.cloud.dumbo.syncmechanism.SyncWorker.pushNextEntityUpdatedRows(SyncWorker.java:704)
    at mz.co.cloud.dumbo.syncmechanism.SyncWorker.pushNextUpdatedRow(SyncWorker.java:1020)
    at mz.co.cloud.dumbo.syncmechanism.SyncWorker.pushNextEntityUpdatedRows(SyncWorker.java:704)
    at mz.co.cloud.dumbo.syncmechanism.SyncWorker.pushNextUpdatedRow(SyncWorker.java:1020)
    at mz.co.cloud.dumbo.syncmechanism.SyncWorker.pushNextEntityUpdatedRows(SyncWorker.java:704)
    at mz.co.cloud.dumbo.syncmechanism.SyncWorker.pushNextUpdatedRow(SyncWorker.java:1020)
    at mz.co.cloud.dumbo.syncmechanism.SyncWorker.pushNextEntityUpdatedRows(SyncWorker.java:704)
    at mz.co.cloud.dumbo.syncmechanism.SyncWorker.pushNextUpdatedRow(SyncWorker.java:1020)
    at mz.co.cloud.dumbo.syncmechanism.SyncWorker.pushNextEntityUpdatedRows(SyncWorker.java:704)
    at mz.co.cloud.dumbo.syncmechanism.SyncWorker.pushNextUpdatedRow(SyncWorker.java:1020)
    at mz.co.cloud.dumbo.syncmechanism.SyncWorker.pushNextEntityUpdatedRows(SyncWorker.java:704)
    at mz.co.cloud.dumbo.syncmechanism.SyncWorker.pushNextUpdatedRow(SyncWorker.java:1020)
    at mz.co.cloud.dumbo.syncmechanism.SyncWorker.pushNextEntityUpdatedRows(SyncWorker.java:704)
    at mz.co.cloud.dumbo.syncmechanism.SyncWorker.pushNextUpdatedRow(SyncWorker.java:1020)
    at mz.co.cloud.dumbo.syncmechanism.SyncWorker.pushNextEntityUpdatedRows(SyncWorker.java:704)
    at mz.co.cloud.dumbo.syncmechanism.SyncWorker.pushNextUpdatedRow(SyncWorker.java:1020)
    at mz.co.cloud.dumbo.syncmechanism.SyncWorker.pushNextEntityUpdatedRows(SyncWorker.java:704)
    at mz.co.cloud.dumbo.syncmechanism.SyncWorker.pushNextUpdatedRow(SyncWorker.java:1020)
    at mz.co.cloud.dumbo.syncmechanism.SyncWorker.pushNextEntityUpdatedRows(SyncWorker.java:704)
    at mz.co.cloud.dumbo.syncmechanism.SyncWorker.pushNextUpdatedRow(SyncWorker.java:1020)
    at mz.co.cloud.dumbo.syncmechanism.SyncWorker.pushNextEntityUpdatedRows(SyncWorker.java:704)
    at mz.co.cloud.dumbo.syncmechanism.SyncWorker.pushNextUpdatedRow(SyncWorker.java:1020)
    at mz.co.cloud.dumbo.syncmechanism.SyncWorker.pushNextEntityUpdatedRows(SyncWorker.java:704)
    at mz.co.cloud.dumbo.syncmechanism.SyncWorker.pushNextUpdatedRow(SyncWorker.java:1020)
    at mz.co.cloud.dumbo.syncmechanism.SyncWorker.pushNextEntityUpdatedRows(SyncWorker.java:704)
    at mz.co.cloud.dumbo.syncmechanism.SyncWorker.pushData(SyncWorker.java:678)
    at mz.co.cloud.dumbo.syncmechanism.SyncWorker.startWork(SyncWorker.java:197)
    at mz.co.cloud.dumbo.syncmechanism.DumboSync$1.onMessage(DumboSync.java:213)
    at com.pier.PierClient$1.run(PierClient.java:268)
    at com.pier.core.WorkQueue$PoolWorker.run(WorkQueue.java:81)

Aucun commentaire:

Enregistrer un commentaire