Vincent Scuorzo created CB-7253:
-----------------------------------

             Summary: 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
            Priority: Minor


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.2#6252)

Reply via email to