<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">


<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    
    <title>Exceptions Raised by MN and CN APIs &#8212; v2.1.0-beta</title>
    
    <link rel="stylesheet" href="../_static/dataone.css" type="text/css" />
    <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
    
    <script type="text/javascript">
      var DOCUMENTATION_OPTIONS = {
        URL_ROOT:    '../',
        VERSION:     '2.1.0-beta',
        COLLAPSE_INDEX: false,
        FILE_SUFFIX: '.html',
        HAS_SOURCE:  true,
        SOURCELINK_SUFFIX: '.txt'
      };
    </script>
    <script type="text/javascript" src="../_static/mathjax_pre.js"></script>
    <script type="text/javascript" src="../_static/jquery.js"></script>
    <script type="text/javascript" src="../_static/underscore.js"></script>
    <script type="text/javascript" src="../_static/doctools.js"></script>
    <script type="text/javascript" src="//cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-MML-AM_CHTML"></script>
    <script type="text/javascript" src="../_static/sidebar.js"></script>
    <link rel="author" title="About these documents" href="../about.html" />
    <link rel="index" title="Index" href="../genindex.html" />
    <link rel="search" title="Search" href="../search.html" />
    <link rel="next" title="Infrastructure Monitoring APIs" href="monitoring.html" />
    <link rel="prev" title="Data Types in CICore" href="Types2.html" />
   
  
  <link media="only screen and (max-device-width: 480px)" href="../_static/small_dataone.css" type= "text/css" rel="stylesheet" />

  </head>
  <body role="document">
  
    <div class="version_notice">
      <p>
      <span class='bold'>Warning:</span> These documents are under active 
      development and subject to change (version 2.1.0-beta).<br />
      The latest release documents are at:
      <a href="https://purl.dataone.org/architecture">https://purl.dataone.org/architecture</a>
      </p>
    </div>

    <div class="related" role="navigation" aria-label="related navigation">
      <h3>Navigation</h3>
      <ul>
        <li class="right" style="margin-right: 10px">
          <a href="../genindex.html" title="General Index"
             accesskey="I">index</a></li>
        <li class="right" >
          <a href="../py-modindex.html" title="Python Module Index"
             >modules</a> |</li>
        <li class="right" >
          <a href="monitoring.html" title="Infrastructure Monitoring APIs"
             accesskey="N">next</a> |</li>
        <li class="right" >
          <a href="Types2.html" title="Data Types in CICore"
             accesskey="P">previous</a> |</li>
        <li class="nav-item nav-item-0"><a href="../index.html"></a> &#187;</li>
          <li class="nav-item nav-item-1"><a href="index.html" accesskey="U">DataONE APIs</a> &#187;</li> 
      </ul>
    </div>  

    <div class="document">
      <div class="documentwrapper">
        <div class="bodywrapper">
          <div class="body">
            
  <div class="section" id="module-Exceptions">
