problem uploading image to parse server

313 views
Skip to first unread message

Raju Jindal

unread,
Jun 18, 2016, 12:22:34 AM6/18/16
to back{4}app
Hi there,
I am getting the following error while uploading the image on parse server.

06-18 09:45:12.782 31782-6859/com.ababies.flier E/AndroidRuntime: FATAL EXCEPTION: ParseRequest.NETWORK_EXECUTOR-thread-4
                                                                  Process: com.ababies.flier, PID: 31782
                                                                  java.lang.OutOfMemoryError
                                                                      at java.io.ByteArrayOutputStream.<init>(ByteArrayOutputStream.java:63)
                                                                      at com.android.okhttp.internal.http.RetryableOutputStream.<init>(RetryableOutputStream.java:38)
                                                                      at com.android.okhttp.internal.http.HttpTransport.createRequestBody(HttpTransport.java:97)
                                                                      at com.android.okhttp.internal.http.HttpEngine.sendSocketRequest(HttpEngine.java:267)
                                                                      at com.android.okhttp.internal.http.HttpEngine.sendRequest(HttpEngine.java:206)
                                                                      at com.android.okhttp.internal.http.HttpURLConnectionImpl.execute(HttpURLConnectionImpl.java:345)
                                                                      at com.android.okhttp.internal.http.HttpURLConnectionImpl.connect(HttpURLConnectionImpl.java:89)
                                                                      at com.android.okhttp.internal.http.HttpURLConnectionImpl.getOutputStream(HttpURLConnectionImpl.java:197)
                                                                      at com.android.okhttp.internal.http.HttpsURLConnectionImpl.getOutputStream(HttpsURLConnectionImpl.java:254)
                                                                      at com.parse.ParseURLConnectionHttpClient.executeInternal(ParseURLConnectionHttpClient.java:51)
                                                                      at com.parse.ParseHttpClient$ParseNetworkInterceptorChain.proceed(ParseHttpClient.java:158)
                                                                      at com.parse.ParsePlugins$1.intercept(ParsePlugins.java:115)
                                                                      at com.parse.ParseHttpClient$ParseNetworkInterceptorChain.proceed(ParseHttpClient.java:147)
                                                                      at com.parse.ParseHttpClient.execute(ParseHttpClient.java:122)
                                                                      at com.parse.ParseRequest$3.then(ParseRequest.java:136)
                                                                      at com.parse.ParseRequest$3.then(ParseRequest.java:133)
                                                                      at bolts.Task$15.run(Task.java:917)
                                                                      at bolts.BoltsExecutors$ImmediateExecutor.execute(BoltsExecutors.java:105)
                                                                      at bolts.Task.completeAfterTask(Task.java:908)
                                                                      at bolts.Task.continueWithTask(Task.java:715)
                                                                      at bolts.Task.continueWithTask(Task.java:726)
                                                                      at bolts.Task$13.then(Task.java:818)
                                                                      at bolts.Task$13.then(Task.java:806)
                                                                      at bolts.Task$15.run(Task.java:917)
                                                                      at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
                                                                      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
                                                                      at java.lang.Thread.run(Thread.java:841)

Following is my code to upload the image:
Bitmap picture = null;
try {
picture = MediaStore.Images.Media.getBitmap(AppGlobal.mContext.getContentResolver(), imgUri);
} catch (IOException e) {
result_string = AppGlobal.OPN_STATUS.FAILED.toString()+" "+e.getMessage();
e.printStackTrace();
}
ByteArrayOutputStream stream = new ByteArrayOutputStream();
picture.compress(Bitmap.CompressFormat.PNG, 100, stream);
// get byte array here
byte[] bytearray= stream.toByteArray();
if(!result_string.contains(AppGlobal.OPN_STATUS.FAILED.toString())){
file = new ParseFile(imgStr+".PNG",bytearray);
try {
file.save();
result_string = AppGlobal.OPN_STATUS.SUCCESSFUL.toString();
} catch (ParseException e) {
result_string = AppGlobal.OPN_STATUS.FAILED.toString()+" "+ e.getMessage();
Log.e(AppGlobal.APPNAME,"Error saving the file--"+imgStr+"---"+e.getMessage());
e.printStackTrace();
}
}


-Thanks and Regards,
Rajender Jindal

Davi Macêdo

unread,
Jun 18, 2016, 7:14:30 PM6/18/16
to back{4}app
Hi, Rajender.

I think the error you are receiving is not exactly being generated by Parse Server. I think your image is really big and when you do "stream.toByteArray()" it is reaching your memory limit.

Could you pls try to upload a smaller image?

Best!
Reply all
Reply to author
Forward
0 new messages