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

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

Github user dblotsky commented on a diff in the pull request:

    https://github.com/apache/cordova-plugin-file/pull/145#discussion_r43565104
  
    --- Diff: src/android/DirectoryManager.java ---
    @@ -56,45 +56,46 @@ public static boolean testFileExists(String name) {
         }
     
         /**
    -     * Get the free disk space
    -     * 
    +     * Get the free space in external storage
    +     *
          * @return             Size in KB or -1 if not available
    --- End diff --
    
    Nitpick: if we're dividing by 1024, then these are `KiB`.


> window.requestFileSystem fails when no sd card is present and non-zero value 
> is provided for size
> -------------------------------------------------------------------------------------------------
>
>                 Key: CB-7253
>                 URL: https://issues.apache.org/jira/browse/CB-7253
>             Project: Apache Cordova
>          Issue Type: Bug
>          Components: Plugin File
>    Affects Versions: 3.5.0
>         Environment: I discovered this issue on a Nexus7 emulator running 
> android 4.4.2 with no sd card.
>            Reporter: Vincent Scuorzo
>            Assignee: Jason Ginchereau
>            Priority: Minor
>              Labels: easyfix
>
> The problem is that when no external storage is present the size parameter is 
> compared to the available storage space on the internal file system which is 
> incorrectly reported as 0. After reading a post on stack overflow 
> (http://stackoverflow.com/questions/4799643/getting-all-the-total-and-available-space-on-android)
>  I noticed that they were checking available space in a different way so I 
> tried it and the issue went away.
> You can see this bug in action by setting up an emulator as I described and 
> running an app with the file plugin that can execute the following javascript:
> window.requestFileSystem(PERSISTENT, 1024, function(fs){ console.log(fs); }, 
> function(e){ console.log(e); });
> With the current release you will get an error related to reaching the 
> storage quota since the available space is reported incorrectly. Change line 
> 72 of src/android/DirectoryManager.java to read the following:
> freeSpace = 
> freeSpaceCalculation(Environment.getRootDirectory().getAbsolutePath());
> Run the same line of javascript as before and you will now have success, 
> assuming you actually have the available space.
> You can easily bypass this issue and access the filesystem by just passing 0 
> for the size but doing so will also circumvent the checks that ensure you 
> don't try to use more space than is available. In my case, my app was 
> handicapping itself because it thought it didn't have enough space to 
> download additional resources when it should not have had any issues.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

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

Reply via email to