[ 
https://issues.apache.org/jira/browse/CB-12434?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15860350#comment-15860350
 ] 

ASF GitHub Bot commented on CB-12434:
-------------------------------------

GitHub user jcesarmobile opened a pull request:

    https://github.com/apache/cordova-plugin-media/pull/127

    CB-12434 (Android) fix Stoping a Paused Recording throws exception

    <!--
    Please make sure the checklist boxes are all checked before submitting the 
PR. The checklist
    is intended as a quick reference, for complete details please see our 
Contributor Guidelines:
    
    http://cordova.apache.org/contribute/contribute_guidelines.html
    
    Thanks!
    -->
    
    ### Platforms affected
    Android
    
    ### What does this PR do?
    When you pause the recording and the stop it, the audio is added twice to 
the tempFiles list, so when it's moved it's moved twice, but the second time it 
no longer exits. This PR checks if the file is already on the list and doesn't 
add it if it's already there.
    
    ### What testing has been done on this change?
    Manual testing on Android 5 and 6 phones
    
    ### Checklist
    - [X] [Reported an issue](http://cordova.apache.org/contribute/issues.html) 
in the JIRA database
    - [X] Commit message follows the format: "CB-3232: (android) Fix bug with 
resolving file paths", where CB-xxxx is the JIRA ID & "android" is the platform 
affected.
    - [ ] Added automated test coverage as appropriate for this change.


You can merge this pull request into a Git repository by running:

    $ git pull https://github.com/jcesarmobile/cordova-plugin-media CB-12434

Alternatively you can review and apply these changes as the patch at:

    https://github.com/apache/cordova-plugin-media/pull/127.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

    This closes #127
    
----
commit ffeb17feb2d4a6493a3395d4db09f7e54144b6ae
Author: Julio César <jcesarmob...@gmail.com>
Date:   2017-02-09T22:49:10Z

    CB-12434 (Android) fix Stoping a Paused Recording throws exception

----


> Stoping a Paused Recording throws file not found exception
> ----------------------------------------------------------
>
>                 Key: CB-12434
>                 URL: https://issues.apache.org/jira/browse/CB-12434
>             Project: Apache Cordova
>          Issue Type: Bug
>          Components: Plugin Media
>    Affects Versions: 2.4.1
>            Reporter: jcesarmobile
>              Labels: android, easyfix
>
> Start recording
> pause recording
> stop recording
> boom!
> {code}
> /storage/emulated/0/tmprecording-1486509338267.3gp: open failed: ENOENT (No 
> such file or directory)
>                                                                  
> java.io.FileNotFoundException: 
> /storage/emulated/0/tmprecording-1486509338267.3gp: open failed: ENOENT (No 
> such file or directory)
>                                                                      at 
> libcore.io.IoBridge.open(IoBridge.java:452)
>                                                                      at 
> java.io.FileInputStream.<init>(FileInputStream.java:76)
>                                                                      at 
> org.apache.cordova.media.AudioPlayer.moveFile(AudioPlayer.java:213)
>                                                                      at 
> org.apache.cordova.media.AudioPlayer.stopRecording(AudioPlayer.java:271)
>                                                                      at 
> org.apache.cordova.media.AudioHandler.stopRecordingAudio(AudioHandler.java:298)
>                                                                      at 
> org.apache.cordova.media.AudioHandler.execute(AudioHandler.java:121)
>                                                                      at 
> org.apache.cordova.CordovaPlugin.execute(CordovaPlugin.java:98)
>                                                                      at 
> org.apache.cordova.PluginManager.exec(PluginManager.java:132)
>                                                                      at 
> org.apache.cordova.CordovaBridge.jsExec(CordovaBridge.java:57)
>                                                                      at 
> org.apache.cordova.engine.SystemExposedJsApi.exec(SystemExposedJsApi.java:41)
>                                                                      at 
> org.chromium.base.SystemMessageHandler.nativeDoRunLoopOnce(Native Method)
>                                                                      at 
> org.chromium.base.SystemMessageHandler.handleMessage(SystemMessageHandler.java:41)
>                                                                      at 
> android.os.Handler.dispatchMessage(Handler.java:102)
>                                                                      at 
> android.os.Looper.loop(Looper.java:148)
>                                                                      at 
> android.os.HandlerThread.run(HandlerThread.java:61)
>                                                                   Caused by: 
> android.system.ErrnoException: open failed: ENOENT (No such file or directory)
>                                                                      at 
> libcore.io.Posix.open(Native Method)
>                                                                      at 
> libcore.io.BlockGuardOs.open(BlockGuardOs.java:186)
>                                                                      at 
> libcore.io.IoBridge.open(IoBridge.java:438)
>                                                                      at 
> java.io.FileInputStream.<init>(FileInputStream.java:76) 
>                                                                      at 
> org.apache.cordova.media.AudioPlayer.moveFile(AudioPlayer.java:213) 
>                                                                      at 
> org.apache.cordova.media.AudioPlayer.stopRecording(AudioPlayer.java:271) 
>                                                                      at 
> org.apache.cordova.media.AudioHandler.stopRecordingAudio(AudioHandler.java:298)
>  
>                                                                      at 
> org.apache.cordova.media.AudioHandler.execute(AudioHandler.java:121) 
>                                                                      at 
> org.apache.cordova.CordovaPlugin.execute(CordovaPlugin.java:98) 
>                                                                      at 
> org.apache.cordova.PluginManager.exec(PluginManager.java:132) 
>                                                                      at 
> org.apache.cordova.CordovaBridge.jsExec(CordovaBridge.java:57) 
>                                                                      at 
> org.apache.cordova.engine.SystemExposedJsApi.exec(SystemExposedJsApi.java:41) 
>                                                                      at 
> org.chromium.base.SystemMessageHandler.nativeDoRunLoopOnce(Native Method) 
>                                                                      at 
> org.chromium.base.SystemMessageHandler.handleMessage(SystemMessageHandler.java:41)
>  
>                                                                      at 
> android.os.Handler.dispatchMessage(Handler.java:102) 
>                                                                      at 
> android.os.Looper.loop(Looper.java:148) 
>                                                                      at 
> android.os.HandlerThread.run(HandlerThread.java:61) 
> {code}
> the problem is the file is added to the tempFiles list twice, once on pause 
> and once on stop, so it's moved twice, and the second time it doesn't exist 
> anymore because it was moved.
> It's an easy fix, just check if the tempFiles already contains the file on 
> stopRecording
> {code}
> if (!this.tempFiles.contains(this.tempFile)) {
>     this.tempFiles.add(this.tempFile);
> }
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscr...@cordova.apache.org
For additional commands, e-mail: issues-h...@cordova.apache.org

Reply via email to