You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@cordova.apache.org by "Leon (JIRA)" <ji...@apache.org> on 2014/09/11 13:32:33 UTC

[jira] [Created] (CB-7522) Wrong file path leads to error code 1000 due to NullPointerException on Android

Leon created CB-7522:
------------------------

             Summary: Wrong file path leads to error code 1000 due to NullPointerException on Android
                 Key: CB-7522
                 URL: https://issues.apache.org/jira/browse/CB-7522
             Project: Apache Cordova
          Issue Type: Bug
          Components: Plugin File
    Affects Versions: 3.5.0
         Environment: Android
            Reporter: Leon
            Priority: Minor


Hi,

I am using Cordova version 3.5.0-0.2.6 and version 1.3.0 of the File plugin on Ubuntu. 

Yesterday I got error code 1000 (corresponds to UNKNOWN_ERR as defined in android/FileUtils.java) when I tried the following JavaScript code on Samsung S2 (GT-I9100) with Android 4.1.2:


{code:title=my.js|borderStyle=solid}
var sFileLocation = '/Android/data/<package name>/assets/';	
sFileLocation += filesToRemove[nFile];

fileSystem.root.getFile(
	sFileLocation,
	null,
	function(entry) {
		entry.remove( function() {
			console.log("file removed");
		}, onError);
	}, onGetFileError);
{code}

My investigation showed that the error code 1000 was caused by Java NullPointerException from implentation of the method fullPathForFilesystemPath in class *LocalFilesystem* because of the following code:
{code:title=LocalFilesystem.java|borderStyle=solid}
private String fullPathForFilesystemPath(String absolutePath) {
		if (absolutePath != null && absolutePath.startsWith(this.fsRoot)) {
			return absolutePath.substring(this.fsRoot.length());
		}
		return null;
	}
{code}

The specified path at JavaScript snippet starts with / but its prefix does not match the root of dir so in Android the Java method  fullPathForFilesystemPath returns *null* and leads to error *1000* at the JavaScript. 

The +JavaScript snippet works fine+ if the path is specified using any of the following formats: *"Android/data/<package name>/assets/"* or *"/storage/sdcard0/Android/data/<package name>/assets/"*.

It is not exactly a bug but it is very inconvenient and not developer friendly. I did not find anything about this behaviour at the docuemntation of the plugin. It will be much better if error code such FileError.ENCODING_ERR (5) or even FileError.NOT_FOUND_ERR (1) is returned. 

May we modify the Java code and to update the documentation to make it more friendly for developers?

Best regards,
Leon



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)