Error on creating database


#1

I notice that sometime when I try to call SQLiteOpenHelper.getWriteableDatabase() I got an error but sometime I don’t. Does it have anything to do a with a password length or password format I put in getWriteableDatabase() method since the password is auto generate with special character.By the way here is the log of the error.


11-23 05:42:11.160: E/AndroidRuntime(12467): net.sqlcipher.database.SQLiteException: not an error
11-23 05:42:11.160: E/AndroidRuntime(12467):     at net.sqlcipher.database.SQLiteDatabase.dbopen(Native Method)
11-23 05:42:11.160: E/AndroidRuntime(12467):     at net.sqlcipher.database.SQLiteDatabase.(SQLiteDatabase.java:1948)
11-23 05:42:11.160: E/AndroidRuntime(12467):     at net.sqlcipher.database.SQLiteDatabase.openDatabase(SQLiteDatabase.java:881)
11-23 05:42:11.160: E/AndroidRuntime(12467):     at net.sqlcipher.database.SQLiteDatabase.openOrCreateDatabase(SQLiteDatabase.java:913)
11-23 05:42:11.160: E/AndroidRuntime(12467):     at net.sqlcipher.database.SQLiteOpenHelper.getWritableDatabase(SQLiteOpenHelper.java:132)
11-23 05:42:11.160: E/AndroidRuntime(12467):     at net.sqlcipher.database.SQLiteOpenHelper.getWritableDatabase(SQLiteOpenHelper.java:99)

#2

Hi @DarkSeeker

Is this something that you can reproduce consistently? Are you able to identify what password you are using which is causing the issue?


#3

I don’t know if you can call it consistently but on average it happen out of every 20 time.Password which is used is “z~?Z}|Vy&Ljce8.wW}Q~@?0-B-;7X%sNZZC)P)={dy)N_SSNUEJH”. I need some kind of solution for it. The actual code which error happen on is sometime like this. I am also interested in why “net.sqlcipher.database.SQLiteException: not an error” is shown.


public void foo(String password){
net.sqlcipher.database.SQLiteDatabase encryptedDatabase=new SQLCiperDatabaseCreator(context, databaseName, null, 1, SQL)
                .getWritableDatabase(password)
}
public class SQLCiperDatabaseCreator extends
        net.sqlcipher.database.SQLiteOpenHelper {

    private String SQL;

    public SQLCiperDatabaseCreator(Context context, String name,
            net.sqlcipher.database.SQLiteDatabase.CursorFactory factory,
            int version, String SQL) {
        super(context, name, factory, version);
        // TODO Auto-generated constructor stub

        this.SQL = SQL;

    }

    @Override
    public void onCreate(net.sqlcipher.database.SQLiteDatabase encryptedDatabase) {
        // TODO Auto-generated method stub
        if (null != SQL && SQL.trim().length() > 0) {
            encryptedDatabase.execSQL(SQL);
        }
    }

    @Override
    public void onUpgrade(
            net.sqlcipher.database.SQLiteDatabase encryptedDatabase, int arg1,
            int arg2) {
        // TODO Auto-generated method stub

    }
}

#4

Hi @DarkSeeker,

Does it occur on a specific device/emulator? It may be helpful to try
creating a single test case within the SQLCipher for Android test suite
[1] to see if you can assembly the scenario that is the cause.

[1] https://github.com/sqlcipher/sqlcipher-android-tests


#5

Hello @developernotes,

When I remove special character in the password (change password generator code) and limit the maximum password size to “50”. Everything work fine.But I will post again if the error occur again , thanks.