[ 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)