@@ -119,7 +119,7 @@ public void changePassword(char[] password) throws SQLiteException {
119
119
if (!isOpen ()) {
120
120
throw new SQLiteException ("database not open" );
121
121
}
122
- native_rekey (String .valueOf (password ));
122
+ native_rekey (password == null ? null : String .valueOf (password ));
123
123
}
124
124
125
125
private static void loadICUData (Context context , File workingDir ) {
@@ -294,6 +294,11 @@ public static synchronized void loadLibs (Context context, File workingDir) {
294
294
*/
295
295
public static final int CREATE_IF_NECESSARY = 0x10000000 ; // update native code if changing
296
296
297
+ /**
298
+ * SQLite memory database name
299
+ */
300
+ public static final String MEMORY = ":memory:" ;
301
+
297
302
/**
298
303
* Indicates whether the most-recently started transaction has been marked as successful.
299
304
*/
@@ -959,7 +964,7 @@ public Cursor newCursor(SQLiteDatabase db,
959
964
* @throws IllegalArgumentException if the database path is null
960
965
*/
961
966
public static SQLiteDatabase openDatabase (String path , String password , CursorFactory factory , int flags ) {
962
- return openDatabase (path , password . toCharArray () , factory , flags , null );
967
+ return openDatabase (path , password , factory , flags , null );
963
968
}
964
969
965
970
/**
@@ -981,7 +986,7 @@ public static SQLiteDatabase openDatabase(String path, String password, CursorFa
981
986
* @throws IllegalArgumentException if the database path is null
982
987
*/
983
988
public static SQLiteDatabase openDatabase (String path , char [] password , CursorFactory factory , int flags ) {
984
- return openDatabase (path , password , factory , flags , null );
989
+ return openDatabase (path , password , factory , flags , null , null );
985
990
}
986
991
987
992
/**
@@ -1005,7 +1010,7 @@ public static SQLiteDatabase openDatabase(String path, char[] password, CursorFa
1005
1010
* @throws IllegalArgumentException if the database path is null
1006
1011
*/
1007
1012
public static SQLiteDatabase openDatabase (String path , String password , CursorFactory factory , int flags , SQLiteDatabaseHook hook ) {
1008
- return openDatabase (path , password . toCharArray () , factory , flags , hook );
1013
+ return openDatabase (path , password , factory , flags , hook , null );
1009
1014
}
1010
1015
1011
1016
/**
@@ -1029,7 +1034,7 @@ public static SQLiteDatabase openDatabase(String path, String password, CursorFa
1029
1034
* @throws IllegalArgumentException if the database path is null
1030
1035
*/
1031
1036
public static SQLiteDatabase openDatabase (String path , char [] password , CursorFactory factory , int flags , SQLiteDatabaseHook hook ) {
1032
- return openDatabase (path , password , factory , flags , hook , new DefaultDatabaseErrorHandler () );
1037
+ return openDatabase (path , password , factory , flags , hook , null );
1033
1038
}
1034
1039
1035
1040
/**
@@ -1056,7 +1061,7 @@ public static SQLiteDatabase openDatabase(String path, char[] password, CursorFa
1056
1061
*/
1057
1062
public static SQLiteDatabase openDatabase (String path , String password , CursorFactory factory , int flags ,
1058
1063
SQLiteDatabaseHook hook , DatabaseErrorHandler errorHandler ) {
1059
- return openDatabase (path , password .toCharArray (), factory , flags , hook , errorHandler );
1064
+ return openDatabase (path , password == null ? null : password .toCharArray (), factory , flags , hook , errorHandler );
1060
1065
}
1061
1066
1062
1067
/**
@@ -1084,10 +1089,11 @@ public static SQLiteDatabase openDatabase(String path, String password, CursorFa
1084
1089
public static SQLiteDatabase openDatabase (String path , char [] password , CursorFactory factory , int flags ,
1085
1090
SQLiteDatabaseHook hook , DatabaseErrorHandler errorHandler ) {
1086
1091
SQLiteDatabase sqliteDatabase = null ;
1092
+ DatabaseErrorHandler myErrorHandler = (errorHandler != null ) ? errorHandler : new DefaultDatabaseErrorHandler ();
1087
1093
1088
1094
try {
1089
1095
// Open the database.
1090
- sqliteDatabase = new SQLiteDatabase (path , factory , flags , errorHandler );
1096
+ sqliteDatabase = new SQLiteDatabase (path , factory , flags , myErrorHandler );
1091
1097
sqliteDatabase .openDatabaseInternal (password , hook );
1092
1098
} catch (SQLiteDatabaseCorruptException e ) {
1093
1099
// Try to recover from this, if possible.
@@ -1097,10 +1103,10 @@ public static SQLiteDatabase openDatabase(String path, char[] password, CursorFa
1097
1103
// NOTE: if this errorHandler.onCorruption() throws the exception _should_
1098
1104
// bubble back to the original caller.
1099
1105
// DefaultDatabaseErrorHandler deletes the corrupt file, EXCEPT for memory database
1100
- errorHandler .onCorruption (sqliteDatabase );
1106
+ myErrorHandler .onCorruption (sqliteDatabase );
1101
1107
1102
1108
// try *once* again:
1103
- sqliteDatabase = new SQLiteDatabase (path , factory , flags , errorHandler );
1109
+ sqliteDatabase = new SQLiteDatabase (path , factory , flags , myErrorHandler );
1104
1110
sqliteDatabase .openDatabaseInternal (password , hook );
1105
1111
}
1106
1112
@@ -1122,7 +1128,7 @@ public static SQLiteDatabase openDatabase(String path, char[] password, CursorFa
1122
1128
* Equivalent to openDatabase(file.getPath(), password, factory, CREATE_IF_NECESSARY, databaseHook).
1123
1129
*/
1124
1130
public static SQLiteDatabase openOrCreateDatabase (File file , String password , CursorFactory factory , SQLiteDatabaseHook databaseHook ) {
1125
- return openOrCreateDatabase (file . getPath () , password , factory , databaseHook );
1131
+ return openOrCreateDatabase (file , password , factory , databaseHook , null );
1126
1132
}
1127
1133
1128
1134
/**
@@ -1137,12 +1143,12 @@ public static SQLiteDatabase openOrCreateDatabase(String path, String password,
1137
1143
*/
1138
1144
public static SQLiteDatabase openOrCreateDatabase (File file , String password , CursorFactory factory , SQLiteDatabaseHook databaseHook ,
1139
1145
DatabaseErrorHandler errorHandler ) {
1140
- return openDatabase (file .getPath (), password . toCharArray () , factory , CREATE_IF_NECESSARY , databaseHook , errorHandler );
1146
+ return openOrCreateDatabase (file == null ? null : file .getPath (), password , factory , databaseHook , errorHandler );
1141
1147
}
1142
1148
1143
1149
public static SQLiteDatabase openOrCreateDatabase (String path , String password , CursorFactory factory , SQLiteDatabaseHook databaseHook ,
1144
1150
DatabaseErrorHandler errorHandler ) {
1145
- return openDatabase (path , password .toCharArray (), factory , CREATE_IF_NECESSARY , databaseHook , errorHandler );
1151
+ return openDatabase (path , password == null ? null : password .toCharArray (), factory , CREATE_IF_NECESSARY , databaseHook , errorHandler );
1146
1152
}
1147
1153
1148
1154
public static SQLiteDatabase openOrCreateDatabase (String path , char [] password , CursorFactory factory , SQLiteDatabaseHook databaseHook ) {
@@ -1158,14 +1164,14 @@ public static SQLiteDatabase openOrCreateDatabase(String path, char[] password,
1158
1164
* Equivalent to openDatabase(file.getPath(), password, factory, CREATE_IF_NECESSARY).
1159
1165
*/
1160
1166
public static SQLiteDatabase openOrCreateDatabase (File file , String password , CursorFactory factory ) {
1161
- return openOrCreateDatabase (file . getPath () , password , factory , null );
1167
+ return openOrCreateDatabase (file , password , factory , null );
1162
1168
}
1163
1169
1164
1170
/**
1165
1171
* Equivalent to openDatabase(path, password, factory, CREATE_IF_NECESSARY).
1166
1172
*/
1167
1173
public static SQLiteDatabase openOrCreateDatabase (String path , String password , CursorFactory factory ) {
1168
- return openDatabase (path , password . toCharArray () , factory , CREATE_IF_NECESSARY , null );
1174
+ return openDatabase (path , password , factory , CREATE_IF_NECESSARY , null );
1169
1175
}
1170
1176
1171
1177
/**
@@ -1192,7 +1198,7 @@ public static SQLiteDatabase openOrCreateDatabase(String path, char[] password,
1192
1198
*/
1193
1199
public static SQLiteDatabase create (CursorFactory factory , String password ) {
1194
1200
// This is a magic string with special meaning for SQLite.
1195
- return openDatabase (":memory:" , password .toCharArray (), factory , CREATE_IF_NECESSARY );
1201
+ return openDatabase (MEMORY , password == null ? null : password .toCharArray (), factory , CREATE_IF_NECESSARY );
1196
1202
}
1197
1203
1198
1204
/**
@@ -1211,7 +1217,7 @@ public static SQLiteDatabase create(CursorFactory factory, String password) {
1211
1217
* @throws SQLiteException if the database cannot be opened
1212
1218
*/
1213
1219
public static SQLiteDatabase create (CursorFactory factory , char [] password ) {
1214
- return openDatabase (":memory:" , password , factory , CREATE_IF_NECESSARY );
1220
+ return openDatabase (MEMORY , password , factory , CREATE_IF_NECESSARY );
1215
1221
}
1216
1222
1217
1223
0 commit comments