You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@cordova.apache.org by "Samo Dadela (JIRA)" <ji...@apache.org> on 2016/03/27 23:39:25 UTC

[jira] [Commented] (CB-10960) Uncaught # in write() when readyState != WRITING ?

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

Samo Dadela commented on CB-10960:
----------------------------------

I did some more debugging and found that the error happens only when passing blob's to write(). I tried to pass an u8ArrayBuf and the problem went away.

Must be something to do with this block in FileWriter.js:
<code>
// Check to see if the incoming data is a blob
    if (data instanceof File || (!isProxySupportBlobNatively && supportsBinary && data instanceof Blob)) {
...
<code>


> Uncaught #<FileError> in write() when readyState != WRITING ?
> -------------------------------------------------------------
>
>                 Key: CB-10960
>                 URL: https://issues.apache.org/jira/browse/CB-10960
>             Project: Apache Cordova
>          Issue Type: Bug
>          Components: Plugin File
>    Affects Versions: 4.1.1
>         Environment: Android
>            Reporter: Samo Dadela
>              Labels: android
>         Attachments: code.js
>
>
> Excuse me if I did something stupid - I'm new to Cordova and JS.
> I thought that calling write() after checking readyState != WRITING would work. 
> {code}
> function writeQueue(c) {
>         while ( !(logWriter.readyState === FileWriter.WRITING) ) {
>             var msg = logQueue.dequeue();
>             if (!msg) {
>                 return;
>             }
>             var blob = new Blob([msg+c], { type: 'text/plain' });
>             logWriter.write(blob);
>         }
>     }
> }
> {code}
> But I get:
> 0     277161   log      log writer: cdvfile://localhost/files/bala.log
> 1     277199   log      log writer: onwriteend
> 2     283616   log      log writer: onwriteend
> 3     283629   log      log writer: onwriteend
> 4     283651   error    Uncaught #<FileError>, http://192.168.1.200:8100/plugins/cordova-plugin-file/www/FileWriter.js, Line: 130
> Line 130 is:
> {code}
>     // Throw an exception if we are already writing a file
>     if (this.readyState === FileWriter.WRITING) {
>         throw new FileError(FileError.INVALID_STATE_ERR);
>     }
> {code}
> How can readyState change to WRITING ? 
> Note: Queue is pure Javascript (http://code.stephenmorley.org/javascript/queues/Queue.src.js)



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

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