<span id="exceptions-raised-by-mn-and-cn-apis"></span><h1><a class="toc-backref" href="#id16">Exceptions Raised by MN and CN APIs</a><a class="headerlink" href="#module-Exceptions" title="Permalink to this headline">¶</a></h1>
<div class="contents topic" id="contents">
<p class="topic-title first">Contents</p>
<ul class="simple">
<li><a class="reference internal" href="#module-Exceptions" id="id16">Exceptions Raised by MN and CN APIs</a><ul>
<li><a class="reference internal" href="#general" id="id17">General</a></li>
<li><a class="reference internal" href="#http-exception-handling-codes" id="id18">HTTP Exception Handling Codes</a></li>
<li><a class="reference internal" href="#serializing-exceptions" id="id19">Serializing Exceptions</a></li>
<li><a class="reference internal" href="#the-exceptions" id="id20">The Exceptions</a></li>
</ul>
</li>
</ul>
</div>
<div class="section" id="general">
<h2><a class="toc-backref" href="#id17">General</a><a class="headerlink" href="#general" title="Permalink to this headline">¶</a></h2>
<p>All exceptions raised by API methods in DataONE include three basic elements of
information and an optional element <code class="docutils literal"><span class="pre">traceInformation</span></code> as detailed in
<code class="xref py py-class docutils literal"><span class="pre">Types.ErrorMessage</span></code>, repeated here for convenience.</p>
<table border="1" class="docutils">
<colgroup>
<col width="14%" />
<col width="14%" />
<col width="71%" />
</colgroup>
<thead valign="bottom">
<tr class="row-odd"><th class="head">Element</th>
<th class="head">Cardinality</th>
<th class="head">Description</th>
</tr>
</thead>
<tbody valign="top">
<tr class="row-even"><td>errorCode</td>
<td>1</td>
<td>The error code. This is the HTTP error code (i.e. 4xx). In all cases,
the HTTP Status Code value in the response headers <em>should</em> match this
value.</td>
</tr>
<tr class="row-odd"><td>detailcode</td>
<td>1</td>
<td>A code that can be mapped to a specific location in the source code of
the implementation. Implemented as a string with dot notation to
indicate progressive levels of detail.</td>
</tr>
<tr class="row-even"><td>pid</td>
<td>0..1</td>
<td>Required for exceptions that include an identifier in the constructor
signature (e.g. NotFound, IdentifierNotUnique, SynchronizationFailed).</td>
</tr>
<tr class="row-odd"><td>nodeId</td>
<td>0..1</td>
<td>The node identifier of the machine that raised the exception</td>
</tr>
<tr class="row-even"><td>description</td>
<td>0..1</td>
<td>A human readable message describing what happened</td>
</tr>
<tr class="row-odd"><td>traceInformation</td>
<td>0..1</td>
<td>Optional free text providing more information about the error
condition. The intent of this element is to assist with debugging. Note
that care should be taken to ensure senstive information is not
accidentally exposed through error conditions.</td>
</tr>
</tbody>
</table>
<p>Expressed in xml-schema:</p>
<div class="highlight-xml"><div class="highlight"><pre><span></span><span class="cp">&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;</span>
<span class="nt">&lt;xs:schema</span> <span class="na">xmlns:xs=</span><span class="s">&quot;http://www.w3.org/2001/XMLSchema&quot;</span><span class="nt">&gt;</span>
    <span class="c">&lt;!-- A derived string type with at least length 1 and it must contain non-whitespace --&gt;</span>
    <span class="nt">&lt;xs:simpleType</span> <span class="na">name=</span><span class="s">&quot;NonEmptyString&quot;</span><span class="nt">&gt;</span>
        <span class="nt">&lt;xs:restriction</span> <span class="na">base=</span><span class="s">&quot;xs:string&quot;</span><span class="nt">&gt;</span>
            <span class="nt">&lt;xs:minLength</span> <span class="na">value=</span><span class="s">&quot;1&quot;</span> <span class="nt">/&gt;</span>
            <span class="nt">&lt;xs:pattern</span> <span class="na">value=</span><span class="s">&quot;[\s]*[\S][\s\S]*&quot;</span> <span class="nt">/&gt;</span>
        <span class="nt">&lt;/xs:restriction&gt;</span>
    <span class="nt">&lt;/xs:simpleType&gt;</span>

    <span class="c">&lt;!-- Exception type for error serialization in DataONE --&gt;</span>
    <span class="nt">&lt;xs:complexType</span> <span class="na">name=</span><span class="s">&quot;DataONEException&quot;</span><span class="nt">&gt;</span>
        <span class="nt">&lt;xs:sequence&gt;</span>
            <span class="nt">&lt;xs:element</span> <span class="na">name=</span><span class="s">&quot;description&quot;</span> <span class="na">minOccurs=</span><span class="s">&quot;0&quot;</span> <span class="na">maxOccurs=</span><span class="s">&quot;1&quot;</span> <span class="na">type=</span><span class="s">&quot;xs:string&quot;</span><span class="nt">&gt;&lt;/xs:element&gt;</span>
            <span class="nt">&lt;xs:element</span> <span class="na">name=</span><span class="s">&quot;traceInformation&quot;</span> <span class="na">minOccurs=</span><span class="s">&quot;0&quot;</span> <span class="na">maxOccurs=</span><span class="s">&quot;1&quot;</span> <span class="na">type=</span><span class="s">&quot;xs:anyType&quot;</span><span class="nt">&gt;&lt;/xs:element&gt;</span>
        <span class="nt">&lt;/xs:sequence&gt;</span>
        <span class="nt">&lt;xs:attribute</span> <span class="na">name=</span><span class="s">&quot;name&quot;</span> <span class="na">type=</span><span class="s">&quot;NonEmptyString&quot;</span> <span class="na">use=</span><span class="s">&quot;required&quot;</span><span class="nt">&gt;&lt;/xs:attribute&gt;</span>
        <span class="nt">&lt;xs:attribute</span> <span class="na">name=</span><span class="s">&quot;errorCode&quot;</span> <span class="na">type=</span><span class="s">&quot;xs:integer&quot;</span> <span class="na">use=</span><span class="s">&quot;required&quot;</span><span class="nt">&gt;&lt;/xs:attribute&gt;</span>
        <span class="nt">&lt;xs:attribute</span> <span class="na">name=</span><span class="s">&quot;detailCode&quot;</span> <span class="na">type=</span><span class="s">&quot;NonEmptyString&quot;</span> <span class="na">use=</span><span class="s">&quot;required&quot;</span><span class="nt">&gt;&lt;/xs:attribute&gt;</span>
        <span class="nt">&lt;xs:attribute</span> <span class="na">name=</span><span class="s">&#39;identifier&#39;</span> <span class="na">type=</span><span class="s">&quot;NonEmptyString&quot;</span> <span class="na">use=</span><span class="s">&quot;optional&quot;</span><span class="nt">&gt;&lt;/xs:attribute&gt;</span>
        <span class="nt">&lt;xs:attribute</span> <span class="na">name=</span><span class="s">&#39;nodeId&#39;</span> <span class="na">type=</span><span class="s">&quot;NonEmptyString&quot;</span> <span class="na">use=</span><span class="s">&quot;optional&quot;</span><span class="nt">&gt;&lt;/xs:attribute&gt;</span>
    <span class="nt">&lt;/xs:complexType&gt;</span>
