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

ASF GitHub Bot commented on CB-13923:
-------------------------------------

infil00p commented on issue #433: CB-13923 (android) fix -1 length for 
compressed files
URL: https://github.com/apache/cordova-android/pull/433#issuecomment-370883533
 
 
   LGTM

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


> CordovaResourceApi.java method OpenForReadResult returns a -1 length
> --------------------------------------------------------------------
>
>                 Key: CB-13923
>                 URL: https://issues.apache.org/jira/browse/CB-13923
>             Project: Apache Cordova
>          Issue Type: Bug
>          Components: cordova-android
>    Affects Versions: cordova-android-7.0.0
>         Environment: cordova 8.0.0
> cordova-android 7.0.0
> cordova-plugin-file 6.0.1
>            Reporter: Anthony Ward
>            Assignee: Joe Bowser
>            Priority: Major
>
> Here are details to recreate:
> [https://github.com/AnthonyWard/cordova-file-plugin-bug]
> In *cordova-android* the CordovaResourceApi.java -> OpenForReadResult method 
> returns a -1 length in certain circumstances.
> This has a knock on effect to the *cordova-plugin-file* > Filesystem.java > 
> readFileAtURL method, causing file corruption as each chunk effectively has 
> no end.
> There is a possible fix in the plugin cordova-plugin-file already proposed
> [https://github.com/apache/cordova-plugin-file/pull/217]
> https://issues.apache.org/jira/browse/CB-13245?jql=text%20~%20%22CordovaResourceApi%22
> Or I propose it could be fixed upstream in cordova-android here:
> [https://github.com/apache/cordova-android/blob/master/framework/src/org/apache/cordova/CordovaResourceApi.java]
> In the method OpenForReadResult there is one path (in the catch) that leaves 
> the length as -1 causing the defect
> try
> {
> assetFd = assetManager.openFd(assetPath);
> inputStream = assetFd.createInputStream(); length = assetFd.getLength();
> }
> catch (FileNotFoundException e)
> {
> // Will occur if the file is compressed.
> inputStream = assetManager.open(assetPath);
> }
> Adding length = inputStream.available(); in the catch fixes the issue for me, 
> but I'm not a java developer so can't evaluate if that's a bad idea for 
> another reason.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscr...@cordova.apache.org
For additional commands, e-mail: issues-h...@cordova.apache.org

Reply via email to