1
votes

i am getting data from my Service and when trying to insert into TABLE i am getting exception....While my first row is correctly printing on Log and just after that error : error is on this LOC: db.execSQL(query); public class ProgramDBHelperActivity extends Activity {

Context context;
SQLiteDatabase db;


    private void getParametersData(String parameter)
            {
                try
            {
                String getParametersData_String  = ServerRequest1.sendRequest(url,parameter);
                String[] getParametersData_Str_Array = getParametersData_String.split("<br />");

                 for(int i=0;i<getParametersData_Str_Array.length;i++)
                 {
        Log.i("getParametersData_Str_Array :",getParametersData_Str_Array[i]);

    String query =  "INSERT  INTO parameterTable(ID,param_type,cash_code,param_description) " +  "VALUES ("+getParametersData_Str_Array[i]+");";
    Log.i("query result",""+query);
    db.execSQL(query);
    Log.i("news Save", "" + db);
   }
   }
   catch (JSONException e) 
   {
    errorMessage = getString(R.string.ExceptionGeneral);
  ExceptionHandler.logException(e);
  e.printStackTrace();
   }
   catch (SocketException e) {
   errorMessage = getString(R.string.ExceptionNetworkProblem);
   ExceptionHandler.logException(e);
   e.printStackTrace();
            } catch (IOException e) {
                errorMessage = getString(R.string.ExceptionGeneral);
                ExceptionHandler.logException(e);
                e.printStackTrace();
            } catch (Exception e) {
                errorMessage = getString(R.string.ExceptionGeneral);
                ExceptionHandler.logException(e);
                e.printStackTrace();
            }

            }

HERE IS THE LOG:

12-19 04:39:42.234: I/query result(4772): INSERT INTO parameterTable(ID,param_type,cash_code,param_description) VALUES (1,"product group","12345","Service Spares"); 12-19 04:39:42.234: W/System.err(4772): java.lang.NullPointerException 12-19 04:39:42.234: W/System.err(4772): at com.survey.management.activity.ProgramDBHelperActivity$ReqGetParameter.getParametersData(ProgramDBHelperActivity.java:146) 12-19 04:39:42.234: W/System.err(4772): at com.survey.management.activity.ProgramDBHelperActivity$ReqGetParameter.doInBackground(ProgramDBHelperActivity.java:128) 12-19 04:39:42.234: W/System.err(4772): at com.survey.management.activity.ProgramDBHelperActivity$ReqGetParameter.doInBackground(ProgramDBHelperActivity.java:1) 12-19 04:39:42.234: W/System.err(4772): at android.os.AsyncTask$2.call(AsyncTask.java:287) 12-19 04:39:42.239: W/System.err(4772): at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305) 12-19 04:39:42.239: W/System.err(4772): at java.util.concurrent.FutureTask.run(FutureTask.java:137) 12-19 04:39:42.239: W/System.err(4772): at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230) 12-19 04:39:42.239: W/System.err(4772): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076) 12-19 04:39:42.239: W/System.err(4772): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569) 12-19 04:39:42.239: W/System.err(4772): at java.lang.Thread.run(Thread.java:856) 12-19 04:39:42.239: W/System.err(4772): java.io.FileNotFoundException: /storage/sdcard0/taplaw.log: open failed: EACCES (Permission denied) 12-19 04:39:42.239: W/System.err(4772): at libcore.io.IoBridge.open(IoBridge.java:416) 12-19 04:39:42.239: W/System.err(4772): at java.io.FileOutputStream.(FileOutputStream.java:88) 12-19 04:39:42.239: W/System.err(4772): at com.survey.management.util.ExceptionHandler.logException(ExceptionHandler.java:55) 12-19 04:39:42.239: W/System.err(4772): at com.survey.management.activity.ProgramDBHelperActivity$ReqGetParameter.getParametersData(ProgramDBHelperActivity.java:167) 12-19 04:39:42.239: W/System.err(4772): at com.survey.management.activity.ProgramDBHelperActivity$ReqGetParameter.doInBackground(ProgramDBHelperActivity.java:128) 12-19 04:39:42.239: W/System.err(4772): at com.survey.management.activity.ProgramDBHelperActivity$ReqGetParameter.doInBackground(ProgramDBHelperActivity.java:1) 12-19 04:39:42.239: W/System.err(4772): at android.os.AsyncTask$2.call(AsyncTask.java:287) 12-19 04:39:42.239: W/System.err(4772): at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305) 12-19 04:39:42.239: W/System.err(4772): at java.util.concurrent.FutureTask.run(FutureTask.java:137) 12-19 04:39:42.239: W/System.err(4772): at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230) 12-19 04:39:42.244: W/System.err(4772): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076) 12-19 04:39:42.244: W/System.err(4772): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569) 12-19 04:39:42.244: W/System.err(4772): at java.lang.Thread.run(Thread.java:856) 12-19 04:39:42.244: W/System.err(4772): Caused by: libcore.io.ErrnoException: open failed: EACCES (Permission denied) 12-19 04:39:42.244: W/System.err(4772): at libcore.io.Posix.open(Native Method) 12-19 04:39:42.244: W/System.err(4772): at libcore.io.BlockGuardOs.open(BlockGuardOs.java:110) 12-19 04:39:42.244: W/System.err(4772): at libcore.io.IoBridge.open(IoBridge.java:400) 12-19 04:39:42.244: W/System.err(4772): ... 12 more 12-19 04:39:42.244: W/System.err(4772): java.lang.NullPointerException 12-19 04:39:42.244: W/System.err(4772): at com.survey.management.activity.ProgramDBHelperActivity$ReqGetParameter.getParametersData(ProgramDBHelperActivity.java:146) 12-19 04:39:42.244: W/System.err(4772): at com.survey.management.activity.ProgramDBHelperActivity$ReqGetParameter.doInBackground(ProgramDBHelperActivity.java:128) 12-19 04:39:42.244: W/System.err(4772): at com.survey.management.activity.ProgramDBHelperActivity$ReqGetParameter.doInBackground(ProgramDBHelperActivity.java:1) 12-19 04:39:42.244: W/System.err(4772): at android.os.AsyncTask$2.call(AsyncTask.java:287) 12-19 04:39:42.244: W/System.err(4772): at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305) 12-19 04:39:42.244: W/System.err(4772): at java.util.concurrent.FutureTask.run(FutureTask.java:137) 12-19 04:39:42.244: W/System.err(4772): at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230) 12-19 04:39:42.244: W/System.err(4772): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076) 12-19 04:39:42.244: W/System.err(4772): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569) 12-19 04:39:42.244: W/System.err(4772): at java.lang.Thread.run(Thread.java:856)

1
Likely db is null - the code doesn't show where it is declared/initialized. - laalto

1 Answers

2
votes

Your db is not initialized and therefore null. If you're using the usual SQLiteOpenHelper pattern, initialize it with

db = helper.getWritableDatabase();