Move close to finally block.
@@ -49,18 +49,20 @@ public abstract class PrivateKeyGuacamoleProperty implements GuacamoleProperty<P
if (value == null || value.isEmpty())
return null;
+ FileInputStream keyStreamIn = null;
+
+ try {
try {
// Open and read the file specified in the configuration.
File keyFile = new File(value);
- FileInputStream keyStreamIn = new FileInputStream(keyFile);
+ keyStreamIn = new FileInputStream(keyFile);
ByteArrayOutputStream keyStreamOut = new ByteArrayOutputStream();
byte[] keyBuffer = new byte[1024];
for (int readBytes; (readBytes = keyStreamIn.read(keyBuffer)) != -1;)
keyStreamOut.write(keyBuffer, 0, readBytes);
- keyStreamIn.close();
final byte[] keyBytes = keyStreamOut.toByteArray();
// Set up decryption infrastructure
@@ -72,16 +74,19 @@ public abstract class PrivateKeyGuacamoleProperty implements GuacamoleProperty<P
catch (FileNotFoundException e) {
throw new GuacamoleServerException("Could not find the specified key file.", e);
}
- catch (IOException e) {
- throw new GuacamoleServerException("Could not read in the specified key file.", e);
- }
catch (NoSuchAlgorithmException e) {
throw new GuacamoleServerException("RSA algorithm is not available.", e);
}
catch (InvalidKeySpecException e) {
throw new GuacamoleServerException("Key is not in expected PKCS8 encoding.", e);
}
-
+ finally {
+ keyStreamIn.close();
+ }
+ }
+ catch (IOException e) {
+ throw new GuacamoleServerException("Could not read in the specified key file.", e);
+ }
}
}