<span class="nt">&lt;/xs:schema&gt;</span>
</pre></div>
</div>
</div>
<div class="section" id="http-exception-handling-codes">
<span id="exceptioncodes"></span><h2><a class="toc-backref" href="#id18">HTTP Exception Handling Codes</a><a class="headerlink" href="#http-exception-handling-codes" title="Permalink to this headline">¶</a></h2>
<p>HTTP error codes of relevance to the DataONE services are repeated here for
convenience. Refer to the <a class="reference external" href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html">HTTP specification</a> for a complete reference.</p>
<table border="1" class="docutils">
<colgroup>
<col width="13%" />
<col width="25%" />
<col width="63%" />
</colgroup>
<thead valign="bottom">
<tr class="row-odd"><th class="head">Code</th>
<th class="head">Meaning</th>
<th class="head">Description</th>
</tr>
</thead>
<tbody valign="top">
<tr class="row-even"><td>400</td>
<td>Bad Request</td>
<td>Bad request if the request REST operation is invalid, serialization is erroneous, mime type is not supported, or resource is not supported.</td>
</tr>
<tr class="row-odd"><td>401</td>
<td>Unauthorized</td>
<td>Authentication failure. Credentials are required or were invalid.</td>
</tr>
<tr class="row-even"><td>403</td>
<td>Forbidden</td>
<td>The current user does not have the right to perform the requested action.</td>
</tr>
<tr class="row-odd"><td>404</td>
<td>Not Found</td>
<td>The requested resource does not exist.</td>
</tr>
<tr class="row-even"><td>405</td>
<td>Method not allowed</td>
<td>The HTTP method used is not allowed on this resource. Response must include an Allow header indicating valid HTTP methods.</td>
</tr>
<tr class="row-odd"><td>406</td>
<td>Not Acceptable</td>
<td>The resource identified by the request is only capable of generating response entities which have content characteristics not acceptable according to the accept headers sent in the request.</td>
</tr>
<tr class="row-even"><td>408</td>
<td>Request Timeout</td>
<td>The client did not produce a request within the time that the server was prepared to wait.</td>
</tr>
<tr class="row-odd"><td>409</td>
<td>Conflict</td>
<td>The request could not be completed due to a conflict with the current state of the resource.</td>
</tr>
<tr class="row-even"><td>410</td>
<td>Gone</td>
<td>The resource is known to be permanently deleted (as opposed to 404 which indicates uncertainty about the state of the object).</td>
</tr>
<tr class="row-odd"><td>413</td>
<td>Request Entity Too Large</td>
<td>The server is refusing to process a request because the request entity is larger than the server is willing or able to process.</td>
</tr>
<tr class="row-even"><td>415</td>
<td>Unsupported Media Type</td>
<td>The server is refusing to service the request because the entity of the request is in a format not supported by the requested resource for the requested method.</td>
</tr>
<tr class="row-odd"><td>500</td>
<td>Internal Server Error</td>
<td>The server encountered an unexpected condition which prevented it from fulfilling the request.</td>
</tr>
<tr class="row-even"><td>501</td>
<td>Not Implemented</td>
<td>The server does not support the functionality required  to fulfill the request. This is the appropriate response when the server does not recognize the request method and is not capable of supporting it for any resource.</td>
</tr>
</tbody>
</table>
</div>
<div class="section" id="serializing-exceptions">
<h2><a class="toc-backref" href="#id19">Serializing Exceptions</a><a class="headerlink" href="#serializing-exceptions" title="Permalink to this headline">¶</a></h2>
<p>All error messages in DataONE are serialized in XML. In the future, DataONE
interfaces may support additional serialization formats such as HTML and JSON,
and the serialization format will be selected through normal HTTP content
negotiation procedures (<a class="reference external" href="http://tools.ietf.org/html/rfc2616">RFC2616</a>).</p>
<p>An example of an XML serialized error message:</p>
<div class="highlight-xml"><div class="highlight"><pre><span></span><span class="nt">&lt;error</span> <span class="na">name=</span><span class="s">&#39;NotFound&#39;</span>
       <span class="na">errorCode=</span><span class="s">&#39;404&#39;</span>
       <span class="na">detailCode=</span><span class="s">&#39;1020.1&#39;</span>
       <span class="na">pid=</span><span class="s">&#39;123XYZ&#39;</span>
       <span class="na">nodeId=</span><span class="s">&#39;urn:node:DEMO1&#39;</span><span class="nt">&gt;</span>
  <span class="nt">&lt;description&gt;</span>The specified object does not exist on this node.<span class="nt">&lt;/description&gt;</span>
  <span class="nt">&lt;traceInformation&gt;</span>
    method: mn.get
    hint: http://cn.dataone.org/cn/resolve/123XYZ
  <span class="nt">&lt;/traceInformation&gt;</span>
