[ 
https://issues.apache.org/jira/browse/NET-334?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Sebb resolved NET-334.
----------------------

       Resolution: Fixed
    Fix Version/s: 2.2

Could possibly drop the method entirely instead. Meanwhile fix the NPE.

> org.apache.commons.net.io.FromNetASCIIInputStream can throw a 
> NullPointerException
> ----------------------------------------------------------------------------------
>
>                 Key: NET-334
>                 URL: https://issues.apache.org/jira/browse/NET-334
>             Project: Commons Net
>          Issue Type: Bug
>    Affects Versions: 2.0
>         Environment: OS: Linux -- Redhat enterprise 
> JVM 1.6 64bit 
>            Reporter: Kenneth Ritch
>             Fix For: 2.2
>
>
> org.apache.commons.net.io.FromNetASCIIInputStream.available() can throw a 
> NullPointerException if the 
> InputStream is null. This has been experienced on a loaded system. 
> StackTrace: 
> Exception in thread "Telnet Reader" java.lang.NullPointerException 
> at 
> org.apache.commons.net.io.FromNetASCIIInputStream.available(FromNetASCIIInputStream.java:202)
>  
> at 
> org.apache.commons.net.io.FromNetASCIIInputStream.read(FromNetASCIIInputStream.java:164)
>  
> at java.io.BufferedInputStream.fill(Unknown Source) 
> at java.io.BufferedInputStream.read(Unknown Source) 
> at 
> org.apache.commons.net.telnet.TelnetInputStream.__read(TelnetInputStream.java:122)
>  
> at 
> org.apache.commons.net.telnet.TelnetInputStream.read(TelnetInputStream.java:375)
>  
> at 
> org.apache.commons.net.telnet.TelnetInputStream.read(TelnetInputStream.java:492)
>  
> at java.io.BufferedInputStream.fill(Unknown Source) 
> at java.io.BufferedInputStream.read1(Unknown Source) 
> at java.io.BufferedInputStream.read(Unknown Source) 
> at java.io.FilterInputStream.read(Unknown Source) 
> Cause: 
> The base PushbackInputStream checks the input stream is not closed before 
> invoking avilable()
> 274  public int available() throws IOException {
> 275   ensureOpen();
> 276           return (buf.length - pos) + super.available();
> 277  }
> Which throws appropriate IOException if input stream is null: 
> 72    private void ensureOpen() throws IOException {
> 73            if (in == null)
> 74            throw new IOException("Stream closed");
> 75    }
> commons.net.io.FromNetASCIIInputStream does not. This can lead to a 
> NullPointerException being thrown if the input stream is null.
> 191        // PushbackInputStream in JDK 1.1.3 returns the wrong thing
> 192        /***
> 193         * Returns the number of bytes that can be read without blocking 
> EXCEPT
> 194         * when newline conversions have to be made somewhere within the
> 195         * available block of bytes.  In other words, you really should not
> 196         * rely on the value returned by this method if you are trying to 
> avoid
> 197         * blocking.
> 198         ***/
> 199        @Override
> 200        public int available() throws IOException
> 201        {
> 202            return (buf.length - pos) + in.available();
> 203        }
> FromNetASCIIInputStream.available() should be changed to mimic the base class 
> behaviour. 

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to