johnzon-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Romain Manni-Bucau (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (JOHNZON-215) JsonReader.readObject() calls Reader.close()
Date Mon, 24 Jun 2019 08:42:00 GMT

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

Romain Manni-Bucau commented on JOHNZON-215:
--------------------------------------------

[~joerg1985] I see, the side note being that there are ways to bypass the file lock on windows
as well and since JSON-[P|B] relies on reader/inputstream then this lock behavior is very
caller dependent so I don't think it can be relied on from a spec perspective. That said you
got the right reflex to open an issue to ensure it is tracked and logged somewhere since the
quesion is more than legitimate. Thanks for that.

> JsonReader.readObject() calls Reader.close()
> --------------------------------------------
>
>                 Key: JOHNZON-215
>                 URL: https://issues.apache.org/jira/browse/JOHNZON-215
>             Project: Johnzon
>          Issue Type: Bug
>          Components: Core
>    Affects Versions: 1.1.12
>            Reporter: Jörg Sautter
>            Priority: Major
>
> We try to use the JsonReader to read a Reader based on a channel holding an exclusive
file lock and later on we truncate the channel, write the content and close the channel /
release the lock.
> As soon as we call JsonReader.readObject() the reader and the channel is closed and the
file locks are gone. This should - from our point of view - not happen at this point, only
a explicit call to .close() should close the underlying resources.
> This is a code snippet to reproduce the issue:
> {{StringReader sr = new StringReader("{}");}}
> {{Reader wrapper = new Reader() {}}
> {{@Override}}
> {{public int read(char[] cbuf, int off, int len) throws IOException{}}
> {{return sr.read(cbuf, off, len);}}
> {{}}}
> {{@Override}}
> {{public void close() throws IOException{}}
> {{throw new UnsupportedOperationException("someone closed the stream!");}}
> {{}}}
> {{};}}
> {{Json.createReader(wrapper).readObject();}}



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

Mime
View raw message