@SuppressWarnings("unchecked") void notifyAutoStartTunnels() { try { SessionInfo session = agent.getSession(); List<Tunnel> tunnels = ResourceUtil.getGrantedResource(session, TunnelPlugin.SSL_TUNNEL_RESOURCE_TYPE); List<BundleActionMessage> tunnelFailures = new ArrayList<BundleActionMessage>(); for (Tunnel tunnel : tunnels) { if (tunnel.isAutoStart()) { try { Policy policy = PolicyDatabaseFactory.getInstance() .getGrantingPolicyForUser(session.getUser(), tunnel); LaunchSession launchSession = LaunchSessionFactory.getInstance().createLaunchSession(session, tunnel, policy); startTunnel(launchSession); } catch (TunnelException tne) { log.error("failed to start tunnel: '" + tunnel + "'", tne); tunnelFailures.add(tne.getBundleActionMessage()); } } } if (!tunnelFailures.isEmpty()) { tunnelFailures.add( 0, new BundleActionMessage("tunnels", "error.tunnels.autostart", tunnelFailures.size())); for (BundleActionMessage actionMessage : tunnelFailures) { GlobalWarning globalWarning = new GlobalWarning(session.getHttpSession(), actionMessage); GlobalWarningManager.getInstance().addToSession(globalWarning); } } } catch (Exception e) { log.error("Failed to start auto-start tunnels", e); } }