<span class="nt">&lt;/error&gt;</span>
</pre></div>
</div>
<p>Note that the <em>detailCode</em>, <em>pid</em>, and <em>nodeId</em> attributes are optional. The
<em>description</em> element is optional but strongly recommended, and
<em>traceInformation</em> is optional though especially useful during development and
testing.</p>
</div>
<div class="section" id="the-exceptions">
<h2><a class="toc-backref" href="#id20">The Exceptions</a><a class="headerlink" href="#the-exceptions" title="Permalink to this headline">¶</a></h2>
<table border="1" class="docutils" id="id15">
<caption><span class="caption-text">Summary of exceptions defined in the DataONE APIs</span><a class="headerlink" href="#id15" title="Permalink to this table">¶</a></caption>
<colgroup>
<col width="26%" />
<col width="10%" />
<col width="65%" />
</colgroup>
<thead valign="bottom">
<tr class="row-odd"><th class="head">Exception</th>
<th class="head">errorCode</th>
<th class="head">Description</th>
</tr>
</thead>
<tbody valign="top">
<tr class="row-even"><td><a class="reference internal" href="#Exceptions.AuthenticationTimeout" title="Exceptions.AuthenticationTimeout"><code class="xref py py-exc docutils literal"><span class="pre">Exceptions.AuthenticationTimeout</span></code></a></td>
<td><a class="reference external" href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.9">408</a></td>
<td>The authentication request timed out.</td>
</tr>
<tr class="row-odd"><td><a class="reference internal" href="#Exceptions.IdentifierNotUnique" title="Exceptions.IdentifierNotUnique"><code class="xref py py-exc docutils literal"><span class="pre">Exceptions.IdentifierNotUnique</span></code></a></td>
<td><a class="reference external" href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.10">409</a></td>
<td>The provided identifier conflicts with an existing identifier in the DataONE system. When serializing, the identifier in conflict should be rendered in traceInformation as the value of an identifier key.</td>
</tr>
<tr class="row-even"><td><a class="reference internal" href="#Exceptions.InsufficientResources" title="Exceptions.InsufficientResources"><code class="xref py py-exc docutils literal"><span class="pre">Exceptions.InsufficientResources</span></code></a></td>
<td><a class="reference external" href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.14">413</a></td>
<td>There are insufficient resources at the node to support the requested operation.</td>
</tr>
<tr class="row-odd"><td><a class="reference internal" href="#Exceptions.InvalidCredentials" title="Exceptions.InvalidCredentials"><code class="xref py py-exc docutils literal"><span class="pre">Exceptions.InvalidCredentials</span></code></a></td>
<td><a class="reference external" href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.2">401</a></td>
<td>Indicates that the credentials supplied (to <code class="xref py py-func docutils literal"><span class="pre">CN_crud.login()</span></code> for example) are invalid for some reason.</td>
</tr>
<tr class="row-even"><td><a class="reference internal" href="#Exceptions.InvalidRequest" title="Exceptions.InvalidRequest"><code class="xref py py-exc docutils literal"><span class="pre">Exceptions.InvalidRequest</span></code></a></td>
<td><a class="reference external" href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.1">400</a></td>
<td>The parameters provided in the call were invalid. The names and values of parameters should included in traceInformation.</td>
</tr>
<tr class="row-odd"><td><a class="reference internal" href="#Exceptions.InvalidSystemMetadata" title="Exceptions.InvalidSystemMetadata"><code class="xref py py-exc docutils literal"><span class="pre">Exceptions.InvalidSystemMetadata</span></code></a></td>
<td><a class="reference external" href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.1">400</a></td>
<td>The supplied system metadata is invalid. This could be because some required field is not set, the metadata document is malformed, or the value of some field is not valid. The content of traceInformation should contain additional information about the error encountered (e.g. name of the field with bad value, if the document is malformed).</td>
</tr>
<tr class="row-even"><td><a class="reference internal" href="#Exceptions.InvalidToken" title="Exceptions.InvalidToken"><code class="xref py py-exc docutils literal"><span class="pre">Exceptions.InvalidToken</span></code></a></td>
<td><a class="reference external" href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.2">401</a></td>
<td>The supplied authentication token (Session) could not be verified as being valid.</td>
</tr>
<tr class="row-odd"><td><a class="reference internal" href="#Exceptions.NotAuthorized" title="Exceptions.NotAuthorized"><code class="xref py py-exc docutils literal"><span class="pre">Exceptions.NotAuthorized</span></code></a></td>
<td><a class="reference external" href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.2">401</a></td>
<td>The supplied identity information is not authorized for the requested operation.</td>
</tr>
<tr class="row-even"><td><a class="reference internal" href="#Exceptions.NotFound" title="Exceptions.NotFound"><code class="xref py py-exc docutils literal"><span class="pre">Exceptions.NotFound</span></code></a></td>
<td><a class="reference external" href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.5">404</a></td>
<td>Used to indicate that an object is not present on the node where the exception was raised.  The error message should include a reference to the <code class="xref py py-func docutils literal"><span class="pre">CN_crud.resolve()</span></code> method URL for the object.</td>
</tr>
<tr class="row-odd"><td><a class="reference internal" href="#Exceptions.NotImplemented" title="Exceptions.NotImplemented"><code class="xref py py-exc docutils literal"><span class="pre">Exceptions.NotImplemented</span></code></a></td>
<td><a class="reference external" href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.5.2">501</a></td>
<td>A method is not implemented, or alternatively, features of a particular method are not implemented.</td>
</tr>
<tr class="row-even"><td><a class="reference internal" href="#Exceptions.ServiceFailure" title="Exceptions.ServiceFailure"><code class="xref py py-exc docutils literal"><span class="pre">Exceptions.ServiceFailure</span></code></a></td>
<td><a class="reference external" href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.5.1">500</a></td>
<td>Some sort of system failure occurred that is preventing the requested operation from completing successfully. This error can be raised by any method in the DataONE API.</td>
</tr>
<tr class="row-odd"><td><a class="reference internal" href="#Exceptions.UnsupportedMetadataType" title="Exceptions.UnsupportedMetadataType"><code class="xref py py-exc docutils literal"><span class="pre">Exceptions.UnsupportedMetadataType</span></code></a></td>
<td><a class="reference external" href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.1">400</a></td>
<td>The science metadata document submitted is not of a type that is recognized by the DataONE system.</td>
</tr>
<tr class="row-even"><td><a class="reference internal" href="#Exceptions.UnsupportedType" title="Exceptions.UnsupportedType"><code class="xref py py-exc docutils literal"><span class="pre">Exceptions.UnsupportedType</span></code></a></td>
<td><a class="reference external" href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.1">400</a></td>
<td>The information presented appears to be unsupported. This error might be encountered when attempting to register unrecognized science metadata for example.</td>
</tr>
<tr class="row-odd"><td><a class="reference internal" href="#Exceptions.SynchronizationFailed" title="Exceptions.SynchronizationFailed"><code class="xref py py-exc docutils literal"><span class="pre">Exceptions.SynchronizationFailed</span></code></a></td>
<td>0</td>
<td>Sent to a Member Node from a Coordinating Node when an attempt to synchronize some object fails.</td>
</tr>
<tr class="row-even"><td><a class="reference internal" href="#Exceptions.VersionMismatch" title="Exceptions.VersionMismatch"><code class="xref py py-exc docutils literal"><span class="pre">Exceptions.VersionMismatch</span></code></a></td>
<td><a class="reference external" href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.10">409</a></td>
<td>The serialVersion of the system metadata being updated differs from the serialVersion supplied with the change request.</td>
</tr>
</tbody>
</table>
<hr class="docutils" />
<dl class="exception">
<dt id="Exceptions.AuthenticationTimeout">
<em class="property">exception </em><code class="descclassname">Exceptions.</code><code class="descname">AuthenticationTimeout</code><span class="sig-paren">(</span><em>detailCode</em>, <em>description</em>, <em>traceInformation</em><span class="sig-paren">)</span><a class="headerlink" href="#Exceptions.AuthenticationTimeout" title="Permalink to this definition">¶</a></dt>
<dd><p>The authentication request timed out.</p>
<table class="docutils field-list" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
<tr class="field-odd field"><th class="field-name">ErrorCode:</th><td class="field-body"><p class="first">408</p>
</td>
</tr>
<tr class="field-even field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
<li><strong>detailCode</strong> (<em>string</em>) &#8211; Set by the method raising the exception.</li>
<li><strong>description</strong> (<em>string</em>) &#8211; Human readable description that can assist the caller in determining</li>
<li><strong>traceInformation</strong> (<em>dictionary</em>) &#8211; Optional set of key-value pairs that can include the name of the method that raised the error plus other details such as parameters used in the call that can be helpful for debugging. Sensitive information such as passwords must <strong>never</strong> be logged or recorded in error messages.</li>
</ul>
</td>
</tr>
</tbody>
</table>
</dd></dl>

