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

ASF subversion and git services commented on CB-4504:
-----------------------------------------------------

Commit 963f8b8b12f613a654e39c2bc113dade23098b7b in branch refs/heads/master 
from [~bowserj]
[ https://git-wip-us.apache.org/repos/asf?p=cordova-plugin-file.git;h=963f8b8 ]

CB-4504: Updating FileUtils.java to compensate for Java porting failures in the 
Android SDK. This fails because Java knows nothing about android_asset not 
being an actual filesystem


> Attempt to write file to file:///android_asset folder crashes
> -------------------------------------------------------------
>
>                 Key: CB-4504
>                 URL: https://issues.apache.org/jira/browse/CB-4504
>             Project: Apache Cordova
>          Issue Type: Bug
>          Components: Android
>    Affects Versions: 2.9.0
>         Environment: Android v4.3 emulator
>            Reporter: Peter
>            Assignee: Joe Bowser
>            Priority: Minor
>
> I wrote a Jasmine test case which attempts to write to the *android_assets* 
> folder. 
> The test expects the FileWriter.onerror callback will be called with some 
> appropriate error code. Instead, Cordova fails internally.
> It appears that FileHelper.getRealPath returns null, which the 
> FileUtils.write is not coping with, and when the null is passed to 
> FileOutputStream that throws NPE, which nobody is handling...
> Test code fragment:
> {code}
> it("onerror is called if write to file:///android_asset", function() {
>       var theWriter,
>       filePath = "file:///android_asset/jumpyfox.txt",
>       // file content
>       fox = "The quick brown fox";
>       // callbacks                
>       var onerrorCB = jasmine.createSpy().andCallFake(function(a) {
>               
> expect(theWriter.error.code).toBe(FileError.NO_MODIFICATION_ALLOWED_ERR);
>               
> expect(a.target.error.code).toBe(FileError.NO_MODIFICATION_ALLOWED_ERR);
>       });
>       // writes initial file content
>       var write_file = function(file) {
>               theWriter = new FileWriter(file);
>               theWriter.onerror = onerrorCB;
>               theWriter.write(fox);
>       };
>       // create file, then write to it
>       runs(function() {
>               var file = new File();
>               file.fullPath = filePath;
>               write_file(file);
>       });
>       waitsFor(function() { return onerrorCB.wasCalled; }, "onerrorCB never 
> called", Tests.TEST_TIMEOUT);
> });
> {code}
> Maybe other scenarios which call FileHelper.getRealPath could have similar 
> consequences if it returns null.



--
This message was sent by Atlassian JIRA
(v6.1#6144)

Reply via email to