GUAC-1335: Properly release parent balancing groups if child acquire fails.

This commit is contained in:
Michael Jumper
2015-09-08 22:00:36 -07:00
parent b65de451db
commit b6c734ddcf

View File

@@ -522,8 +522,18 @@ public abstract class AbstractGuacamoleTunnelService implements GuacamoleTunnelS
// Acquire group // Acquire group
acquire(user, connectionGroup); acquire(user, connectionGroup);
// Acquire and connect to any child // Attempt to acquire to any child
ModeledConnection connection = acquire(user, connections); ModeledConnection connection;
try {
connection = acquire(user, connections);
}
// Ensure connection group is always released if child acquire fails
finally {
release(user, connectionGroup);
}
// Connect to acquired child
return assignGuacamoleTunnel(new ActiveConnectionRecord(user, connectionGroup, connection), info); return assignGuacamoleTunnel(new ActiveConnectionRecord(user, connectionGroup, connection), info);
} }