Peter created CB-4504:
-------------------------
Summary: 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 is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira