Note that there are some explanatory texts on larger screens.

plurals
  1. POno such table exception
    primarykey
    data
    text
    <p>I have problem with accessing database. The funny thing is that it used to work well, but lately it started to show SQLiteException "no such table". It doesn't happen every time I start application, just every now and then and I can't see any specific setup which causes the problem. It is always related to the same table form_data in the same class RunForm though. I checked in adb that table and database do exist. Here is my createDB class public class createDB{</p> <pre><code>private static final String DATABASE_NAME = "mydatabase.db"; private static final String DB_PATH = "/data/data/com.mypackage/databases/"; private static final int DATABASE_VERSION = 2; private OpenHelper openHelper; private Context context; private SQLiteDatabase db; public createDB(Context ctx){ try{ this.context = ctx; openHelper = new OpenHelper(context); this.db = openHelper.getWritableDatabase(); } catch (IllegalStateException e){ Log.e("ILLEGALstateEXC","CAUGHT"); } } public SQLiteDatabase openDataBase(){ //Open the database String myPath = DB_PATH + DATABASE_NAME; try{ db = SQLiteDatabase.openDatabase(myPath, null, SQLiteDatabase.CREATE_IF_NECESSARY); }catch(Exception e){ Log.e("Opening database", e.toString()); } return db; } public boolean checkDataBase(){ SQLiteDatabase checkDB = null; try{ String myPath = DB_PATH + DATABASE_NAME; checkDB = SQLiteDatabase.openDatabase(myPath, null, SQLiteDatabase.OPEN_READONLY); }catch(SQLiteException e){ //database does't exist yet. checkDB = null; } if(checkDB != null){ checkDB.close(); } return checkDB != null ? true : false; } public void close() { openHelper.close(); } private static class OpenHelper extends SQLiteOpenHelper { OpenHelper(Context context) { super(context, DATABASE_NAME, null, DATABASE_VERSION); } @Override public void onCreate(SQLiteDatabase db) { // TODO Auto-generated method stub } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { // TODO Auto-generated method stub } } </code></pre> <p>In addition to it I created two classes (dataDB and structureDB) that contain operations on specific tables of the database (including creating the tables). They are basically same so I show only one which performs operation on form_data table which causes the problem.</p> <pre><code>public class dataDB{ private SQLiteDatabase db; private structureDB structure_db; private String TABLE_DATA = "form_data"; private String[] TABLE_DATA_FIELDS = {"id", "attr_id", "entity_id", "attr_value", "instance_number", "plot_number"}; private String TABLE_EXTRAS = "form_extras"; private String[] TABLE_EXTRAS_FIELDS = {"id", "name", "value", "instance_number", "plot_number"}; private String TABLE_VERSION = "form_version"; private String[] TABLE_VERSION_FIELDS = {"id", "name"}; public dataDB(SQLiteDatabase database){ Log.e("DATA_DB","CONSTRUCTOR"); this.db = dynamicTabs.db;//database; structure_db = new structureDB(this.db); this.createDataTables(); } public void createDataTables(){ db.execSQL( "create table if not exists " + TABLE_DATA + " (" + TABLE_DATA_FIELDS[0] + " integer primary key autoincrement, " + TABLE_DATA_FIELDS[1] + " integer, " + TABLE_DATA_FIELDS[2] + " integer, " + TABLE_DATA_FIELDS[3] + " text, " + TABLE_DATA_FIELDS[4] + " integer, " + TABLE_DATA_FIELDS[5] + " integer " + ");" ); db.execSQL( "create table if not exists " + TABLE_EXTRAS + " (" + TABLE_EXTRAS_FIELDS[0] + " integer primary key autoincrement, " + TABLE_EXTRAS_FIELDS[1] + " text, " + TABLE_EXTRAS_FIELDS[2] + " text, " + TABLE_EXTRAS_FIELDS[3] + " integer, " + TABLE_EXTRAS_FIELDS[4] + " integer " + ");" ); db.execSQL( "create table if not exists " + TABLE_VERSION + " (" + TABLE_VERSION_FIELDS[0] + " integer primary key autoincrement, " + TABLE_VERSION_FIELDS[1] + " text " + ");" ); } public void recreateDataTables(){ db.execSQL("drop table if exists " + TABLE_DATA); db.execSQL("drop table if exists " + TABLE_EXTRAS); db.execSQL("drop table if exists " + TABLE_VERSION); this.createDataTables(); } public void saveVersion (String name){ ContentValues initialValues = new ContentValues(); initialValues.put(TABLE_VERSION_FIELDS[1], name); this.insertQuery(TABLE_VERSION, initialValues); } public String getVersionName(){ String versionName = ""; Cursor mCursor; mCursor = db.rawQuery("select * from " + TABLE_VERSION, null); if (mCursor.moveToFirst()){ versionName = mCursor.getString(1); } mCursor.close(); return versionName; } public void saveExtraItem(String name, String value, int plotNo, int instanceNo){ ContentValues initialValues = new ContentValues(); initialValues.put(TABLE_EXTRAS_FIELDS[2], value); if (this.itemExists(name, plotNo, instanceNo)) { String condition = "" + TABLE_EXTRAS_FIELDS[4] + "='" + plotNo + "'" + " and " + TABLE_EXTRAS_FIELDS[1] + "='" + name + "'" + " and " + TABLE_EXTRAS_FIELDS[3] + "='" + instanceNo + "'"; this.updateQuery(TABLE_EXTRAS, initialValues, condition); } else{ initialValues.put(TABLE_EXTRAS_FIELDS[1], name); initialValues.put(TABLE_EXTRAS_FIELDS[3], instanceNo); initialValues.put(TABLE_EXTRAS_FIELDS[4], plotNo); this.insertQuery(TABLE_EXTRAS, initialValues); } } public String getExtraItem(String name, int plotNo, int instanceNo){ String itemValue = ""; Cursor mCursor = db.rawQuery("select * from " + TABLE_EXTRAS + " where " + TABLE_EXTRAS_FIELDS[1] + "='" + name + "'" + " and " + TABLE_EXTRAS_FIELDS[3] + "='" + instanceNo + "'" + " and " + TABLE_EXTRAS_FIELDS[4] + "='" + plotNo + "'", null); if (mCursor.moveToFirst()){ itemValue = mCursor.getString(mCursor.getColumnIndex(TABLE_EXTRAS_FIELDS[2])); } mCursor.close(); return itemValue; } public void cleanExtras(){ db.execSQL("drop table if exists " + TABLE_EXTRAS); db.execSQL( "create table if not exists " + TABLE_EXTRAS + " (" + TABLE_EXTRAS_FIELDS[0] + " integer primary key autoincrement, " + TABLE_EXTRAS_FIELDS[1] + " text, " + TABLE_EXTRAS_FIELDS[2] + " text, " + TABLE_EXTRAS_FIELDS[3] + " integer, " + TABLE_EXTRAS_FIELDS[4] + " integer " + ");" ); } public void saveItem(int structureIndex, int entityIndex, String value, int plotNo, int instanceNo){ ContentValues initialValues = new ContentValues(); initialValues.put(TABLE_DATA_FIELDS[3], value); if (this.itemExists(structureIndex, plotNo, instanceNo)) { String condition = "" + TABLE_DATA_FIELDS[5] + "='" + plotNo + "'" + " and " + TABLE_DATA_FIELDS[1] + "='" + structureIndex + "'" + " and " + TABLE_DATA_FIELDS[4] + "='" + instanceNo + "'"; this.updateQuery(TABLE_DATA, initialValues, condition); } else{ initialValues.put(TABLE_DATA_FIELDS[1], String.valueOf(structureIndex)); initialValues.put(TABLE_DATA_FIELDS[2], entityIndex); initialValues.put(TABLE_DATA_FIELDS[4], instanceNo); initialValues.put(TABLE_DATA_FIELDS[5], plotNo); this.insertQuery(TABLE_DATA, initialValues); } } public String loadItem(int structureIndex, int plotNo, int instanceNo){ String itemValue = ""; Cursor mCursor = db.rawQuery("select * from " + TABLE_DATA + " where " + TABLE_DATA_FIELDS[1] + "='" + structureIndex + "'" + " and " + TABLE_DATA_FIELDS[4] + "='" + instanceNo + "'" + " and " + TABLE_DATA_FIELDS[5] + "='" + plotNo + "'", null); if (mCursor.moveToFirst()){ itemValue = mCursor.getString(mCursor.getColumnIndex(TABLE_DATA_FIELDS[3])); } mCursor.close(); return itemValue; } public boolean itemExists(int structureIndex, int plotNo, int instanceNo){ boolean exists = false; Cursor mCursor = db.rawQuery("select count(*) from " + TABLE_DATA + " where " + TABLE_DATA_FIELDS[5] + "='" + plotNo + "'" + " and " + TABLE_DATA_FIELDS[1] + "='" + structureIndex + "'" + " and " + TABLE_DATA_FIELDS[4] + "='" + instanceNo + "'", null); if (mCursor.moveToFirst()){ exists = (mCursor.getInt(0)&gt;0)?true:false; } mCursor.close(); return exists; } public boolean itemExists(String name, int plotNo, int instanceNo){ boolean exists = false; Cursor mCursor = db.rawQuery("select count(*) from " + TABLE_EXTRAS + " where " + TABLE_EXTRAS_FIELDS[4] + "='" + plotNo + "'" + " and " + TABLE_EXTRAS_FIELDS[1] + "='" + name + "'" + " and " + TABLE_EXTRAS_FIELDS[3] + "='" + instanceNo + "'", null); if (mCursor.moveToFirst()){ exists = (mCursor.getInt(0)&gt;0)?true:false; } mCursor.close(); return exists; } private String getItemParent(int itemIndex){ String itemName = ""; Cursor mCursor = db.rawQuery("select * from " + TABLE_DATA + " where " + TABLE_DATA_FIELDS[0] + "='" + itemIndex + "'", null); if (mCursor.moveToFirst()){ itemName = structure_db.getFieldParent(mCursor.getInt(1)); } mCursor.close(); return itemName; } public String getItemValue(int itemIndex){ String itemValue = ""; Cursor mCursor = db.rawQuery("select * from " + TABLE_DATA + " where " + TABLE_DATA_FIELDS[0] + "='" + itemIndex + "'", null); if (mCursor.moveToFirst()){ itemValue = mCursor.getString(3); } mCursor.close(); return itemValue; } public String getItemType(int itemIndex){ String itemType = ""; int attributeID = -1; Cursor mCursor = db.rawQuery("select * from " + TABLE_DATA + " where " + TABLE_DATA_FIELDS[0] + "='" + itemIndex + "'", null); if (mCursor.moveToFirst()){ try{ attributeID = mCursor.getInt(1); itemType = structure_db.getFieldType(attributeID); }catch (Exception e){ } } mCursor.close(); return itemType; } public String getItemInstanceValue(int itemIndex, int instanceNo, int plotNo){ String itemValue = ""; Cursor mCursor = db.rawQuery("select * from " + TABLE_DATA + " where " + TABLE_DATA_FIELDS[1] + "='" + itemIndex + "'" + " and " + TABLE_DATA_FIELDS[4] + "='" + instanceNo + "'" + " and " + TABLE_DATA_FIELDS[5] + "='" + plotNo + "'", null); if (mCursor.moveToFirst()){ itemValue = mCursor.getString(3); } mCursor.close(); //Log.e("index"+itemIndex+"instance"+instanceNo, "plotNO"+plotNo+"value=="+itemValue+"==="); return itemValue; } private String getItemPath(int itemIndex){ String itemPath = ""; Cursor mCursor = db.rawQuery("select * from " + TABLE_DATA + " where " + TABLE_DATA_FIELDS[0] + "='" + itemIndex + "'", null); if (mCursor.moveToFirst()){ itemPath = structure_db.getFieldPath(mCursor.getInt(1)); } mCursor.close(); return itemPath; } private String getItemPlot(int itemIndex){ String itemPlot = ""; Cursor mCursor = db.rawQuery("select * from " + TABLE_DATA + " where " + TABLE_DATA_FIELDS[0] + "='" + itemIndex + "'", null); if (mCursor.moveToFirst()){ itemPlot = mCursor.getString(5); } mCursor.close(); return itemPlot; } public String getItemInstanceNumber(int itemIndex){ String itemInstanceNumber = ""; Cursor mCursor = db.rawQuery("select * from " + TABLE_DATA + " where " + TABLE_DATA_FIELDS[0] + "='" + itemIndex + "'", null); if (mCursor.moveToFirst()){ itemInstanceNumber = mCursor.getString(4); } mCursor.close(); return itemInstanceNumber; } public int getNumberOfInstances(int structureIndex, int plotNo){ int instanceNumber = -1; Cursor mCursor = db.rawQuery("select count(*) from " + TABLE_DATA + " where " + TABLE_DATA_FIELDS[1] + "='" + structureIndex + "'" + " and " + TABLE_DATA_FIELDS[5] + "='" + plotNo + "'", null); if (mCursor.moveToFirst()){ instanceNumber = mCursor.getInt(0); } mCursor.close(); return instanceNumber; } public String[] getItemData(int itemIndex){ Cursor mCursor = db.rawQuery("select id, attr_id from " + TABLE_DATA, null); if (mCursor.moveToFirst()) for (int i=1;i&lt;itemIndex;i++){ mCursor.moveToNext(); } itemIndex = mCursor.getInt(0); String[] itemData = new String[9]; itemData[0] = this.getItemName(itemIndex); itemData[1] = this.getItemParent(itemIndex); itemData[2] = this.getItemGrandparent(itemIndex); itemData[3] = this.getItemValue(itemIndex); itemData[4] = this.getItemPath(itemIndex); itemData[5] = this.getItemPlot(itemIndex); itemData[6] = this.getItemInstanceNumber(itemIndex); itemData[7] = this.getItemType(itemIndex); itemData[8] = String.valueOf(mCursor.getInt(1)); mCursor.close(); return itemData; } public void removePlotData(int plotNo){ int maxPlotNumber = 0; db.delete(TABLE_DATA, TABLE_DATA_FIELDS[5]+"="+plotNo, null); Cursor mCursor = db.rawQuery("select max("+TABLE_DATA_FIELDS[5]+") from " + TABLE_DATA, null); if (mCursor.moveToFirst()){ maxPlotNumber = mCursor.getInt(0); } mCursor.close(); ContentValues plotNumberValue; for (int i=plotNo+1;i&lt;=maxPlotNumber;i++){ plotNumberValue = new ContentValues(); plotNumberValue.put(TABLE_DATA_FIELDS[5],i-1); db.update(TABLE_DATA, plotNumberValue, TABLE_DATA_FIELDS[5] + "=" + i, null); } } private long insertQuery(String table, ContentValues values){ return db.insert(table, null, values); } private long updateQuery(String table, ContentValues values, String whereClause){ return db.update(table, values, whereClause, null); } } </code></pre> <p>I use it then in my activities across application like this:</p> <pre><code>createDB database = new createDB(this); db = database.openDataBase(); dataDB data_db = new dataDB(db); </code></pre> <p>Error is shown when I do in one of activities the following in onCreate method</p> <pre><code>protected void onCreate(Bundle savedInstanceState) { ... createDB database = new createDB(this); db = database.openDataBase(); structureDB structure_db = new structureDB(db); dataDB data_db = new dataDB(db); Intent i = new Intent(dynamicTabs.this,RunForm.class); ... } </code></pre> <p>and in onCreate of RunForm activity</p> <pre><code>protected void onCreate(Bundle savedInstanceState) { ... createDB database = new createDB(this); db = database.openDataBase(); structureDB structure_db = new structureDB(db); dataDB data_db = new dataDB(db); this.structure_db.getFieldLabel(fieldID) this.data_db.getItemInstanceValue(fieldID, 0, this.formPlotNo); ... } </code></pre> <p>Error is in the last line of the code when I try to select value from form_data table. The earlier queries using structureDB class work fine. Logcat shows following:</p> <pre><code> 05-13 18:19:49.047: I/dAWF(20223): dynamicTabs:onCreate 05-13 18:19:49.566: D/dalvikvm(20223): GC freed 13081 objects / 937960 bytes in 69ms 05-13 18:19:49.566: I/dalvikvm(20223): Uncaught exception thrown by finalizer (will be discarded): 05-13 18:19:49.566: I/dalvikvm(20223): Ljava/lang/IllegalStateException;: Finalizing cursor android.database.sqlite.SQLiteCursor@44eafea8 on null that has not been deactivated or closed 05-13 18:19:49.566: I/dalvikvm(20223): at android.database.sqlite.SQLiteCursor.finalize(SQLiteCursor.java:596) 05-13 18:19:49.566: I/dalvikvm(20223): at dalvik.system.NativeStart.run(Native Method) 05-13 18:19:49.576: I/dalvikvm(20223): Uncaught exception thrown by finalizer (will be discarded): 05-13 18:19:49.576: I/dalvikvm(20223): Ljava/lang/IllegalStateException;: Finalizing cursor android.database.sqlite.SQLiteCursor@44efb6b8 on null that has not been deactivated or closed 05-13 18:19:49.586: I/dalvikvm(20223): at android.database.sqlite.SQLiteCursor.finalize(SQLiteCursor.java:596) 05-13 18:19:49.586: I/dalvikvm(20223): at dalvik.system.NativeStart.run(Native Method) 05-13 18:19:49.626: E/Database(20223): Leak found 05-13 18:19:49.626: E/Database(20223): java.lang.IllegalStateException: /data/data/com.mypackage/databases/mydatabase.db SQLiteDatabase created and never closed 05-13 18:19:49.626: E/Database(20223): at android.database.sqlite.SQLiteDatabase.&lt;init&gt;(SQLiteDatabase.java:1695) 05-13 18:19:49.626: E/Database(20223): at android.database.sqlite.SQLiteDatabase.openDatabase(SQLiteDatabase.java:739) 05-13 18:19:49.626: E/Database(20223): at com.mypackage.ddatabase.createDB.openDataBase(createDB.java:45) 05-13 18:19:49.626: E/Database(20223): at com.mypackage.dform.RunForm.onCreate(RunForm.java:70) 05-13 18:19:49.626: E/Database(20223): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 05-13 18:19:49.626: E/Database(20223): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2459) 05-13 18:19:49.626: E/Database(20223): at android.app.ActivityThread.startActivityNow(ActivityThread.java:2335) 05-13 18:19:49.626: E/Database(20223): at android.app.LocalActivityManager.moveToState(LocalActivityManager.java:127) 05-13 18:19:49.626: E/Database(20223): at android.app.LocalActivityManager.startActivity(LocalActivityManager.java:339) 05-13 18:19:49.626: E/Database(20223): at android.widget.TabHost$IntentContentStrategy.getContentView(TabHost.java:648) 05-13 18:19:49.626: E/Database(20223): at android.widget.TabHost.setCurrentTab(TabHost.java:320) 05-13 18:19:49.626: E/Database(20223): at android.widget.TabHost.addTab(TabHost.java:213) 05-13 18:19:49.626: E/Database(20223): at com.mypackage.dawf.plotDynamicTabs.onCreate(plotDynamicTabs.java:108) 05-13 18:19:49.626: E/Database(20223): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 05-13 18:19:49.626: E/Database(20223): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2459) 05-13 18:19:49.626: E/Database(20223): at android.app.ActivityThread.startActivityNow(ActivityThread.java:2335) 05-13 18:19:49.626: E/Database(20223): at android.app.LocalActivityManager.moveToState(LocalActivityManager.java:127) 05-13 18:19:49.626: E/Database(20223): at android.app.LocalActivityManager.startActivity(LocalActivityManager.java:339) 05-13 18:19:49.626: E/Database(20223): at android.widget.TabHost$IntentContentStrategy.getContentView(TabHost.java:648) 05-13 18:19:49.626: E/Database(20223): at android.widget.TabHost.setCurrentTab(TabHost.java:320) 05-13 18:19:49.626: E/Database(20223): at android.widget.TabHost.addTab(TabHost.java:213) 05-13 18:19:49.626: E/Database(20223): at com.mypackage.dawf.dynamicTabs.onCreate(dynamicTabs.java:157) 05-13 18:19:49.626: E/Database(20223): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 05-13 18:19:49.626: E/Database(20223): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2459) 05-13 18:19:49.626: E/Database(20223): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2512) 05-13 18:19:49.626: E/Database(20223): at android.app.ActivityThread.access$2200(ActivityThread.java:119) 05-13 18:19:49.626: E/Database(20223): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1863) 05-13 18:19:49.626: E/Database(20223): at android.os.Handler.dispatchMessage(Handler.java:99) 05-13 18:19:49.626: E/Database(20223): at android.os.Looper.loop(Looper.java:123) 05-13 18:19:49.626: E/Database(20223): at android.app.ActivityThread.main(ActivityThread.java:4363) 05-13 18:19:49.626: E/Database(20223): at java.lang.reflect.Method.invokeNative(Native Method) 05-13 18:19:49.626: E/Database(20223): at java.lang.reflect.Method.invoke(Method.java:521) 05-13 18:19:49.626: E/Database(20223): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860) 05-13 18:19:49.626: E/Database(20223): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618) 05-13 18:19:49.626: E/Database(20223): at dalvik.system.NativeStart.main(Native Method) 05-13 18:19:49.686: E/Database(20223): Leak found 05-13 18:19:49.686: E/Database(20223): java.lang.IllegalStateException: /data/data/com.mypackage.dynamicAWF/databases/mydatabase.db SQLiteDatabase created and never closed 05-13 18:19:49.686: E/Database(20223): at android.database.sqlite.SQLiteDatabase.&lt;init&gt;(SQLiteDatabase.java:1695) 05-13 18:19:49.686: E/Database(20223): at android.database.sqlite.SQLiteDatabase.openDatabase(SQLiteDatabase.java:739) 05-13 18:19:49.686: E/Database(20223): at com.mypackage.ddatabase.createDB.openDataBase(createDB.java:45) 05-13 18:19:49.686: E/Database(20223): at com.mypackage.dawf.plotDynamicTabs.onCreate(plotDynamicTabs.java:80) 05-13 18:19:49.686: E/Database(20223): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 05-13 18:19:49.686: E/Database(20223): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2459) 05-13 18:19:49.686: E/Database(20223): at android.app.ActivityThread.startActivityNow(ActivityThread.java:2335) 05-13 18:19:49.686: E/Database(20223): at android.app.LocalActivityManager.moveToState(LocalActivityManager.java:127) 05-13 18:19:49.686: E/Database(20223): at android.app.LocalActivityManager.startActivity(LocalActivityManager.java:339) 05-13 18:19:49.686: E/Database(20223): at android.widget.TabHost$IntentContentStrategy.getContentView(TabHost.java:648) 05-13 18:19:49.686: E/Database(20223): at android.widget.TabHost.setCurrentTab(TabHost.java:320) 05-13 18:19:49.686: E/Database(20223): at android.widget.TabHost.addTab(TabHost.java:213) 05-13 18:19:49.686: E/Database(20223): at com.mypackage.dawf.dynamicTabs.onCreate(dynamicTabs.java:157) 05-13 18:19:49.686: E/Database(20223): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 05-13 18:19:49.686: E/Database(20223): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2459) 05-13 18:19:49.686: E/Database(20223): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2512) 05-13 18:19:49.686: E/Database(20223): at android.app.ActivityThread.access$2200(ActivityThread.java:119) 05-13 18:19:49.686: E/Database(20223): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1863) 05-13 18:19:49.686: E/Database(20223): at android.os.Handler.dispatchMessage(Handler.java:99) 05-13 18:19:49.686: E/Database(20223): at android.os.Looper.loop(Looper.java:123) 05-13 18:19:49.686: E/Database(20223): at android.app.ActivityThread.main(ActivityThread.java:4363) 05-13 18:19:49.686: E/Database(20223): at java.lang.reflect.Method.invokeNative(Native Method) 05-13 18:19:49.686: E/Database(20223): at java.lang.reflect.Method.invoke(Method.java:521) 05-13 18:19:49.686: E/Database(20223): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860) 05-13 18:19:49.686: E/Database(20223): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618) 05-13 18:19:49.686: E/Database(20223): at dalvik.system.NativeStart.main(Native Method) 05-13 18:19:49.717: E/Database(20223): Leak found 05-13 18:19:49.717: E/Database(20223): java.lang.IllegalStateException: /data/data/com.mypackage.dynamicAWF/databases/mydatabase.db SQLiteDatabase created and never closed 05-13 18:19:49.717: E/Database(20223): at android.database.sqlite.SQLiteDatabase.&lt;init&gt;(SQLiteDatabase.java:1695) 05-13 18:19:49.717: E/Database(20223): at android.database.sqlite.SQLiteDatabase.openDatabase(SQLiteDatabase.java:739) 05-13 18:19:49.717: E/Database(20223): at com.mypackage.ddatabase.createDB.openDataBase(createDB.java:45) 05-13 18:19:49.717: E/Database(20223): at com.mypackage.dawf.dynamicTabs.onCreate(dynamicTabs.java:100) 05-13 18:19:49.717: E/Database(20223): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 05-13 18:19:49.717: E/Database(20223): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2459) 05-13 18:19:49.717: E/Database(20223): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2512) 05-13 18:19:49.717: E/Database(20223): at android.app.ActivityThread.access$2200(ActivityThread.java:119) 05-13 18:19:49.717: E/Database(20223): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1863) 05-13 18:19:49.717: E/Database(20223): at android.os.Handler.dispatchMessage(Handler.java:99) 05-13 18:19:49.717: E/Database(20223): at android.os.Looper.loop(Looper.java:123) 05-13 18:19:49.717: E/Database(20223): at android.app.ActivityThread.main(ActivityThread.java:4363) 05-13 18:19:49.717: E/Database(20223): at java.lang.reflect.Method.invokeNative(Native Method) 05-13 18:19:49.717: E/Database(20223): at java.lang.reflect.Method.invoke(Method.java:521) 05-13 18:19:49.717: E/Database(20223): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860) 05-13 18:19:49.717: E/Database(20223): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618) 05-13 18:19:49.717: E/Database(20223): at dalvik.system.NativeStart.main(Native Method) 05-13 18:19:49.776: I/fileVERSIONname(20223): ==0.1 05-13 18:19:49.787: I/dbVERSIONname(20223): ==0.1 05-13 18:19:49.796: I/dAWF(20223): plotDynamicTabs:onCreate 05-13 18:19:49.897: E/currPLOTNo(20223): ==0 05-13 18:19:49.907: I/dAWF(20223): RunForm:onCreate 05-13 18:19:49.977: E/FORMplotNO(20223): ==0 05-13 18:19:50.097: E/currPLOTN1111(20223): ==0 05-13 18:19:50.107: I/dAWF(20223): RunForm:onResume 05-13 18:19:50.117: I/dAWF(20223): plotDynamicTabs:onResume 05-13 18:19:50.117: I/dAWF(20223): dynamicTabs:onResume 05-13 18:19:50.237: E/com.mypackage.dform.RunForm(20223): Error occurred in ProcessForm:no such table: form_data 05-13 18:19:50.237: W/System.err(20223): android.database.sqlite.SQLiteException: no such table: form_data 05-13 18:19:50.237: W/System.err(20223): at android.database.sqlite.SQLiteQuery.native_fill_window(Native Method) 05-13 18:19:50.237: W/System.err(20223): at android.database.sqlite.SQLiteQuery.fillWindow(SQLiteQuery.java:75) 05-13 18:19:50.237: W/System.err(20223): at android.database.sqlite.SQLiteCursor.fillWindow(SQLiteCursor.java:288) 05-13 18:19:50.247: W/System.err(20223): at android.database.sqlite.SQLiteCursor.getCount(SQLiteCursor.java:269) 05-13 18:19:50.247: W/System.err(20223): at android.database.AbstractCursor.moveToPosition(AbstractCursor.java:171) 05-13 18:19:50.247: W/System.err(20223): at android.database.AbstractCursor.moveToFirst(AbstractCursor.java:248) 05-13 18:19:50.247: W/System.err(20223): at com.mypackage.ddatabase.dataDB.getItemInstanceValue(dataDB.java:264) 05-13 18:19:50.247: W/System.err(20223): at com.mypackage.dform.RunForm.getFormData(RunForm.java:530) 05-13 18:19:50.247: W/System.err(20223): at com.mypackage.dform.RunForm.run(RunForm.java:563) 05-13 18:19:50.247: W/System.err(20223): at java.lang.Thread.run(Thread.java:1096) 05-13 18:19:50.807: I/ActivityManager(52): Displayed activity com.mypackage.dynamicAWF/com.mypackage.dawf.dynamicTabs: 1795 ms (total 1795 ms) 05-13 18:19:51.147: E/gralloc(52): [unregister] handle 0x4fe5b0 still locked (state=40000001) 05-13 18:19:56.057: D/dalvikvm(104): GC freed 334 objects / 15920 bytes in 150ms </code></pre> <p>I made some changes and get rid of IllegalStateException, but problem is still there and logs looks like this (database is already successfully read many times before, but still form_data table causes problems):</p> <pre><code>05-14 15:52:28.345: I/dAWF(455): dynamicTabs:onCreate 05-14 15:52:28.715: I/fileVERSIONname(455): ==0.1 05-14 15:52:28.725: I/dbVERSIONname(455): ==0.1 05-14 15:52:28.755: I/dAWF(455): plotDynamicTabs:onCreate 05-14 15:52:28.895: D/dalvikvm(455): GC freed 5524 objects / 349592 bytes in 68ms 05-14 15:52:28.935: I/dAWF(455): RunForm:onCreate 05-14 15:52:29.195: I/dAWF(455): RunForm:onResume 05-14 15:52:29.205: I/dAWF(455): plotDynamicTabs:onResume 05-14 15:52:29.205: I/dAWF(455): dynamicTabs:onResume 05-14 15:52:29.335: E/com.mypackage.android.dform.RunForm(455): Error occurred in ProcessForm:no such table: form_data 05-14 15:52:29.345: W/System.err(455): android.database.sqlite.SQLiteException: no such table: form_data 05-14 15:52:29.345: W/System.err(455): at android.database.sqlite.SQLiteQuery.native_fill_window(Native Method) 05-14 15:52:29.345: W/System.err(455): at android.database.sqlite.SQLiteQuery.fillWindow(SQLiteQuery.java:75) 05-14 15:52:29.345: W/System.err(455): at android.database.sqlite.SQLiteCursor.fillWindow(SQLiteCursor.java:288) 05-14 15:52:29.345: W/System.err(455): at android.database.sqlite.SQLiteCursor.getCount(SQLiteCursor.java:269) 05-14 15:52:29.345: W/System.err(455): at android.database.AbstractCursor.moveToPosition(AbstractCursor.java:171) 05-14 15:52:29.345: W/System.err(455): at android.database.AbstractCursor.moveToFirst(AbstractCursor.java:248) 05-14 15:52:29.345: W/System.err(455): at com.mypackage.android.ddatabase.dataDB.getItemInstanceValue(dataDB.java:264) 05-14 15:52:29.345: W/System.err(455): at com.mypackage.android.dform.RunForm.getFormData(RunForm.java:529) 05-14 15:52:29.345: W/System.err(455): at com.mypackage.and </code></pre>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload