0

I've run into some database trouble. Seems like, the first thing, I have to figure out is if the lock is table- or database-based. Can anyone tell me where to look for? Here's the relevant part from the stack trace:

at java.util.concurrent.locks.ReentrantLock$FairSync.tryAcquire(ReentrantLock.java:208)
at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquire(AbstractQueuedSynchronizer.java:1171)
at java.util.concurrent.locks.ReentrantLock$FairSync.lock(ReentrantLock.java:200)
at java.util.concurrent.locks.ReentrantLock.lock(ReentrantLock.java:261)
at android.database.sqlite.SQLiteDatabase.lock(SQLiteDatabase.java:378)
at android.database.sqlite.SQLiteDatabase.addSQLiteClosable(SQLiteDatabase.java:300)
at android.database.sqlite.SQLiteProgram.<init>(SQLiteProgram.java:65)
at android.database.sqlite.SQLiteQuery.<init>(SQLiteQuery.java:49)
at android.database.sqlite.SQLiteDirectCursorDriver.query(SQLiteDirectCursorDriver.java:42)
at android.database.sqlite.SQLiteDatabase.rawQueryWithFactory(SQLiteDatabase.java:1356)
at android.database.sqlite.SQLiteDatabase.rawQuery(SQLiteDatabase.java:1324)
at data.model.DeviceModel.getAll(DeviceModel.java:168)
at data.model.DeviceModel.desiredPositionOk(DeviceModel.java:368)
at unittest.classextensions.DeviceTestModel.desiredPositionOk(DeviceTestModel.java:18)
at data.model.DeviceModel.getActualPositionFromDesiredPosition(DeviceModel.java:347)
at unittest.classextensions.DeviceTestModel.getActualPositionFromDesiredPosition(DeviceTestModel.java:30)
at data.model.DeviceModel.update(DeviceModel.java:257)
at data.model.DeviceModel.compressPositionsKeepingVoidFor(DeviceModel.java:432)
at unittest.classextensions.DeviceTestModel.compressPositionsKeepingVoidFor(DeviceTestModel.java:26)
at data.model.DeviceModel.getActualPositionFromDesiredPosition(DeviceModel.java:357)
at unittest.classextensions.DeviceTestModel.getActualPositionFromDesiredPosition(DeviceTestModel.java:30)
at data.model.DeviceModel.update(DeviceModel.java:257)
at data.model.DeviceModel.compressPositionsKeepingVoidFor(DeviceModel.java:432)
at unittest.classextensions.DeviceTestModel.compressPositionsKeepingVoidFor(DeviceTestModel.java:26)
at data.model.DeviceModel.getActualPositionFromDesiredPosition(DeviceModel.java:357)
at unittest.classextensions.DeviceTestModel.getActualPositionFromDesiredPosition(DeviceTestModel.java:30)
at data.model.DeviceModel.update(DeviceModel.java:257)
at data.model.DeviceModel.compressPositionsKeepingVoidFor(DeviceModel.java:432)
at unittest.classextensions.DeviceTestModel.compressPositionsKeepingVoidFor(DeviceTestModel.java:26)
at data.model.DeviceModel.getActualPositionFromDesiredPosition(DeviceModel.java:357)
at unittest.classextensions.DeviceTestModel.getActualPositionFromDesiredPosition(DeviceTestModel.java:30)
at data.model.DeviceModel.update(DeviceModel.java:257)
at data.model.DeviceModel.compressPositionsKeepingVoidFor(DeviceModel.java:432)
at unittest.classextensions.DeviceTestModel.compressPositionsKeepingVoidFor(DeviceTestModel.java:26)
at data.model.DeviceModel.getActualPositionFromDesiredPosition(DeviceModel.java:357)
at unittest.classextensions.DeviceTestModel.getActualPositionFromDesiredPosition(DeviceTestModel.java:30)
at data.model.DeviceModel.update(DeviceModel.java:257)
at data.model.DeviceModel.compressPositionsKeepingVoidFor(DeviceModel.java:432)
at unittest.classextensions.DeviceTestModel.compressPositionsKeepingVoidFor(DeviceTestModel.java:26)
at data.model.DeviceModel.getActualPositionFromDesiredPosition(DeviceModel.java:357)
at unittest.classextensions.DeviceTestModel.getActualPositionFromDesiredPosition(DeviceTestModel.java:30)
at data.model.DeviceModel.update(DeviceModel.java:257)
at data.model.DeviceModel.compressPositionsKeepingVoidFor(DeviceModel.java:432)
at unittest.classextensions.DeviceTestModel.compressPositionsKeepingVoidFor(DeviceTestModel.java:26)
at data.model.DeviceModel.getActualPositionFromDesiredPosition(DeviceModel.java:357)
at unittest.classextensions.DeviceTestModel.getActualPositionFromDesiredPosition(DeviceTestModel.java:30)
at data.model.DeviceModel.update(DeviceModel.java:257)
at data.model.DeviceModel.compressPositionsKeepingVoidFor(DeviceModel.java:432)
at unittest.classextensions.DeviceTestModel.compressPositionsKeepingVoidFor(DeviceTestModel.java:26)
at data.model.DeviceModel.getActualPositionFromDesiredPosition(DeviceModel.java:357)
at unittest.classextensions.DeviceTestModel.getActualPositionFromDesiredPosition(DeviceTestModel.java:30)
at data.model.DeviceModel.update(DeviceModel.java:257)
at data.model.DeviceModel.compressPositionsKeepingVoidFor(DeviceModel.java:432)
at unittest.classextensions.DeviceTestModel.compressPositionsKeepingVoidFor(DeviceTestModel.java:26)
at data.model.DeviceModel.getActualPositionFromDesiredPosition(DeviceModel.java:357)
at unittest.classextensions.DeviceTestModel.getActualPositionFromDesiredPosition(DeviceTestModel.java:30)
at data.model.DeviceModel.update(DeviceModel.java:257)
at data.model.DeviceModel.compressPositionsKeepingVoidFor(DeviceModel.java:432)
at unittest.classextensions.DeviceTestModel.compressPositionsKeepingVoidFor(DeviceTestModel.java:26)
at data.model.DeviceModel.getActualPositionFromDesiredPosition(DeviceModel.java:357)
at unittest.classextensions.DeviceTestModel.getActualPositionFromDesiredPosition(DeviceTestModel.java:30)
at data.model.DeviceModel.update(DeviceModel.java:257)
at data.model.DeviceModel.compressPositionsKeepingVoidFor(DeviceModel.java:432)
at unittest.classextensions.DeviceTestModel.compressPositionsKeepingVoidFor(DeviceTestModel.java:26)
at data.model.DeviceModel.getActualPositionFromDesiredPosition(DeviceModel.java:357)
at unittest.classextensions.DeviceTestModel.getActualPositionFromDesiredPosition(DeviceTestModel.java:30)
at data.model.DeviceModel.update(DeviceModel.java:257)
at data.model.DeviceModel.compressPositionsKeepingVoidFor(DeviceModel.java:432)
at unittest.classextensions.DeviceTestModel.compressPositionsKeepingVoidFor(DeviceTestModel.java:26)
at data.model.DeviceModel.getActualPositionFromDesiredPosition(DeviceModel.java:357)
at unittest.classextensions.DeviceTestModel.getActualPositionFromDesiredPosition(DeviceTestModel.java:30)
at data.model.DeviceModel.update(DeviceModel.java:257)
at data.model.DeviceModel.compressPositionsKeepingVoidFor(DeviceModel.java:432)
at unittest.classextensions.DeviceTestModel.compressPositionsKeepingVoidFor(DeviceTestModel.java:26)
at data.model.DeviceModel.getActualPositionFromDesiredPosition(DeviceModel.java:357)
at unittest.classextensions.DeviceTestModel.getActualPositionFromDesiredPosition(DeviceTestModel.java:30)
at data.model.DeviceModel.update(DeviceModel.java:257)
at data.model.DeviceModel.compressPositionsKeepingVoidFor(DeviceModel.java:432)
at unittest.classextensions.DeviceTestModel.compressPositionsKeepingVoidFor(DeviceTestModel.java:26)
at data.model.DeviceModel.getActualPositionFromDesiredPosition(DeviceModel.java:357)
at unittest.classextensions.DeviceTestModel.getActualPositionFromDesiredPosition(DeviceTestModel.java:30)
at data.model.DeviceModel.update(DeviceModel.java:257)
at data.model.DeviceModel.compressPositionsKeepingVoidFor(DeviceModel.java:432)
at unittest.classextensions.DeviceTestModel.compressPositionsKeepingVoidFor(DeviceTestModel.java:26)
at data.model.DeviceModel.getActualPositionFromDesiredPosition(DeviceModel.java:357)
at unittest.classextensions.DeviceTestModel.getActualPositionFromDesiredPosition(DeviceTestModel.java:30)
at data.model.DeviceModel.update(DeviceModel.java:257)
at data.model.DeviceModel.compressPositionsKeepingVoidFor(DeviceModel.java:432)
at unittest.classextensions.DeviceTestModel.compressPositionsKeepingVoidFor(DeviceTestModel.java:26)
at data.model.DeviceModel.getActualPositionFromDesiredPosition(DeviceModel.java:357)
at unittest.classextensions.DeviceTestModel.getActualPositionFromDesiredPosition(DeviceTestModel.java:30)
at data.model.DeviceModel.update(DeviceModel.java:257)
at data.model.DeviceModel.compressPositionsKeepingVoidFor(DeviceModel.java:432)
at unittest.classextensions.DeviceTestModel.compressPositionsKeepingVoidFor(DeviceTestModel.java:26)
at data.model.DeviceModel.getActualPositionFromDesiredPosition(DeviceModel.java:357)
at unittest.classextensions.DeviceTestModel.getActualPositionFromDesiredPosition(DeviceTestModel.java:30)
at data.model.DeviceModel.update(DeviceModel.java:257)
at data.model.DeviceModel.compressPositionsKeepingVoidFor(DeviceModel.java:432)
at unittest.classextensions.DeviceTestModel.compressPositionsKeepingVoidFor(DeviceTestModel.java:26)
at data.model.DeviceModel.getActualPositionFromDesiredPosition(DeviceModel.java:357)
at unittest.classextensions.DeviceTestModel.getActualPositionFromDesiredPosition(DeviceTestModel.java:30)
at data.model.DeviceModel.update(DeviceModel.java:257)
at data.model.DeviceModel.compressPositionsKeepingVoidFor(DeviceModel.java:432)
at unittest.classextensions.DeviceTestModel.compressPositionsKeepingVoidFor(DeviceTestModel.java:26)
at data.model.DeviceModel.getActualPositionFromDesiredPosition(DeviceModel.java:357)
at unittest.classextensions.DeviceTestModel.getActualPositionFromDesiredPosition(DeviceTestModel.java:30)
at data.model.DeviceModel.update(DeviceModel.java:257)
at data.model.DeviceModel.compressPositionsKeepingVoidFor(DeviceModel.java:432)
at unittest.classextensions.DeviceTestModel.compressPositionsKeepingVoidFor(DeviceTestModel.java:26)
at data.model.DeviceModel.getActualPositionFromDesiredPosition(DeviceModel.java:357)
at unittest.classextensions.DeviceTestModel.getActualPositionFromDesiredPosition(DeviceTestModel.java:30)
at data.model.DeviceModel.update(DeviceModel.java:257)
at data.model.DeviceModel.compressPositionsKeepingVoidFor(DeviceModel.java:432)
at unittest.classextensions.DeviceTestModel.compressPositionsKeepingVoidFor(DeviceTestModel.java:26)
at data.model.DeviceModel.getActualPositionFromDesiredPosition(DeviceModel.java:357)
at unittest.classextensions.DeviceTestModel.getActualPositionFromDesiredPosition(DeviceTestModel.java:30)
at data.model.DeviceModel.update(DeviceModel.java:257)
at data.model.DeviceModel.compressPositionsKeepingVoidFor(DeviceModel.java:432)
at unittest.classextensions.DeviceTestModel.compressPositionsKeepingVoidFor(DeviceTestModel.java:26)
at data.model.DeviceModel.getActualPositionFromDesiredPosition(DeviceModel.java:357)
at unittest.classextensions.DeviceTestModel.getActualPositionFromDesiredPosition(DeviceTestModel.java:30)
at data.model.DeviceModel.update(DeviceModel.java:257)
at data.model.DeviceModel.compressPositionsKeepingVoidFor(DeviceModel.java:432)
at unittest.classextensions.DeviceTestModel.compressPositionsKeepingVoidFor(DeviceTestModel.java:26)
at data.model.DeviceModel.getActualPositionFromDesiredPosition(DeviceModel.java:357)
at unittest.classextensions.DeviceTestModel.getActualPositionFromDesiredPosition(DeviceTestModel.java:30)
at data.model.DeviceModel.update(DeviceModel.java:257)
at data.model.DeviceModel.compressPositionsKeepingVoidFor(DeviceModel.java:432)
at unittest.classextensions.DeviceTestModel.compressPositionsKeepingVoidFor(DeviceTestModel.java:26)
at data.model.DeviceModel.getActualPositionFromDesiredPosition(DeviceModel.java:357)
at unittest.classextensions.DeviceTestModel.getActualPositionFromDesiredPosition(DeviceTestModel.java:30)
at data.model.DeviceModel.update(DeviceModel.java:257)
at data.model.DeviceModel.compressPositionsKeepingVoidFor(DeviceModel.java:432)
at unittest.classextensions.DeviceTestModel.compressPositionsKeepingVoidFor(DeviceTestModel.java:26)
at data.model.DeviceModel.getActualPositionFromDesiredPosition(DeviceModel.java:357)
at unittest.classextensions.DeviceTestModel.getActualPositionFromDesiredPosition(DeviceTestModel.java:30)
at data.model.DeviceModel.update(DeviceModel.java:257)
at data.model.DeviceModel.compressPositionsKeepingVoidFor(DeviceModel.java:432)
at unittest.classextensions.DeviceTestModel.compressPositionsKeepingVoidFor(DeviceTestModel.java:26)
at data.model.DeviceModel.getActualPositionFromDesiredPosition(DeviceModel.java:357)
at unittest.classextensions.DeviceTestModel.getActualPositionFromDesiredPosition(DeviceTestModel.java:30)
at data.model.DeviceModel.update(DeviceModel.java:257)
at data.model.DeviceModel.compressPositionsKeepingVoidFor(DeviceModel.java:432)
at unittest.classextensions.DeviceTestModel.compressPositionsKeepingVoidFor(DeviceTestModel.java:26)
at data.model.DeviceModel.getActualPositionFromDesiredPosition(DeviceModel.java:357)
at unittest.classextensions.DeviceTestModel.getActualPositionFromDesiredPosition(DeviceTestModel.java:30)
at data.model.DeviceModel.update(DeviceModel.java:257)
at data.model.DeviceModel.compressPositionsKeepingVoidFor(DeviceModel.java:432)
at unittest.classextensions.DeviceTestModel.compressPositionsKeepingVoidFor(DeviceTestModel.java:26)
at data.model.DeviceModel.getActualPositionFromDesiredPosition(DeviceModel.java:357)
at unittest.classextensions.DeviceTestModel.getActualPositionFromDesiredPosition(DeviceTestModel.java:30)
at data.model.DeviceModel.update(DeviceModel.java:257)
at data.model.DeviceModel.compressPositionsKeepingVoidFor(DeviceModel.java:432)
at unittest.classextensions.DeviceTestModel.compressPositionsKeepingVoidFor(DeviceTestModel.java:26)
at data.model.DeviceModel.getActualPositionFromDesiredPosition(DeviceModel.java:357)
at unittest.classextensions.DeviceTestModel.getActualPositionFromDesiredPosition(DeviceTestModel.java:30)
at data.model.DeviceModel.update(DeviceModel.java:257)
at data.model.DeviceModel.compressPositionsKeepingVoidFor(DeviceModel.java:432)
at unittest.classextensions.DeviceTestModel.compressPositionsKeepingVoidFor(DeviceTestModel.java:26)
at data.model.DeviceModel.getActualPositionFromDesiredPosition(DeviceModel.java:357)
at unittest.classextensions.DeviceTestModel.getActualPositionFromDesiredPosition(DeviceTestModel.java:30)
at data.model.DeviceModel.update(DeviceModel.java:257)
at data.model.DeviceModel.compressPositionsKeepingVoidFor(DeviceModel.java:432)
at unittest.classextensions.DeviceTestModel.compressPositionsKeepingVoidFor(DeviceTestModel.java:26)
at data.model.DeviceModel.getActualPositionFromDesiredPosition(DeviceModel.java:357)
at unittest.classextensions.DeviceTestModel.getActualPositionFromDesiredPosition(DeviceTestModel.java:30)
at data.model.DeviceModel.update(DeviceModel.java:257)
at data.model.DeviceModel.compressPositionsKeepingVoidFor(DeviceModel.java:432)
at unittest.classextensions.DeviceTestModel.compressPositionsKeepingVoidFor(DeviceTestModel.java:26)
at data.model.DeviceModel.getActualPositionFromDesiredPosition(DeviceModel.java:357)
at unittest.classextensions.DeviceTestModel.getActualPositionFromDesiredPosition(DeviceTestModel.java:30)
at data.model.DeviceModel.update(DeviceModel.java:257)
at data.model.DeviceModel.compressPositionsKeepingVoidFor(DeviceModel.java:432)
at unittest.classextensions.DeviceTestModel.compressPositionsKeepingVoidFor(DeviceTestModel.java:26)
at data.model.DeviceModel.getActualPositionFromDesiredPosition(DeviceModel.java:357)
at unittest.classextensions.DeviceTestModel.getActualPositionFromDesiredPosition(DeviceTestModel.java:30)
at data.model.DeviceModel.update(DeviceModel.java:257)
at data.model.DeviceModel.compressPositionsKeepingVoidFor(DeviceModel.java:432)
at unittest.classextensions.DeviceTestModel.compressPositionsKeepingVoidFor(DeviceTestModel.java:26)
at data.model.DeviceModel.getActualPositionFromDesiredPosition(DeviceModel.java:357)
at unittest.classextensions.DeviceTestModel.getActualPositionFromDesiredPosition(DeviceTestModel.java:30)
at data.model.DeviceModel.update(DeviceModel.java:257)
at data.model.DeviceModel.compressPositionsKeepingVoidFor(DeviceModel.java:432)
at unittest.classextensions.DeviceTestModel.compressPositionsKeepingVoidFor(DeviceTestModel.java:26)
at data.model.DeviceModel.getActualPositionFromDesiredPosition(DeviceModel.java:357)
at unittest.classextensions.DeviceTestModel.getActualPositionFromDesiredPosition(DeviceTestModel.java:30)
at data.model.DeviceModel.update(DeviceModel.java:257)
at data.model.DeviceModel.compressPositionsKeepingVoidFor(DeviceModel.java:432)
at unittest.classextensions.DeviceTestModel.compressPositionsKeepingVoidFor(DeviceTestModel.java:26)
at data.model.DeviceModel.getActualPositionFromDesiredPosition(DeviceModel.java:357)
at unittest.classextensions.DeviceTestModel.getActualPositionFromDesiredPosition(DeviceTestModel.java:30)
at data.model.DeviceModel.update(DeviceModel.java:257)
at data.model.DeviceModel.compressPositionsKeepingVoidFor(DeviceModel.java:432)
at unittest.classextensions.DeviceTestModel.compressPositionsKeepingVoidFor(DeviceTestModel.java:26)
at data.model.DeviceModel.getActualPositionFromDesiredPosition(DeviceModel.java:357)
at unittest.classextensions.DeviceTestModel.getActualPositionFromDesiredPosition(DeviceTestModel.java:30)
at data.model.DeviceModel.update(DeviceModel.java:257)
at data.model.DeviceModel.compressPositionsKeepingVoidFor(DeviceModel.java:432)
at unittest.classextensions.DeviceTestModel.compressPositionsKeepingVoidFor(DeviceTestModel.java:26)
at data.model.DeviceModel.getActualPositionFromDesiredPosition(DeviceModel.java:357)
at unittest.classextensions.DeviceTestModel.getActualPositionFromDesiredPosition(DeviceTestModel.java:30)
at data.model.DeviceModel.update(DeviceModel.java:257)
at data.model.DeviceModel.compressPositionsKeepingVoidFor(DeviceModel.java:432)
at unittest.classextensions.DeviceTestModel.compressPositionsKeepingVoidFor(DeviceTestModel.java:26)
at data.model.DeviceModel.getActualPositionFromDesiredPosition(DeviceModel.java:357)
at unittest.classextensions.DeviceTestModel.getActualPositionFromDesiredPosition(DeviceTestModel.java:30)
at data.model.DeviceModel.update(DeviceModel.java:257)
at data.model.DeviceModel.compressPositionsKeepingVoidFor(DeviceModel.java:432)
at unittest.classextensions.DeviceTestModel.compressPositionsKeepingVoidFor(DeviceTestModel.java:26)
at data.model.DeviceModel.getActualPositionFromDesiredPosition(DeviceModel.java:357)
at unittest.classextensions.DeviceTestModel.getActualPositionFromDesiredPosition(DeviceTestModel.java:30)
at data.model.DeviceModel.update(DeviceModel.java:257)
at data.model.DeviceModel.compressPositionsKeepingVoidFor(DeviceModel.java:432)
at unittest.classextensions.DeviceTestModel.compressPositionsKeepingVoidFor(DeviceTestModel.java:26)
at data.model.DeviceModel.getActualPositionFromDesiredPosition(DeviceModel.java:357)
at unittest.classextensions.DeviceTestModel.getActualPositionFromDesiredPosition(DeviceTestModel.java:30)
at data.model.DeviceModel.update(DeviceModel.java:257)
at data.model.DeviceModel.compressPositionsKeepingVoidFor(DeviceModel.java:432)
at unittest.classextensions.DeviceTestModel.compressPositionsKeepingVoidFor(DeviceTestModel.java:26)
at data.model.DeviceModel.getActualPositionFromDesiredPosition(DeviceModel.java:357)
at unittest.classextensions.DeviceTestModel.getActualPositionFromDesiredPosition(DeviceTestModel.java:30)
at data.model.DeviceModel.update(DeviceModel.java:257)
at data.model.DeviceModel.compressPositionsKeepingVoidFor(DeviceModel.java:432)
at unittest.classextensions.DeviceTestModel.compressPositionsKeepingVoidFor(DeviceTestModel.java:26)
at data.model.DeviceModel.getActualPositionFromDesiredPosition(DeviceModel.java:357)
at unittest.classextensions.DeviceTestModel.getActualPositionFromDesiredPosition(DeviceTestModel.java:30)
at data.model.DeviceModel.update(DeviceModel.java:257)
at data.model.DeviceModel.compressPositionsKeepingVoidFor(DeviceModel.java:432)
at unittest.classextensions.DeviceTestModel.compressPositionsKeepingVoidFor(DeviceTestModel.java:26)
at data.model.DeviceModel.getActualPositionFromDesiredPosition(DeviceModel.java:357)
at unittest.classextensions.DeviceTestModel.getActualPositionFromDesiredPosition(DeviceTestModel.java:30)
at data.model.DeviceModel.update(DeviceModel.java:257)
at data.model.DeviceModel.compressPositionsKeepingVoidFor(DeviceModel.java:432)
at unittest.classextensions.DeviceTestModel.compressPositionsKeepingVoidFor(DeviceTestModel.java:26)
at data.model.DeviceModel.getActualPositionFromDesiredPosition(DeviceModel.java:357)
at unittest.classextensions.DeviceTestModel.getActualPositionFromDesiredPosition(DeviceTestModel.java:30)
at data.model.DeviceModel.update(DeviceModel.java:257)
at data.model.DeviceModel.compressPositionsKeepingVoidFor(DeviceModel.java:432)
at unittest.classextensions.DeviceTestModel.compressPositionsKeepingVoidFor(DeviceTestModel.java:26)
at data.model.DeviceModel.getActualPositionFromDesiredPosition(DeviceModel.java:357)
at unittest.classextensions.DeviceTestModel.getActualPositionFromDesiredPosition(DeviceTestModel.java:30)
at data.model.DeviceModel.update(DeviceModel.java:257)
at data.model.DeviceModel.compressPositionsKeepingVoidFor(DeviceModel.java:432)
at unittest.classextensions.DeviceTestModel.compressPositionsKeepingVoidFor(DeviceTestModel.java:26)
at data.model.DeviceModel.getActualPositionFromDesiredPosition(DeviceModel.java:357)
at unittest.classextensions.DeviceTestModel.getActualPositionFromDesiredPosition(DeviceTestModel.java:30)
at data.model.DeviceModel.update(DeviceModel.java:257)
at data.model.DeviceModel.compressPositionsKeepingVoidFor(DeviceModel.java:432)
at unittest.classextensions.DeviceTestModel.compressPositionsKeepingVoidFor(DeviceTestModel.java:26)
at data.model.DeviceModel.getActualPositionFromDesiredPosition(DeviceModel.java:357)
at unittest.classextensions.DeviceTestModel.getActualPositionFromDesiredPosition(DeviceTestModel.java:30)
at data.model.DeviceModel.update(DeviceModel.java:257)
at unittest.DeviceModelTest.testUpdateDevice(DeviceModelTest.java:256)
at java.lang.reflect.Method.invokeNative(Native Method)
at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:169)
at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:154)
at android.test.InstrumentationTestRunner.onStart(InstrumentationTestRunner.java:529)
at android.app.Instrumentation$InstrumentationThread.run(Instrumentation.java:1448)
Marek Sebera
  • 39,650
  • 37
  • 158
  • 244
