Apache Cordova
  1. Apache Cordova
  2. CB-2293

File Transfer of picture fails on every other picture

    Details

    • Type: Bug Bug
    • Status: Resolved
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 2.2.0, 2.3.0
    • Fix Version/s: 3.4.0
    • Labels:
      None
    • Environment:

      Tested on a Motorola Atrix HD(Android 4.1.2) as well as a Samsung Galaxy S3(Android 4.1.1)

      Description

      When uploading pictures using the File Transfer function on android, the first picture will upload fine. Then the second upload will give the following error:

      01-21 13:48:02.545: W/FileTransfer(8894): Error getting HTTP status code from connection.
      01-21 13:48:02.545: W/FileTransfer(8894): java.io.EOFException
      01-21 13:48:02.545: W/FileTransfer(8894): at libcore.io.Streams.readAsciiLine(Streams.java:203)
      01-21 13:48:02.545: W/FileTransfer(8894): at libcore.net.http.HttpEngine.readResponseHeaders(HttpEngine.java:560)
      01-21 13:48:02.545: W/FileTransfer(8894): at libcore.net.http.HttpEngine.readResponse(HttpEngine.java:813)
      01-21 13:48:02.545: W/FileTransfer(8894): at libcore.net.http.HttpURLConnectionImpl.getResponse(HttpURLConnectionImpl.java:274)
      01-21 13:48:02.545: W/FileTransfer(8894): at libcore.net.http.HttpURLConnectionImpl.getResponseCode(HttpURLConnectionImpl.java:486)
      01-21 13:48:02.545: W/FileTransfer(8894): at org.apache.cordova.FileTransfer.createFileTransferError(FileTransfer.java:535)
      01-21 13:48:02.545: W/FileTransfer(8894): at org.apache.cordova.FileTransfer.access$500(FileTransfer.java:62)
      01-21 13:48:02.545: W/FileTransfer(8894): at org.apache.cordova.FileTransfer$1.run(FileTransfer.java:437)
      01-21 13:48:02.545: W/FileTransfer(8894): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
      01-21 13:48:02.545: W/FileTransfer(8894): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
      01-21 13:48:02.545: W/FileTransfer(8894): at java.lang.Thread.run(Thread.java:856)
      01-21 13:48:02.555: E/FileTransfer(8894):

      {"target":"http:\/\/xxx.xxx.xxx\/api\/photo_uploads\/create?version=2&api_key=xxxxxxxxx&source=androidapp-2.2.1","source":"file:\/\/\/storage\/sdcard0\/Android\/data\/com.hockeycommunity.hc_app\/cache\/resize.jpg?1358804880392","code":3}

      01-21 13:48:02.555: E/FileTransfer(8894): java.net.SocketException: sendto failed: EPIPE (Broken pipe)
      01-21 13:48:02.555: E/FileTransfer(8894): at libcore.io.IoBridge.maybeThrowAfterSendto(IoBridge.java:506)
      01-21 13:48:02.555: E/FileTransfer(8894): at libcore.io.IoBridge.sendto(IoBridge.java:475)
      01-21 13:48:02.555: E/FileTransfer(8894): at java.net.PlainSocketImpl.write(PlainSocketImpl.java:508)
      01-21 13:48:02.555: E/FileTransfer(8894): at java.net.PlainSocketImpl.access$100(PlainSocketImpl.java:46)
      01-21 13:48:02.555: E/FileTransfer(8894): at java.net.PlainSocketImpl$PlainSocketOutputStream.write(PlainSocketImpl.java:270)
      01-21 13:48:02.555: E/FileTransfer(8894): at libcore.net.http.FixedLengthOutputStream.write(FixedLengthOutputStream.java:41)
      01-21 13:48:02.555: E/FileTransfer(8894): at java.io.DataOutputStream.write(DataOutputStream.java:98)
      01-21 13:48:02.555: E/FileTransfer(8894): at org.apache.cordova.FileTransfer$1.run(FileTransfer.java:372)
      01-21 13:48:02.555: E/FileTransfer(8894): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
      01-21 13:48:02.555: E/FileTransfer(8894): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
      01-21 13:48:02.555: E/FileTransfer(8894): at java.lang.Thread.run(Thread.java:856)
      01-21 13:48:02.555: E/FileTransfer(8894): Caused by: libcore.io.ErrnoException: sendto failed: EPIPE (Broken pipe)
      01-21 13:48:02.555: E/FileTransfer(8894): at libcore.io.Posix.sendtoBytes(Native Method)
      01-21 13:48:02.555: E/FileTransfer(8894): at libcore.io.Posix.sendto(Posix.java:146)
      01-21 13:48:02.555: E/FileTransfer(8894): at libcore.io.BlockGuardOs.sendto(BlockGuardOs.java:177)
      01-21 13:48:02.555: E/FileTransfer(8894): at libcore.io.IoBridge.sendto(IoBridge.java:473)
      01-21 13:48:02.555: E/FileTransfer(8894): ... 9 more
      01-21 13:48:02.575: D/CordovaLog(8894): error:

      {"code":3,"source":"file:///storage/sdcard0/Android/data/com.hockeycommunity.hc_app/cache/resize.jpg?1358804880392","target":"http://xxx.xxx.xxxx/api/photo_uploads/create?version=2&api_key=xxxxxxx&source=androidapp-2.2.1","http_status":null}

      01-21 13:48:02.575: I/Web Console(8894): error:

      {"code":3,"source":"file:///storage/sdcard0/Android/data/com.hockeycommunity.hc_app/cache/resize.jpg?1358804880392","target":"http://xxx.xxx.xxx/api/photo_uploads/create?version=2&api_key=xxxxxxx&source=androidapp-2.2.1","http_status":null}

      at file:///android_asset/www/interfaces/int.upload_picture.js:28

      Then the next picture will upload fine, and the next one will get the same error code. Every other picture upload works.

      1. cordova-2.4.0rc1.jar
        233 kB
        Andrew Grieve

        Issue Links

          Activity

          No work has yet been logged on this issue.

            People

            • Assignee:
              Ian Clelland
              Reporter:
              Amrit Kahlon
            • Votes:
              12 Vote for this issue
              Watchers:
              24 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:

                Development