<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>org.apache.guacamole (guacamole-common 1.1.0 API)</title>
<meta name="date" content="2020-01-26">
<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
<script type="text/javascript" src="../../../script.js"></script>
</head>
<body>
<h1 class="bar"><a href="../../../org/apache/guacamole/package-summary.html" target="classFrame">org.apache.guacamole</a></h1>
<div class="indexContainer">
<h2 title="Exceptions">Exceptions</h2>
<ul title="Exceptions">
<li><a href="GuacamoleClientBadTypeException.html" title="class in org.apache.guacamole" target="classFrame">GuacamoleClientBadTypeException</a></li>
<li><a href="GuacamoleClientException.html" title="class in org.apache.guacamole" target="classFrame">GuacamoleClientException</a></li>
<li><a href="GuacamoleClientOverrunException.html" title="class in org.apache.guacamole" target="classFrame">GuacamoleClientOverrunException</a></li>
<li><a href="GuacamoleClientTimeoutException.html" title="class in org.apache.guacamole" target="classFrame">GuacamoleClientTimeoutException</a></li>
<li><a href="GuacamoleClientTooManyException.html" title="class in org.apache.guacamole" target="classFrame">GuacamoleClientTooManyException</a></li>
<li><a href="GuacamoleConnectionClosedException.html" title="class in org.apache.guacamole" target="classFrame">GuacamoleConnectionClosedException</a></li>
<li><a href="GuacamoleException.html" title="class in org.apache.guacamole" target="classFrame">GuacamoleException</a></li>
<li><a href="GuacamoleResourceClosedException.html" title="class in org.apache.guacamole" target="classFrame">GuacamoleResourceClosedException</a></li>
<li><a href="GuacamoleResourceConflictException.html" title="class in org.apache.guacamole" target="classFrame">GuacamoleResourceConflictException</a></li>
<li><a href="GuacamoleResourceNotFoundException.html" title="class in org.apache.guacamole" target="classFrame">GuacamoleResourceNotFoundException</a></li>
<li><a href="GuacamoleSecurityException.html" title="class in org.apache.guacamole" target="classFrame">GuacamoleSecurityException</a></li>
<li><a href="GuacamoleServerBusyException.html" title="class in org.apache.guacamole" target="classFrame">GuacamoleServerBusyException</a></li>
<li><a href="GuacamoleServerException.html" title="class in org.apache.guacamole" target="classFrame">GuacamoleServerException</a></li>
<li><a href="GuacamoleSessionClosedException.html" title="class in org.apache.guacamole" target="classFrame">GuacamoleSessionClosedException</a></li>
<li><a href="GuacamoleSessionConflictException.html" title="class in org.apache.guacamole" target="classFrame">GuacamoleSessionConflictException</a></li>
<li><a href="GuacamoleSessionTimeoutException.html" title="class in org.apache.guacamole" target="classFrame">GuacamoleSessionTimeoutException</a></li>
<li><a href="GuacamoleUnauthorizedException.html" title="class in org.apache.guacamole" target="classFrame">GuacamoleUnauthorizedException</a></li>
<li><a href="GuacamoleUnsupportedException.html" title="class in org.apache.guacamole" target="classFrame">GuacamoleUnsupportedException</a></li>
<li><a href="GuacamoleUpstreamException.html" title="class in org.apache.guacamole" target="classFrame">GuacamoleUpstreamException</a></li>
<li><a href="GuacamoleUpstreamNotFoundException.html" title="class in org.apache.guacamole" target="classFrame">GuacamoleUpstreamNotFoundException</a></li>
<li><a href="GuacamoleUpstreamTimeoutException.html" title="class in org.apache.guacamole" target="classFrame">GuacamoleUpstreamTimeoutException</a></li>
<li><a href="GuacamoleUpstreamUnavailableException.html" title="class in org.apache.guacamole" target="classFrame">GuacamoleUpstreamUnavailableException</a></li>
</ul>
</div>
        <!-- Google Analytics -->
        <script type="text/javascript">
          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');

          ga('create', 'UA-75289145-1', 'auto');
          ga('send', 'pageview');
        </script>
</body>
</html>