<hr class="docutils" />
<dl class="exception">
<dt id="Exceptions.IdentifierNotUnique">
<em class="property">exception </em><code class="descclassname">Exceptions.</code><code class="descname">IdentifierNotUnique</code><span class="sig-paren">(</span><em>detailCode</em>, <em>description</em>, <em>pid</em><span class="optional">[</span>, <em>traceInformation</em><span class="optional">]</span><span class="sig-paren">)</span><a class="headerlink" href="#Exceptions.IdentifierNotUnique" title="Permalink to this definition">¶</a></dt>
<dd><p>The provided identifier conflicts with an existing identifier in the DataONE system. When serializing, the identifier in conflict should be rendered in traceInformation as the value of an identifier key.</p>
<table class="docutils field-list" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
<tr class="field-odd field"><th class="field-name">ErrorCode:</th><td class="field-body"><p class="first">409</p>
</td>
</tr>
<tr class="field-even field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
<li><strong>detailCode</strong> (<em>string</em>) &#8211; Set by the method raising the exception.</li>
<li><strong>description</strong> (<em>string</em>) &#8211; Human readable description that can assist the caller in determining how to avoid the problem.</li>
<li><strong>pid</strong> (<a class="reference internal" href="Types.html#Types.Identifier" title="Types.Identifier"><code class="xref py py-class docutils literal"><span class="pre">Types.Identifier</span></code></a>) &#8211; The identifier value that is in conflict</li>
<li><strong>traceInformation</strong> (<em>dictionary</em>) &#8211; Optional additional information to assist with debugging.</li>
</ul>
</td>
</tr>
</tbody>
</table>
</dd></dl>

<hr class="docutils" />
<dl class="exception">
<dt id="Exceptions.InsufficientResources">
<em class="property">exception </em><code class="descclassname">Exceptions.</code><code class="descname">InsufficientResources</code><span class="sig-paren">(</span><em>detailCode</em>, <em>description</em><span class="optional">[</span>, <em>traceInformation</em><span class="optional">]</span><span class="sig-paren">)</span><a class="headerlink" href="#Exceptions.InsufficientResources" title="Permalink to this definition">¶</a></dt>
<dd><p>There are insufficient resources at the node to support the requested operation.</p>
<table class="docutils field-list" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
<tr class="field-odd field"><th class="field-name">ErrorCode:</th><td class="field-body"><p class="first">413</p>
</td>
</tr>
<tr class="field-even field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
<li><strong>detailCode</strong> (<em>string</em>) &#8211; Set by the method raising the exception.</li>
<li><strong>description</strong> (<em>string</em>) &#8211; Human readable description that can assist the caller in determining how to avoid the problem.</li>
<li><strong>traceInformation</strong> (<em>dictionary</em>) &#8211; Optional set of key-value pairs that can include the name of the method that raised the error plus other details such as parameters used in the call that can be helpful for debugging.</li>
</ul>
</td>
</tr>
</tbody>
</table>
</dd></dl>

<hr class="docutils" />
<dl class="exception">
<dt id="Exceptions.InvalidCredentials">
<em class="property">exception </em><code class="descclassname">Exceptions.</code><code class="descname">InvalidCredentials</code><span class="sig-paren">(</span><em>detailCode</em>, <em>description</em><span class="optional">[</span>, <em>traceInformation</em><span class="optional">]</span><span class="sig-paren">)</span><a class="headerlink" href="#Exceptions.InvalidCredentials" title="Permalink to this definition">¶</a></dt>
<dd><p>Indicates that the credentials supplied (to <code class="xref py py-func docutils literal"><span class="pre">CN_crud.login()</span></code> for example) are invalid for some reason.</p>
<table class="docutils field-list" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
<tr class="field-odd field"><th class="field-name">ErrorCode:</th><td class="field-body"><p class="first">401</p>
</td>
</tr>
<tr class="field-even field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
<li><strong>detailCode</strong> (<em>string</em>) &#8211; Set by the method raising the exception.</li>
<li><strong>description</strong> (<em>string</em>) &#8211; Human readable description that can assist the caller in determining how to avoid the problem.</li>
<li><strong>traceInformation</strong> (<em>dictionary</em>) &#8211; Can include the name of the method that raised the error and perhaps the username. Obviously, the supplied password or other sensitive information should not be included.</li>
</ul>
</td>
</tr>
</tbody>
</table>
</dd></dl>

<hr class="docutils" />
<dl class="exception">
<dt id="Exceptions.InvalidRequest">
<em class="property">exception </em><code class="descclassname">Exceptions.</code><code class="descname">InvalidRequest</code><span class="sig-paren">(</span><em>detailCode</em>, <em>description</em><span class="optional">[</span>, <em>traceInformation</em><span class="optional">]</span><span class="sig-paren">)</span><a class="headerlink" href="#Exceptions.InvalidRequest" title="Permalink to this definition">¶</a></dt>
<dd><p>The parameters provided in the call were invalid. The names and values of parameters should included in traceInformation.</p>
<table class="docutils field-list" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
<tr class="field-odd field"><th class="field-name">ErrorCode:</th><td class="field-body"><p class="first">400</p>
</td>
</tr>
<tr class="field-even field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
<li><strong>detailCode</strong> (<em>string</em>) &#8211; Set by the method raising the exception.</li>
<li><strong>description</strong> (<em>string</em>) &#8211; Human readable description that can assist the caller in determining how to avoid the problem.</li>
<li><strong>traceInformation</strong> (<em>dictionary</em>) &#8211; Can include the name of the method that raised the error and perhaps the username. Obviously, the supplied password or other sensitive information should not be included.</li>
</ul>
</td>
</tr>
</tbody>
</table>
</dd></dl>

