johnzon-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jörg Sautter (JIRA) <>
Subject [jira] [Commented] (JOHNZON-215) JsonReader.readObject() calls Reader.close()
Date Mon, 24 Jun 2019 08:38:00 GMT


Jörg Sautter commented on JOHNZON-215:

Sorry for the late response.

It is very unlikely for us to switch from Windows to another OS, there is a lot of third party
and native stuff inside our application.
The use of file locking is mentioned in the javadoc, so i think we are fine with the file

Aside from the file locking stuff, i was just wondering about the closing behaviour while
debugging a failing unit test and decided to open a ticket.
If this is not an issue from your point of view, the ticket can be closed. We wrapped the
Reader and drop the close call to prevent this from happening.

Thanks for your support!

> JsonReader.readObject() calls Reader.close()
> --------------------------------------------
>                 Key: JOHNZON-215
>                 URL:
>             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, 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

View raw message