0

I'm trying to insert an image to Parse cloud but I'm getting an error Here's my code:

public void uploadImage() { 
File f = new File("/mnt/sdcard/test.jpg");  
Bitmap bmp = BitmapFactory.decodeFile(f.getAbsolutePath());
ParseFile file = new ParseFile("test.jpg",bitmapToByteArray(bmp));
file.saveInBackground();
test = new ParseObject("Testing");
test.put("images", file);
test.saveInBackground();    
}

And the error code from LogCat:

02-25 12:08:53.259: E/AndroidRuntime(12444): FATAL EXCEPTION: AsyncTask #2
02-25 12:08:53.259: E/AndroidRuntime(12444): java.lang.RuntimeException: An error occured while executing doInBackground()
02-25 12:08:53.259: E/AndroidRuntime(12444):    at android.os.AsyncTask$3.done(AsyncTask.java:200)
02-25 12:08:53.259: E/AndroidRuntime(12444):    at java.util.concurrent.FutureTask$Sync.innerSetException(FutureTask.java:273)
02-25 12:08:53.259: E/AndroidRuntime(12444):    at java.util.concurrent.FutureTask.setException(FutureTask.java:124)
02-25 12:08:53.259: E/AndroidRuntime(12444):    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:307)
02-25 12:08:53.259: E/AndroidRuntime(12444):    at java.util.concurrent.FutureTask.run(FutureTask.java:137)
02-25 12:08:53.259: E/AndroidRuntime(12444):    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1068)
02-25 12:08:53.259: E/AndroidRuntime(12444):    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:561)
02-25 12:08:53.259: E/AndroidRuntime(12444):    at java.lang.Thread.run(Thread.java:1096)
02-25 12:08:53.259: E/AndroidRuntime(12444): Caused by: java.lang.RuntimeException: This query has an outstanding network connection. You have to wait until it's done.
02-25 12:08:53.259: E/AndroidRuntime(12444):    at com.parse.ParseFile.assertNotRunning(ParseFile.java:126)
02-25 12:08:53.259: E/AndroidRuntime(12444):    at com.parse.ParseFile.save(ParseFile.java:264)
02-25 12:08:53.259: E/AndroidRuntime(12444):    at com.parse.ParseFile.save(ParseFile.java:258)
02-25 12:08:53.259: E/AndroidRuntime(12444):    at com.parse.ParseObject.deepSave(ParseObject.java:1527)
02-25 12:08:53.259: E/AndroidRuntime(12444):    at com.parse.ParseObject.save(ParseObject.java:924)
02-25 12:08:53.259: E/AndroidRuntime(12444):    at com.parse.ParseObject$5.run(ParseObject.java:957)
02-25 12:08:53.259: E/AndroidRuntime(12444):    at com.parse.ParseObject$5.run(ParseObject.java:954)
02-25 12:08:53.259: E/AndroidRuntime(12444):    at com.parse.BackgroundTask.doInBackground(BackgroundTask.java:39)
02-25 12:08:53.259: E/AndroidRuntime(12444):    at com.parse.BackgroundTask.doInBackground(BackgroundTask.java:1)
02-25 12:08:53.259: E/AndroidRuntime(12444):    at android.os.AsyncTask$2.call(AsyncTask.java:185)
02-25 12:08:53.259: E/AndroidRuntime(12444):    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
02-25 12:08:53.259: E/AndroidRuntime(12444):    ... 4 more

i don't know what it causing the error, please help me and thanks in advance

1
  • 1
    I have no idea about this API, I haven't ever used it, I was just hoping to push you in the right direction :-) Commented Feb 25, 2013 at 5:15

3 Answers 3

1

You're trying to simultaneously save a file and an object that contains it - apparently, it's not allowed by the framework you're using. So, either don't do it or do the succeeding call as a success/complete callback to the first call.

Here is a couple of related links (btw found them by googling the exception):

Exception "This query has an outstanding network connection.." on Android 2.2

Why am I getting a "This object has an outstanding network connection" NSInternalInconsistencyException?

Sign up to request clarification or add additional context in comments.

Comments

1

Just get rid of the call to file.saveInBackground(). Saving the object will handle that automatically.

Comments

0

i have to change it to this

public void uploadImage()  {
        test = new ParseObject("Testing");
        File f = new File("/mnt/sdcard/test.jpg");

        Bitmap bmp = BitmapFactory.decodeFile(f.getAbsolutePath());
        file = new ParseFile("test.jpg",bitmapToByteArray(bmp));
        file.saveInBackground(new SaveCallback() {

            @Override
            public void done(ParseException e) {
                // TODO Auto-generated method stub

                test.put("images", file);
                test.saveInBackground();
            }
        }); 
}

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.