<hr class="docutils" />
<dl class="exception">
<dt id="Exceptions.InvalidSystemMetadata">
<em class="property">exception </em><code class="descclassname">Exceptions.</code><code class="descname">InvalidSystemMetadata</code><span class="sig-paren">(</span><em>detailCode</em>, <em>description</em><span class="optional">[</span>, <em>traceInformation</em><span class="optional">]</span><span class="sig-paren">)</span><a class="headerlink" href="#Exceptions.InvalidSystemMetadata" title="Permalink to this definition">¶</a></dt>
<dd><p>The supplied system metadata is invalid. This could be because some required field is not set, the metadata document is malformed, or the value of some field is not valid. The content of traceInformation should contain additional information about the error encountered (e.g. name of the field with bad value, if the document is malformed).</p>
<table class="docutils field-list" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
<tr class="field-odd field"><th class="field-name">ErrorCode:</th><td class="field-body"><p class="first">400</p>
</td>
</tr>
<tr class="field-even field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
<li><strong>detailCode</strong> (<em>string</em>) &#8211; Set by the method raising the exception.</li>
<li><strong>description</strong> (<em>string</em>) &#8211; Human readable description that can assist the caller in determining how to avoid the problem.</li>
<li><strong>traceInformation</strong> (<em>dictionary</em>) &#8211; Key-value pairs that should include additional information about the error that was encountered while processing the SystemMetadata document.</li>
</ul>
</td>
</tr>
</tbody>
</table>
</dd></dl>

<hr class="docutils" />
<dl class="exception">
<dt id="Exceptions.InvalidToken">
<em class="property">exception </em><code class="descclassname">Exceptions.</code><code class="descname">InvalidToken</code><span class="sig-paren">(</span><em>detailCode</em>, <em>description</em><span class="optional">[</span>, <em>traceInformation</em><span class="optional">]</span><span class="sig-paren">)</span><a class="headerlink" href="#Exceptions.InvalidToken" title="Permalink to this definition">¶</a></dt>
<dd><p>The supplied authentication token (Session) could not be verified as being valid.</p>
<table class="docutils field-list" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
<tr class="field-odd field"><th class="field-name">ErrorCode:</th><td class="field-body"><p class="first">401</p>
</td>
</tr>
<tr class="field-even field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
<li><strong>detailCode</strong> (<em>string</em>) &#8211; Set by the method raising the exception.</li>
<li><strong>description</strong> (<em>string</em>) &#8211; Human readable description that can assist the caller in determining how to avoid the problem.</li>
<li><strong>traceInformation</strong> (<em>dictionary</em>) &#8211; Optional set of key-value pairs that can include the name of the method that raised the error plus other details such as parameters used in the call that can be helpful for debugging.</li>
</ul>
</td>
</tr>
</tbody>
</table>
</dd></dl>

<hr class="docutils" />
<dl class="exception">
<dt id="Exceptions.NotAuthorized">
<em class="property">exception </em><code class="descclassname">Exceptions.</code><code class="descname">NotAuthorized</code><span class="sig-paren">(</span><em>detailCode</em>, <em>description</em><span class="optional">[</span>, <em>traceInformation</em><span class="optional">]</span><span class="sig-paren">)</span><a class="headerlink" href="#Exceptions.NotAuthorized" title="Permalink to this definition">¶</a></dt>
<dd><p>The supplied identity information is not authorized for the requested operation.</p>
<table class="docutils field-list" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
<tr class="field-odd field"><th class="field-name">ErrorCode:</th><td class="field-body"><p class="first">401</p>
</td>
</tr>
<tr class="field-even field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
<li><strong>detailCode</strong> (<em>string</em>) &#8211; Set by the method raising the exception.</li>
<li><strong>description</strong> (<em>string</em>) &#8211; Human readable description that can assist the caller in determining how to avoid the problem.</li>
<li><strong>traceInformation</strong> (<em>dictionary</em>) &#8211; Optional set of key-value pairs that can include the name of the method that raised the error plus other details such as parameters used in the call that can be helpful for debugging.</li>
</ul>
</td>
</tr>
</tbody>
</table>
</dd></dl>

<hr class="docutils" />
<dl class="exception">
<dt id="Exceptions.NotFound">
<em class="property">exception </em><code class="descclassname">Exceptions.</code><code class="descname">NotFound</code><span class="sig-paren">(</span><em>detailCode</em>, <em>description</em>, <em>pid</em><span class="optional">[</span>, <em>traceInformation</em><span class="optional">]</span><span class="sig-paren">)</span><a class="headerlink" href="#Exceptions.NotFound" title="Permalink to this definition">¶</a></dt>
<dd><p>Used to indicate that an object is not present on the node where the exception was raised.  The error message should include a reference to the <code class="xref py py-func docutils literal"><span class="pre">CN_crud.resolve()</span></code> method URL for the object.</p>
<table class="docutils field-list" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
<tr class="field-odd field"><th class="field-name">ErrorCode:</th><td class="field-body"><p class="first">404</p>
</td>
</tr>
<tr class="field-even field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
<li><strong>detailCode</strong> (<em>string</em>) &#8211; Set by the method raising the exception.</li>
<li><strong>description</strong> (<em>string</em>) &#8211; Human readable description that can assist the caller in determining how to avoid the problem.</li>
<li><strong>pid</strong> (<a class="reference internal" href="Types.html#Types.Identifier" title="Types.Identifier"><code class="xref py py-class docutils literal"><span class="pre">Types.Identifier</span></code></a>) &#8211; The identifier of the object that can not be located.</li>
<li><strong>traceInformation</strong> (<em>dictionary</em>) &#8211; Optional set of key-value pairs that can include the name of the method that raised the error plus other details such as parameters used in the call that can be helpful for debugging.</li>
</ul>
</td>
</tr>
</tbody>
</table>
</dd></dl>

