[ https://issues.apache.org/jira/browse/THRIFT-5022?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Duru Can Celasun resolved THRIFT-5022. -------------------------------------- Fix Version/s: 0.14.0 Resolution: Fixed > TIOStreamTransport.isOpen is false for InputStream or Outpstream only use. > -------------------------------------------------------------------------- > > Key: THRIFT-5022 > URL: https://issues.apache.org/jira/browse/THRIFT-5022 > Project: Thrift > Issue Type: Task > Components: Java - Library > Affects Versions: 0.13.0 > Reporter: Andy Seaborne > Priority: Major > Fix For: 0.14.0 > > Time Spent: 20m > Remaining Estimate: 0h > > This follows from THRIFT-2530. > {{TIOStreamTransaport.isOpen}} changed to be > > {noformat} > public boolean isOpen() { > return inputStream_ != null && outputStream_ != null; > } > {noformat} > but constructors {{TIOStreamTransaport(InputStream)}} and > {{TIOStreamTransaport(OutputStream)}} leave one of {{inputStream_}} or > {{outputStream_}} null. > This makes isOpen false immediately, no close() called. open() does not > change the state of object. > Example: > {noformat} > TIOStreamTransport x1 = new TIOStreamTransport(new ByteArrayInputStream(new > byte[1])); > System.out.println(x1.isOpen()); > TIOStreamTransport x2 = new TIOStreamTransport(new ByteArrayOutputStream()); > System.out.println(x2.isOpen()); > {noformat} > is prints false both times. > > It should be: > {noformat} > public boolean isOpen() { > return inputStream_ != null || outputStream_ != null; > } > {noformat} > or an explicit flag for the open/close state but {{inputStream_ != null || > outputStream_ != null;}} is enough given the current close implementation. > > -- This message was sent by Atlassian Jira (v8.3.4#803005)