Marcus Toepper
  • 2,403
  • 4
  • 27
  • 42
  • Looks like you need to post more of the exception and explain your problem a bit more. Right now it seems to me that you are asking too specific a question. – Gray Jul 25 '12 at 15:29
  • maybe, I've run into a loop somewhere. Is there any plugin for Eclipse to detect those? – Marcus Toepper Jul 25 '12 at 15:38
  • Do you write to the database from other threads than the UI thread (via AsyncTask for example)? How do you use SQLiteDatabase (directly or with SQLiteOpenHelper)? How do you open, store, retrieve the database connection object? How do you close the database connection? When in your Activity / app life cycle do you open and close the database connection? Are there any threads trying to write to your database concurrently (a Service for example)? Which Android API level are you testing here? – tiguchi Jul 25 '12 at 15:46
  • I'm developing on API lvl 10. So far, in this project, I haven't started working on the UI. There is some network-related stuff, I've threaded, but that's currently not in use. At the moment, I'm only working on everything around the model, which has a base model, extending sqlite-open-helper. The unit tests have worked fine so far, but after introducing some methods to change positions of objects around, I suddenly get the above result. – Marcus Toepper Jul 25 '12 at 15:48
  • @MarcusToepper What about the life cycle: when do you open and close the SQLiteDatabase connection? Do you open the same database multiple times? Do you use transactions with beginTransaction and endTransaction? By the way, your updated stack trace really looks like some recursion problem. Could you post the methods: compressPositionsKeepingVoidFor and getActualPositionFromDesiredPosition? – tiguchi Jul 25 '12 at 15:53
  • Are you referring to the best practices, mentioned here: http://stackoverflow.com/questions/2493331/what-are-the-best-practices-for-sqlite-on-android ? Maybe, I should go through these in detail, first. – Marcus Toepper Jul 25 '12 at 15:56
  • Definitely, otherwise you will run into various problems with SQLite. In worst case it means data loss / corruption. In more current Android versions it can lead to database locked exceptions. – tiguchi Jul 25 '12 at 15:58
  • ok thnx, I'll check it out and report back ;) – Marcus Toepper Jul 25 '12 at 16:59

1 Answers1

0

Problem found! In fact, it had nothing to do with the database-operatio, but was a simple bad recursion. Thanx anyway for the thoughts, based on your comments, I will go through some SqliteOpenHelper-docu.

Marcus Toepper
  • 2,403
  • 4
  • 27
  • 42