lundi 18 avril 2016

Android SQLiteDatabaseLockedException in Warework framwork

When i am going to execute the following code

boolean islocaldb = false;

private class Offlilneproducts extends AsyncTask<Void, Void, Void> {
    protected void onPreExecute() {
        pDialog = new ProgressDialog(OfflineProductOreder.this);
        pDialog.setTitle("Please wait !");
        pDialog.setMessage("Loading Offline Products..");
        pDialog.setCancelable(false);
        pDialog.show();

    };

    @Override
    protected Void doInBackground(Void... arg0) {

        RDBMSView local_product;
        // TODO Auto-generated method stub
        try {
            if (ScopeContext.get("system") != null) {
                ScopeContext.remove("system", false, false);
            }

            ScopeFacade OfflineDB = ScopeFactory.createTemplate(getBaseContext(), "full", "system");
            // Get the object where to perform database operations.
            local_product = (RDBMSView) OfflineDB.getObject("relational-database");
            OfflineDB.log("Fatal message", LogServiceConstants.LOG_LEVEL_FATAL);
            if (local_product.isConnected()) {
                Log.e("RDBMS-DB", "Already Connected");
                local_product.beginTransaction();
                ResultRows lp = (ResultRows) local_product.executeQueryByName("select_products", null, -1, -1);
                String psl = null;
                int i = 0;
                while (lp.next()) {
                    psl = String.valueOf(i);
                    Category localcat = new Category(psl, lp.getString("P_CODE"), lp.getString("P_DESC"), 0,
                            lp.getString("COMM_TP"), lp.getString("COMM_VP"));
                    offlineproductList.add(localcat);

                    i++;
                    islocaldb = true;
                }
                local_product.disconnect();
            } else {
                Log.e("RDBMS-DB", "Connecting......");
                local_product.connect();
                local_product.beginTransaction();
                ResultRows lp = (ResultRows) local_product.executeQueryByName("select_products", null, -1, -1);
                String psl = null;
                int i = 0;
                while (lp.next()) {
                    psl = String.valueOf(i);
                    Category localcat = new Category(psl, lp.getString("P_CODE"), lp.getString("P_DESC"), 0,
                            lp.getString("COMM_TP"), lp.getString("COMM_VP"));
                    offlineproductList.add(localcat);

                    i++;
                    islocaldb = true;
                }
                local_product.disconnect();

            }
            ScopeContext.remove("OfflineDB", true, true);

        } catch (Exception e) {

            // TODO: handle exception
            e.printStackTrace();
            islocaldb = false;
            // Log messages in different levels.

        }
        return null;
    }

    @Override
    protected void onPostExecute(Void result) {
        // TODO Auto-generated method stub
        super.onPostExecute(result);
        if (pDialog.isShowing())
            pDialog.dismiss();
        populateSpinner();
    }

}

I am getting the following ERRORS:

04-18 15:37:41.603: E/SQLiteLog(14641): (5) database is locked 04-18 15:37:41.613: E/SQLiteDatabase(14641): Failed to open database '/data/data/com.opl.salematrix/databases/system'. 04-18 15:37:41.613: E/SQLiteDatabase(14641): android.database.sqlite.SQLiteDatabaseLockedException: database is locked (code 5): , while compiling: PRAGMA journal_mode 04-18 15:37:41.613: E/SQLiteDatabase(14641): at android.database.sqlite.SQLiteConnection.nativePrepareStatement(Native Method) 04-18 15:37:41.613: E/SQLiteDatabase(14641): at android.database.sqlite.SQLiteConnection.acquirePreparedStatement(SQLiteConnection.java:1112) 04-18 15:37:41.613: E/SQLiteDatabase(14641): at android.database.sqlite.SQLiteConnection.executeForString(SQLiteConnection.java:823) 04-18 15:37:41.613: E/SQLiteDatabase(14641): at android.database.sqlite.SQLiteConnection.setJournalMode(SQLiteConnection.java:509) 04-18 15:37:41.613: E/SQLiteDatabase(14641): at android.database.sqlite.SQLiteConnection.setWalModeFromConfiguration(SQLiteConnection.java:483) 04-18 15:37:41.613: E/SQLiteDatabase(14641): at android.database.sqlite.SQLiteConnection.open(SQLiteConnection.java:382) 04-18 15:37:41.613: E/SQLiteDatabase(14641): at android.database.sqlite.SQLiteConnection.open(SQLiteConnection.java:232) 04-18 15:37:41.613: E/SQLiteDatabase(14641): at android.database.sqlite.SQLiteConnectionPool.openConnectionLocked(SQLiteConnectionPool.java:512) 04-18 15:37:41.613: E/SQLiteDatabase(14641): at android.database.sqlite.SQLiteConnectionPool.open(SQLiteConnectionPool.java:206) 04-18 15:37:41.613: E/SQLiteDatabase(14641): at android.database.sqlite.SQLiteConnectionPool.open(SQLiteConnectionPool.java:178) 04-18 15:37:41.613: E/SQLiteDatabase(14641): at android.database.sqlite.SQLiteDatabase.openInner(SQLiteDatabase.java:888) 04-18 15:37:41.613: E/SQLiteDatabase(14641): at android.database.sqlite.SQLiteDatabase.open(SQLiteDatabase.java:858) 04-18 15:37:41.613: E/SQLiteDatabase(14641): at android.database.sqlite.SQLiteDatabase.openDatabase(SQLiteDatabase.java:695) 04-18 15:37:41.613: E/SQLiteDatabase(14641): at android.app.ContextImpl.openOrCreateDatabase(ContextImpl.java:1123) 04-18 15:37:41.613: E/SQLiteDatabase(14641): at android.database.sqlite.SQLiteOpenHelper.getDatabaseLocked(SQLiteOpenHelper.java:224) 04-18 15:37:41.613: E/SQLiteDatabase(14641): at android.database.sqlite.SQLiteOpenHelper.getWritableDatabase(SQLiteOpenHelper.java:164) 04-18 15:37:41.613: E/SQLiteDatabase(14641): at com.warework.service.datastore.client.connector.AndroidSQLiteConnector.getClientConnection(AndroidSQLiteConnector.java:298) 04-18 15:37:41.613: E/SQLiteDatabase(14641): at com.warework.core.service.client.AbstractClient.connect(AbstractClient.java:230) 04-18 15:37:41.613: E/SQLiteDatabase(14641): at com.warework.service.datastore.DefaultView.connect(DefaultView.java:112) 04-18 15:37:41.613: E/SQLiteDatabase(14641): at com.warework.service.datastore.AbstractDatastoreView.connect(AbstractDatastoreView.java:79) 04-18 15:37:41.613: E/SQLiteDatabase(14641): at com.opl.salematrix.OfflineProductOreder$Offlilneproducts.doInBackground(OfflineProductOreder.java:596) 04-18 15:37:41.613: E/SQLiteDatabase(14641): at com.opl.salematrix.OfflineProductOreder$Offlilneproducts.doInBackground(OfflineProductOreder.java:1) 04-18 15:37:41.613: E/SQLiteDatabase(14641): at android.os.AsyncTask$2.call(AsyncTask.java:288) 04-18 15:37:41.613: E/SQLiteDatabase(14641): at java.util.concurrent.FutureTask.run(FutureTask.java:237) 04-18 15:37:41.613: E/SQLiteDatabase(14641): at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231) 04-18 15:37:41.613: E/SQLiteDatabase(14641): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112) 04-18 15:37:41.613: E/SQLiteDatabase(14641): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587) 04-18 15:37:41.613: E/SQLiteDatabase(14641): at java.lang.Thread.run(Thread.java:841)

Aucun commentaire:

Enregistrer un commentaire