[ https://issues.apache.org/jira/browse/JOHNZON-215?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Jörg Sautter updated JOHNZON-215: --------------------------------- Description: 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();}} was: 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();}} > 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)