You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "Eduardo Aguinaga (JIRA)" <ji...@apache.org> on 2016/08/25 18:14:20 UTC

[jira] [Created] (CASSANDRA-12549) Unreleased Resource: Streams

Eduardo Aguinaga created CASSANDRA-12549:
--------------------------------------------

             Summary: Unreleased Resource: Streams
                 Key: CASSANDRA-12549
                 URL: https://issues.apache.org/jira/browse/CASSANDRA-12549
             Project: Cassandra
          Issue Type: Sub-task
            Reporter: Eduardo Aguinaga


Overview:
In May through June of 2016 a static analysis was performed on version 3.0.5 of the Cassandra source code. The analysis included an automated analysis using HP Fortify v4.21 SCA and a manual analysis utilizing SciTools Understand v4. The results of that analysis includes the issue below.

Issue:
The function csQueryMetadata() in CloudstackSnitch.java sometimes fails to release a system resource allocated by getInputStream() on line 141. Stream not closed on exception. 

The two lines of code within the finally block can throw exceptions. Code that can throw an exception should not be in a finally block or the code within the finally block should be isolated within its own try/catch.

{code:java}
CloudstackSnitch.java, lines 131-149:
131 try 
132 {
133     conn.setRequestMethod("GET");
134     if (conn.getResponseCode() != 200) 
135     {
136         throw new ConfigurationException("CloudstackSnitch was unable to query metadata.");
137     }
138 
139     int cl = conn.getContentLength();
140     byte[] b = new byte[cl];
141     is = new DataInputStream(new BufferedInputStream(conn.getInputStream()));
142     is.readFully(b);
143     return new String(b, StandardCharsets.UTF_8);
144 } 
145 finally 
146 {
147     FileUtils.close(is);
148     conn.disconnect();
149 }
{code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)