Jörg Sautter created JOHNZON-215:
------------------------------------
Summary: 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
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)