<hr class="docutils" />
<dl class="exception">
<dt id="Exceptions.NotImplemented">
<em class="property">exception </em><code class="descclassname">Exceptions.</code><code class="descname">NotImplemented</code><span class="sig-paren">(</span><em>detailCode</em>, <em>description</em><span class="optional">[</span>, <em>traceInformation</em><span class="optional">]</span><span class="sig-paren">)</span><a class="headerlink" href="#Exceptions.NotImplemented" title="Permalink to this definition">¶</a></dt>
<dd><p>A method is not implemented, or alternatively, features of a particular method are not implemented.</p>
<table class="docutils field-list" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
<tr class="field-odd field"><th class="field-name">ErrorCode:</th><td class="field-body"><p class="first">501</p>
</td>
</tr>
<tr class="field-even field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
<li><strong>detailCode</strong> (<em>string</em>) &#8211; Set by the method raising the exception.</li>
<li><strong>description</strong> (<em>string</em>) &#8211; Human readable description that can assist the caller in determining how to avoid the problem.</li>
<li><strong>traceInformation</strong> (<em>dictionary</em>) &#8211; Optional set of key-value pairs that can include the name of the method that raised the error plus other details such as parameters used in the call that can be helpful for debugging.</li>
</ul>
</td>
</tr>
</tbody>
</table>
</dd></dl>

<hr class="docutils" />
<dl class="exception">
<dt id="Exceptions.ServiceFailure">
<em class="property">exception </em><code class="descclassname">Exceptions.</code><code class="descname">ServiceFailure</code><span class="sig-paren">(</span><em>detailCode</em>, <em>description</em><span class="optional">[</span>, <em>traceInformation</em><span class="optional">]</span><span class="sig-paren">)</span><a class="headerlink" href="#Exceptions.ServiceFailure" title="Permalink to this definition">¶</a></dt>
<dd><p>Some sort of system failure occurred that is preventing the requested operation from completing successfully. This error can be raised by any method in the DataONE API.</p>
<table class="docutils field-list" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
<tr class="field-odd field"><th class="field-name">ErrorCode:</th><td class="field-body"><p class="first">500</p>
</td>
</tr>
<tr class="field-even field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
<li><strong>detailCode</strong> (<em>string</em>) &#8211; Set by the method raising the exception.</li>
<li><strong>description</strong> (<em>string</em>) &#8211; Human readable description that can assist the caller in determining how to avoid the problem.</li>
<li><strong>traceInformation</strong> (<em>dictionary</em>) &#8211; Optional set of key-value pairs that can include the name of the method that raised the error plus other details such as parameters used in the call that can be helpful for debugging.</li>
</ul>
</td>
</tr>
</tbody>
</table>
</dd></dl>

<hr class="docutils" />
<dl class="exception">
<dt id="Exceptions.UnsupportedMetadataType">
<em class="property">exception </em><code class="descclassname">Exceptions.</code><code class="descname">UnsupportedMetadataType</code><span class="sig-paren">(</span><em>detailCode</em>, <em>description</em><span class="optional">[</span>, <em>traceInformation</em><span class="optional">]</span><span class="sig-paren">)</span><a class="headerlink" href="#Exceptions.UnsupportedMetadataType" title="Permalink to this definition">¶</a></dt>
<dd><p>The science metadata document submitted is not of a type that is recognized by the DataONE system.</p>
<table class="docutils field-list" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
<tr class="field-odd field"><th class="field-name">ErrorCode:</th><td class="field-body"><p class="first">400</p>
</td>
</tr>
<tr class="field-even field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
<li><strong>detailCode</strong> (<em>string</em>) &#8211; Set by the method raising the exception.</li>
<li><strong>description</strong> (<em>string</em>) &#8211; Human readable description that can assist the caller in determining how to avoid the problem.</li>
<li><strong>traceInformation</strong> (<em>dictionary</em>) &#8211; Optional set of key-value pairs that can include the name of the method that raised the error plus other details such as parameters used in the call that can be helpful for debugging.</li>
</ul>
</td>
</tr>
</tbody>
</table>
</dd></dl>

<hr class="docutils" />
<dl class="exception">
<dt id="Exceptions.UnsupportedType">
<em class="property">exception </em><code class="descclassname">Exceptions.</code><code class="descname">UnsupportedType</code><span class="sig-paren">(</span><em>detailCode</em>, <em>description</em><span class="optional">[</span>, <em>traceInformation</em><span class="optional">]</span><span class="sig-paren">)</span><a class="headerlink" href="#Exceptions.UnsupportedType" title="Permalink to this definition">¶</a></dt>
<dd><p>The information presented appears to be unsupported. This error might be encountered when attempting to register unrecognized science metadata for example.</p>
<table class="docutils field-list" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
<tr class="field-odd field"><th class="field-name">ErrorCode:</th><td class="field-body"><p class="first">400</p>
</td>
</tr>
<tr class="field-even field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
<li><strong>detailCode</strong> (<em>string</em>) &#8211; Set by the method raising the exception.</li>
<li><strong>description</strong> (<em>string</em>) &#8211; Human readable description that can assist the caller in determining how to avoid the problem.</li>
<li><strong>traceInformation</strong> (<em>dictionary</em>) &#8211; Optional set of key-value pairs that can include the name of the method that raised the error plus other details such as parameters used in the call that can be helpful for debugging.</li>
</ul>
</td>
</tr>
</tbody>
</table>
</dd></dl>

<hr class="docutils" />
<dl class="exception">
<dt id="Exceptions.SynchronizationFailed">
<em class="property">exception </em><code class="descclassname">Exceptions.</code><code class="descname">SynchronizationFailed</code><span class="sig-paren">(</span><em>detailCode</em>, <em>description</em>, <em>pid</em><span class="optional">[</span>, <em>traceInformation</em><span class="optional">]</span><span class="sig-paren">)</span><a class="headerlink" href="#Exceptions.SynchronizationFailed" title="Permalink to this definition">¶</a></dt>
<dd><p>Sent to a Member Node from a Coordinating Node when an attempt to synchronize some object fails.</p>
<table class="docutils field-list" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
<tr class="field-odd field"><th class="field-name">ErrorCode:</th><td class="field-body"><p class="first">0</p>
</td>
</tr>
<tr class="field-even field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
<li><strong>detailCode</strong> (<em>string</em>) &#8211; Set by the method raising the exception.</li>
<li><strong>description</strong> (<em>string</em>) &#8211; Human readable description of the problem which can be forwarded to an administrator for further action.</li>
<li><strong>pid</strong> (<a class="reference internal" href="Types.html#Types.Identifier" title="Types.Identifier"><code class="xref py py-class docutils literal"><span class="pre">Types.Identifier</span></code></a>) &#8211; Identifier of the object that could not be synchronized.</li>
<li><strong>traceInformation</strong> (<em>dictionary</em>) &#8211; Optional set of key-value pairs that can include the name of the method that raised the error plus other details such as parameters used in the call that can be helpful for debugging.</li>
</ul>
</td>
</tr>
</tbody>
</table>
</dd></dl>

