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

Ian Clelland commented on CB-5974:
----------------------------------

After a long discussion on the mailing list, I've changed the default behaviour 
of the plugin:

If there is no <preference> in config.xml for the filesystem locations, it will 
default to "Compatibility" -- the file system roots will be exactly as they 
were in previous versions of the plugin.

A preference tag can be added to config.xml to override that. For Android, it 
can be one of these:

  * {{<preference name="AndroidPersistentFileLocation" value="Internal" />}}
  * {{<preference name="AndroidPersistentFileLocation" value="Compatibility" 
/>}}

For iOS, it can be one of these:

  * {{<preference name="iosPersistentFileLocation" value="Library" />}}
  * {{<preference name="iosPersistentFileLocation" value="Compatibility" />}}

On either platform, if the preference is present, but is not one of the 
recognized values, then in that (and only that) case, the app will stop on 
plugin initialization, with an error in the native (lldb or adb) log.

> File Plugin needs to have a default setting when config.xml doesn't have a 
> permission
> -------------------------------------------------------------------------------------
>
>                 Key: CB-5974
>                 URL: https://issues.apache.org/jira/browse/CB-5974
>             Project: Apache Cordova
>          Issue Type: Bug
>          Components: Android, Plugin File
>            Reporter: Joe Bowser
>            Assignee: Ian Clelland
>            Priority: Blocker
>
> I forgot about this setting, and when I don't provide it, this crashes my 
> entire app with an OutOfBounds Exception.  This needs to have a default, and 
> the default needs to be documented somewhere.
> You can reproduce this by trying to run the File tests on MobileSpec, or All 
> Tests! 
> E/FileUtils(17964): File plugin configuration error: Please set 
> AndroidPersistentFileLocation in config.xml to one of "internal" (for new 
> applications) or "compatibility" (for compatibility with previous versions)
> W/System.err(17964): java.lang.IndexOutOfBoundsException: Invalid index 1, 
> size is 0
> W/System.err(17964):  at 
> java.util.ArrayList.throwIndexOutOfBoundsException(ArrayList.java:255)
> W/System.err(17964):  at java.util.ArrayList.get(ArrayList.java:308)
> W/System.err(17964):  at 
> org.apache.cordova.file.FileUtils.requestFileSystem(FileUtils.java:740)
> W/System.err(17964):  at 
> org.apache.cordova.file.FileUtils.access$1(FileUtils.java:736)
> W/System.err(17964):  at 
> org.apache.cordova.file.FileUtils$11.run(FileUtils.java:290)
> W/System.err(17964):  at 
> org.apache.cordova.file.FileUtils$24.run(FileUtils.java:461)
> W/System.err(17964):  at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
> W/System.err(17964):  at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
> W/System.err(17964):  at java.lang.Thread.run(Thread.java:841)
> W/System.err(17964): java.lang.IndexOutOfBoundsException: Invalid index 0, 
> size is 0
> W/System.err(17964):  at 
> java.util.ArrayList.throwIndexOutOfBoundsException(ArrayList.java:255)
> D/CordovaActivity(17964): Paused the application!
> D/CordovaWebView(17964): Handle the pause
> W/System.err(17964):  at java.util.ArrayList.get(ArrayList.java:308)
> W/System.err(17964):  at 
> org.apache.cordova.file.FileUtils.requestFileSystem(FileUtils.java:740)
> W/System.err(17964):  at 
> org.apache.cordova.file.FileUtils.access$1(FileUtils.java:736)
> W/System.err(17964):  at 
> org.apache.cordova.file.FileUtils$11.run(FileUtils.java:290)
> W/System.err(17964):  at 
> org.apache.cordova.file.FileUtils$24.run(FileUtils.java:461)
> W/System.err(17964):  at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
> W/System.err(17964):  at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
> W/System.err(17964):  at java.lang.Thread.run(Thread.java:841)
> D/CordovaLog(17964): file:///android_asset/www/autotest/pages/file.html: Line 
> 54 : [ERROR] Problem setting up root filesystem for test running! Error to 
> follow.



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)

Reply via email to