<hr class="docutils" />
<dl class="exception">
<dt id="Exceptions.VersionMismatch">
<em class="property">exception </em><code class="descclassname">Exceptions.</code><code class="descname">VersionMismatch</code><span class="sig-paren">(</span><em>detailCode</em>, <em>description</em>, <em>pid</em><span class="optional">[</span>, <em>traceInformation</em><span class="optional">]</span><span class="sig-paren">)</span><a class="headerlink" href="#Exceptions.VersionMismatch" title="Permalink to this definition">¶</a></dt>
<dd><p>The serialVersion of the system metadata being updated differs from the serialVersion supplied with the change request.</p>
<table class="docutils field-list" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
<tr class="field-odd field"><th class="field-name">ErrorCode:</th><td class="field-body"><p class="first">409</p>
</td>
</tr>
<tr class="field-even field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
<li><strong>detailCode</strong> (<em>string</em>) &#8211; Set by the method raising the exception.</li>
<li><strong>description</strong> (<em>string</em>) &#8211; Human readable description of the problem which can be forwarded to an administrator for further action.</li>
<li><strong>pid</strong> (<a class="reference internal" href="Types.html#Types.Identifier" title="Types.Identifier"><code class="xref py py-class docutils literal"><span class="pre">Types.Identifier</span></code></a>) &#8211; Identifier of the system metadata for the object being updated.</li>
<li><strong>traceInformation</strong> (<em>dictionary</em>) &#8211; Optional set of key-value pairs that can include the name of the method that raised the error plus other details such as parameters used in the call that can be helpful for debugging.</li>
</ul>
</td>
</tr>
</tbody>
</table>
</dd></dl>

</div>
</div>


          </div>
        </div>
      </div>
      <div class="sphinxsidebar" role="navigation" aria-label="main navigation">
        <div class="sphinxsidebarwrapper">
    <p class="logo"><a href="http://dataone.org">
      <img class="logo" src="../_static/dataone_logo.png" alt="Logo"/>
    </a></p>
  <h3><a href="../index.html">Table Of Contents</a></h3>
  <ul>
<li><a class="reference internal" href="#">Exceptions Raised by MN and CN APIs</a><ul>
<li><a class="reference internal" href="#general">General</a></li>
<li><a class="reference internal" href="#http-exception-handling-codes">HTTP Exception Handling Codes</a></li>
<li><a class="reference internal" href="#serializing-exceptions">Serializing Exceptions</a></li>
<li><a class="reference internal" href="#the-exceptions">The Exceptions</a></li>
</ul>
</li>
</ul>
<h3>Related Topics</h3>
<ul>
  <li><a href="../index.html">Documentation Overview</a><ul>
  <li><a href="index.html">DataONE APIs</a><ul>
      <li>Previous: <a href="Types2.html" title="previous chapter">Data Types in CICore</a></li>
      <li>Next: <a href="monitoring.html" title="next chapter">Infrastructure Monitoring APIs</a></li>
  </ul></li>
  </ul></li>
</ul>
<div id="searchbox" style="display: none" role="search">
  <h3>Quick search</h3>
    <form class="search" action="../search.html" method="get">
      <div><input type="text" name="q" /></div>
      <div><input type="submit" value="Go" /></div>
      <input type="hidden" name="check_keywords" value="yes" />
      <input type="hidden" name="area" value="default" />
    </form>
</div>
<script type="text/javascript">$('#searchbox').show(0);</script>
        </div>
      </div>
      <div class="clearer"></div>
    </div>

    <div class="footer">
      <div id="copyright">
      &copy; Copyright <a href="http://www.dataone.org">2009-2017, DataONE</a>.
        [ <a href="../_sources/apis/Exceptions.txt"
               rel="nofollow">Page Source</a> |
          <a href='https://redmine.dataone.org/projects/d1/repository/changes/documents/Projects/cicore/architecture/api-documentation/source/apis/Exceptions.txt'
            rel="nofollow">Revision History</a> ]&nbsp;&nbsp;
      </div>
      <div id="acknowledgement">
        <p>This material is based upon work supported by the National Science Foundation
          under Grant Numbers <a href="http://www.nsf.gov/awardsearch/showAward?AWD_ID=0830944">083094</a> and <a href="http://www.nsf.gov/awardsearch/showAward?AWD_ID=1430508">1430508</a>.</p>
        <p>Any opinions, findings, and conclusions or recommendations expressed in this
           material are those of the author(s) and do not necessarily reflect the views
           of the National Science Foundation.</p>
      </div>
    </div>
    <!--
    <hr />
     <div id="HCB_comment_box"><a href="http://www.htmlcommentbox.com">HTML Comment Box</a> is loading comments...</div>
     <link rel="stylesheet" type="text/css" href="_static/skin.css" />
     <script type="text/javascript" language="javascript" id="hcb">
     /*<! -*/
     (function()
     {s=document.createElement("script");
     s.setAttribute("type","text/javascript");
     s.setAttribute("src", "http://www.htmlcommentbox.com/jread?page="+escape((typeof hcb_user !== "undefined" && hcb_user.PAGE)||(""+window.location)).replace("+","%2B")+"&mod=%241%24wq1rdBcg%24Gg8J5iYSHJWwAJtlYu/yU."+"&opts=21407&num=10");
     if (typeof s!="undefined") document.getElementsByTagName("head")[0].appendChild(s);})();
      /* ->*/
     </script>
   -->
  </body>
</html>