<!DOCTYPE html>
<html>
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
  <title>RuntimeError at /storage</title>

  <script type="text/javascript">
  //<!--
  function toggle(id) {
    var pre  = document.getElementById("pre-" + id);
    var post = document.getElementById("post-" + id);
    var context = document.getElementById("context-" + id);

    if (pre.style.display == 'block') {
      pre.style.display = 'none';
      post.style.display = 'none';
      context.style.background = "none";
    } else {
      pre.style.display = 'block';
      post.style.display = 'block';
      context.style.background = "#fffed9";
    }
  }

  function toggleBacktrace(){
    var bt = document.getElementById("backtrace");
    var toggler = document.getElementById("expando");

    if (bt.className == 'condensed') {
      bt.className = 'expanded';
      toggler.innerHTML = "(condense)";
    } else {
      bt.className = 'condensed';
      toggler.innerHTML = "(expand)";
    }
  }
  //-->
  </script>

<style type="text/css" media="screen">
  *                   {margin: 0; padding: 0; border: 0; outline: 0;}
  div.clear           {clear: both;}
  body                {background: #EEEEEE; margin: 0; padding: 0;
                       font-family: 'Lucida Grande', 'Lucida Sans Unicode',
                       'Garuda';}
  code                {font-family: 'Lucida Console', monospace;
                       font-size: 12px;}
  li                  {height: 18px;}
  ul                  {list-style: none; margin: 0; padding: 0;}
  ol:hover            {cursor: pointer;}
  ol li               {white-space: pre;}
  #explanation        {font-size: 12px; color: #666666;
                       margin: 20px 0 0 100px;}
/* WRAP */
  #wrap               {width: 1000px; background: #FFFFFF; margin: 0 auto;
                       padding: 30px 50px 20px 50px;
                       border-left: 1px solid #DDDDDD;
                       border-right: 1px solid #DDDDDD;}
/* HEADER */
  #header             {margin: 0 auto 25px auto;}
  #header img         {float: left;}
  #header #summary    {float: left; margin: 12px 0 0 20px; width:660px;
                       font-family: 'Lucida Grande', 'Lucida Sans Unicode';}
  h1                  {margin: 0; font-size: 36px; color: #981919;}
  h2                  {margin: 0; font-size: 22px; color: #333333;}
  #header ul          {margin: 0; font-size: 12px; color: #666666;}
  #header ul li strong{color: #444444;}
  #header ul li       {display: inline; padding: 0 10px;}
  #header ul li.first {padding-left: 0;}
  #header ul li.last  {border: 0; padding-right: 0;}
/* BODY */
  #backtrace,
  #get,
  #post,
  #cookies,
  #rack               {width: 980px; margin: 0 auto 10px auto;}
  p#nav               {float: right; font-size: 14px;}
/* BACKTRACE */
  a#expando           {float: left; padding-left: 5px; color: #666666;
                      font-size: 14px; text-decoration: none; cursor: pointer;}
  a#expando:hover     {text-decoration: underline;}
  h3                  {float: left; width: 100px; margin-bottom: 10px;
                       color: #981919; font-size: 14px; font-weight: bold;}
  #nav a              {color: #666666; text-decoration: none; padding: 0 5px;}
  #backtrace li.frame-info {background: #f7f7f7; padding-left: 10px;
                           font-size: 12px; color: #333333;}
  #backtrace ul       {list-style-position: outside; border: 1px solid #E9E9E9;
                       border-bottom: 0;}
  #backtrace ol       {width: 920px; margin-left: 50px;
                       font: 10px 'Lucida Console', monospace; color: #666666;}
  #backtrace ol li    {border: 0; border-left: 1px solid #E9E9E9;
                       padding: 2px 0;}
  #backtrace ol code  {font-size: 10px; color: #555555; padding-left: 5px;}
  #backtrace-ul li    {border-bottom: 1px solid #E9E9E9; height: auto;
                       padding: 3px 0;}
  #backtrace-ul .code {padding: 6px 0 4px 0;}
  #backtrace.condensed .system,
  #backtrace.condensed .framework {display:none;}
/* REQUEST DATA */
  p.no-data           {padding-top: 2px; font-size: 12px; color: #666666;}
  table.req           {width: 980px; text-align: left; font-size: 12px;
                       color: #666666; padding: 0; border-spacing: 0;
                       border: 1px solid #EEEEEE; border-bottom: 0;
                       border-left: 0;
                       clear:both}
  table.req tr th     {padding: 2px 10px; font-weight: bold;
                       background: #F7F7F7; border-bottom: 1px solid #EEEEEE;
                       border-left: 1px solid #EEEEEE;}
  table.req tr td     {padding: 2px 20px 2px 10px;
                       border-bottom: 1px solid #EEEEEE;
                       border-left: 1px solid #EEEEEE;}
/* HIDE PRE/POST CODE AT START */
  .pre-context,
  .post-context       {display: none;}

  table td.code       {width:750px}
  table td.code div   {width:750px;overflow:hidden}
</style>
</head>
<body>
  <div id="wrap">
    <div id="header">
      <img src="/__sinatra__/500.png" alt="application error" height="161" width="313" />
      <div id="summary">
        <h1><strong>RuntimeError</strong> at <strong>/storage
          </strong></h1>
        <h2>Hash is not a valid input stream.  It must walk 
like either a String, an IO, or a Source.</h2>
        <ul>
          <li class="first"><strong>file:</strong> <code>
            source.rb</code></li>
          <li><strong>location:</strong> <code>create_from
            </code></li>
          <li class="last"><strong>line:
            </strong> 21</li>
        </ul>
      </div>
      <div class="clear"></div>
    </div>

    <div id="backtrace" class='condensed'>
      <h3>BACKTRACE</h3>
      <p><a href="#" id="expando"
            onclick="toggleBacktrace(); return false">(expand)</a></p>
      <p id="nav"><strong>JUMP TO:</strong>
         <a href="#get-info">GET</a>
         <a href="#post-info">POST</a>
         <a href="#cookie-info">COOKIES</a>
         <a href="#env-info">ENV</a>
      </p>
      <div class="clear"></div>

      <ul id="backtrace-ul">

      
      
          

            <li class="frame-info app">
              <code>/usr/lib/ruby/1.8/rexml/source.rb</code> in
                <code><strong>create_from</strong></code>
            </li>

            <li class="code app">
              
              <ol start="14"
                  class="pre-context" id="pre-1"
                  onclick="toggle(1);">
                
                <li class="pre-context-line"><code>            arg.respond_to? :nil? and
</code></li>
                
                <li class="pre-context-line"><code>            arg.respond_to? :eof?
</code></li>
                
                <li class="pre-context-line"><code>        IOSource.new(arg)
</code></li>
                
                <li class="pre-context-line"><code>      elsif arg.kind_of? Source
</code></li>
                
                <li class="pre-context-line"><code>        arg
</code></li>
                
                <li class="pre-context-line"><code>      else
</code></li>
                
                <li class="pre-context-line"><code>        raise "#{arg.class} is not a valid input stream.  It must walk \n"+
</code></li>
                
              </ol>
              

              <ol start="21" class="context" id="1"
                  onclick="toggle(1);">
                <li class="context-line" id="context-1"><code>          "like either a String, an IO, or a Source."</code></li>
              </ol>

              
              <ol start="22" class="post-context"
                  id="post-1" onclick="toggle(1);">
                
                <li class="post-context-line"><code>      end
</code></li>
                
                <li class="post-context-line"><code>    end
</code></li>
                
                <li class="post-context-line"><code>  end
</code></li>
                
                <li class="post-context-line"><code>
</code></li>
                
                <li class="post-context-line"><code>  # A Source can be searched for patterns, and wraps buffers and other
</code></li>
                
                <li class="post-context-line"><code>  # objects and provides consumption of text
</code></li>
                
                <li class="post-context-line"><code>  class Source
</code></li>
                
              </ol>
              
              <div class="clear"></div>
            </li>

          

        
      
          

            <li class="frame-info app">
              <code>/usr/lib/ruby/1.8/rexml/parsers/baseparser.rb</code> in
                <code><strong>stream=</strong></code>
            </li>

            <li class="code app">
              
              <ol start="126"
                  class="pre-context" id="pre-2"
                  onclick="toggle(2);">
                
                <li class="pre-context-line"><code>        end
</code></li>
                
                <li class="pre-context-line"><code>        @listeners << listener
</code></li>
                
                <li class="pre-context-line"><code>      end
</code></li>
                
                <li class="pre-context-line"><code>
</code></li>
                
                <li class="pre-context-line"><code>      attr_reader :source
</code></li>
                
                <li class="pre-context-line"><code>
</code></li>
                
                <li class="pre-context-line"><code>      def stream=( source )
</code></li>
                
              </ol>
              

              <ol start="133" class="context" id="2"
                  onclick="toggle(2);">
                <li class="context-line" id="context-2"><code>        @source = SourceFactory.create_from( source )</code></li>
              </ol>

              
              <ol start="134" class="post-context"
                  id="post-2" onclick="toggle(2);">
                
                <li class="post-context-line"><code>        @closed = nil
</code></li>
                
                <li class="post-context-line"><code>        @document_status = nil
</code></li>
                
                <li class="post-context-line"><code>        @tags = []
</code></li>
                
                <li class="post-context-line"><code>        @stack = []
</code></li>
                
                <li class="post-context-line"><code>        @entities = []
</code></li>
                
                <li class="post-context-line"><code>        @nsstack = []
</code></li>
                
                <li class="post-context-line"><code>      end
</code></li>
                
              </ol>
              
              <div class="clear"></div>
            </li>

          

        
      
          

            <li class="frame-info app">
              <code>/usr/lib/ruby/1.8/rexml/parsers/baseparser.rb</code> in
                <code><strong>initialize</strong></code>
            </li>

            <li class="code app">
              
              <ol start="103"
                  class="pre-context" id="pre-3"
                  onclick="toggle(3);">
                
                <li class="pre-context-line"><code>      ######################################################################
</code></li>
                
                <li class="pre-context-line"><code>      # These are patterns to identify common markup errors, to make the
</code></li>
                
                <li class="pre-context-line"><code>      # error messages more informative.
</code></li>
                
                <li class="pre-context-line"><code>      ######################################################################
</code></li>
                
                <li class="pre-context-line"><code>      MISSING_ATTRIBUTE_QUOTES = /^<#{NAME_STR}\s+#{NAME_STR}\s*=\s*[^"']/um
</code></li>
                
                <li class="pre-context-line"><code>
</code></li>
                
                <li class="pre-context-line"><code>      def initialize( source )
</code></li>
                
              </ol>
              

              <ol start="110" class="context" id="3"
                  onclick="toggle(3);">
                <li class="context-line" id="context-3"><code>        self.stream = source</code></li>
              </ol>

              
              <ol start="111" class="post-context"
                  id="post-3" onclick="toggle(3);">
                
                <li class="post-context-line"><code>      end
</code></li>
                
                <li class="post-context-line"><code>
</code></li>
                
                <li class="post-context-line"><code>      def add_listener( listener )
</code></li>
                
                <li class="post-context-line"><code>        if !defined?(@listeners) or !@listeners
</code></li>
                
                <li class="post-context-line"><code>          @listeners = []
</code></li>
                
                <li class="post-context-line"><code>          instance_eval <<-EOL
</code></li>
                
                <li class="post-context-line"><code>            alias :_old_pull :pull
</code></li>
                
              </ol>
              
              <div class="clear"></div>
            </li>

          

        
      
          

            <li class="frame-info system">
              <code>/var/lib/gems/1.8/gems/crack-0.1.7/lib/crack/xml.rb</code> in
                <code><strong>new</strong></code>
            </li>

            <li class="code system">
              
              <ol start="184"
                  class="pre-context" id="pre-4"
                  onclick="toggle(4);">
                
                <li class="pre-context-line"><code>  end
</code></li>
                
                <li class="pre-context-line"><code>end
</code></li>
                
                <li class="pre-context-line"><code>
</code></li>
                
                <li class="pre-context-line"><code>module Crack
</code></li>
                
                <li class="pre-context-line"><code>  class XML
</code></li>
                
                <li class="pre-context-line"><code>    def self.parse(xml)
</code></li>
                
                <li class="pre-context-line"><code>      stack = []
</code></li>
                
              </ol>
              

              <ol start="191" class="context" id="4"
                  onclick="toggle(4);">
                <li class="context-line" id="context-4"><code>      parser = REXML::Parsers::BaseParser.new(xml)</code></li>
              </ol>

              
              <ol start="192" class="post-context"
                  id="post-4" onclick="toggle(4);">
                
                <li class="post-context-line"><code>
</code></li>
                
                <li class="post-context-line"><code>      while true
</code></li>
                
                <li class="post-context-line"><code>        event = parser.pull
</code></li>
                
                <li class="post-context-line"><code>        case event[0]
</code></li>
                
                <li class="post-context-line"><code>        when :end_document
</code></li>
                
                <li class="post-context-line"><code>          break
</code></li>
                
                <li class="post-context-line"><code>        when :end_doctype, :start_doctype
</code></li>
                
              </ol>
              
              <div class="clear"></div>
            </li>

          

        
      
          

            <li class="frame-info system">
              <code>/var/lib/gems/1.8/gems/crack-0.1.7/lib/crack/xml.rb</code> in
                <code><strong>parse</strong></code>
            </li>

            <li class="code system">
              
              <ol start="184"
                  class="pre-context" id="pre-5"
                  onclick="toggle(5);">
                
                <li class="pre-context-line"><code>  end
</code></li>
                
                <li class="pre-context-line"><code>end
</code></li>
                
                <li class="pre-context-line"><code>
</code></li>
                
                <li class="pre-context-line"><code>module Crack
</code></li>
                
                <li class="pre-context-line"><code>  class XML
</code></li>
                
                <li class="pre-context-line"><code>    def self.parse(xml)
</code></li>
                
                <li class="pre-context-line"><code>      stack = []
</code></li>
                
              </ol>
              

              <ol start="191" class="context" id="5"
                  onclick="toggle(5);">
                <li class="context-line" id="context-5"><code>      parser = REXML::Parsers::BaseParser.new(xml)</code></li>
              </ol>

              
              <ol start="192" class="post-context"
                  id="post-5" onclick="toggle(5);">
                
                <li class="post-context-line"><code>
</code></li>
                
                <li class="post-context-line"><code>      while true
</code></li>
                
                <li class="post-context-line"><code>        event = parser.pull
</code></li>
                
                <li class="post-context-line"><code>        case event[0]
</code></li>
                
                <li class="post-context-line"><code>        when :end_document
</code></li>
                
                <li class="post-context-line"><code>          break
</code></li>
                
                <li class="post-context-line"><code>        when :end_doctype, :start_doctype
</code></li>
                
              </ol>
              
              <div class="clear"></div>
            </li>

          

        
      
          

            <li class="frame-info app">
              <code>/srv/cloud/one/lib/ruby/cloud/occi/OCCIServer.rb</code> in
                <code><strong>post_storage</strong></code>
            </li>

            <li class="code app">
              
              <ol start="269"
                  class="pre-context" id="pre-6"
                  onclick="toggle(6);">
                
                <li class="pre-context-line"><code>    
</code></li>
                
                <li class="pre-context-line"><code>    # Post a new image to the STORAGE pool
</code></li>
                
                <li class="pre-context-line"><code>    # request:: _Hash_ hash containing the data of the request
</code></li>
                
                <li class="pre-context-line"><code>    # [return] _String_,_Integer_ Image representation or error, status code 
</code></li>
                
                <li class="pre-context-line"><code>    def post_storage(request)
</code></li>
                
                <li class="pre-context-line"><code>        # Info retrieval from post params
</code></li>
                
                <li class="pre-context-line"><code>        if request.params['occixml']
</code></li>
                
              </ol>
              

              <ol start="276" class="context" id="6"
                  onclick="toggle(6);">
                <li class="context-line" id="context-6"><code>            image_info=Crack::XML.parse(request.params['occixml'])</code></li>
              </ol>

              
              <ol start="277" class="post-context"
                  id="post-6" onclick="toggle(6);">
                
                <li class="post-context-line"><code>        else
</code></li>
                
                <li class="post-context-line"><code>            error_msg = "OCCI XML representation of Image" +
</code></li>
                
                <li class="post-context-line"><code>                        " not present in the request"
</code></li>
                
                <li class="post-context-line"><code>            error     = OpenNebula::Error.new(error_msg)
</code></li>
                
                <li class="post-context-line"><code>            return error, 400
</code></li>
                
                <li class="post-context-line"><code>        end
</code></li>
                
                <li class="post-context-line"><code>
</code></li>
                
              </ol>
              
              <div class="clear"></div>
            </li>

          

        
      
          

            <li class="frame-info app">
              <code>/srv/cloud/one/lib/ruby/cloud/occi/occi-server.rb</code> in
                <code><strong>POST /storage</strong></code>
            </li>

            <li class="code app">
              
              <ol start="106"
                  class="pre-context" id="pre-7"
                  onclick="toggle(7);">
                
                <li class="pre-context-line"><code>
</code></li>
                
                <li class="pre-context-line"><code>get '/network' do
</code></li>
                
                <li class="pre-context-line"><code>    result,rc = $occi_server.get_networks(request)
</code></li>
                
                <li class="pre-context-line"><code>    treat_response(result,rc)
</code></li>
                
                <li class="pre-context-line"><code>end
</code></li>
                
                <li class="pre-context-line"><code>
</code></li>
                
                <li class="pre-context-line"><code>post '/storage' do
</code></li>
                
              </ol>
              

              <ol start="113" class="context" id="7"
                  onclick="toggle(7);">
                <li class="context-line" id="context-7"><code>    result,rc = $occi_server.post_storage(request)</code></li>
              </ol>

              
              <ol start="114" class="post-context"
                  id="post-7" onclick="toggle(7);">
                
                <li class="post-context-line"><code>    treat_response(result,rc)
</code></li>
                
                <li class="post-context-line"><code>end
</code></li>
                
                <li class="post-context-line"><code>
</code></li>
                
                <li class="post-context-line"><code>get '/storage' do
</code></li>
                
                <li class="post-context-line"><code>    result,rc = $occi_server.get_storages(request)
</code></li>
                
                <li class="post-context-line"><code>    treat_response(result,rc)
</code></li>
                
                <li class="post-context-line"><code>end
</code></li>
                
              </ol>
              
              <div class="clear"></div>
            </li>

          

        
      
          

            <li class="frame-info framework">
              <code>/var/lib/gems/1.8/gems/sinatra-1.0/lib/sinatra/base.rb</code> in
                <code><strong>call</strong></code>
            </li>

            <li class="code framework">
              
              <ol start="856"
                  class="pre-context" id="pre-8"
                  onclick="toggle(8);">
                
                <li class="pre-context-line"><code>        pattern, keys = compile(path)
</code></li>
                
                <li class="pre-context-line"><code>        conditions, @conditions = @conditions, []
</code></li>
                
                <li class="pre-context-line"><code>
</code></li>
                
                <li class="pre-context-line"><code>        define_method "#{verb} #{path}", &block
</code></li>
                
                <li class="pre-context-line"><code>        unbound_method = instance_method("#{verb} #{path}")
</code></li>
                
                <li class="pre-context-line"><code>        block =
</code></li>
                
                <li class="pre-context-line"><code>          if block.arity != 0
</code></li>
                
              </ol>
              

              <ol start="863" class="context" id="8"
                  onclick="toggle(8);">
                <li class="context-line" id="context-8"><code>            proc { unbound_method.bind(self).call(*@block_params) }</code></li>
              </ol>

              
              <ol start="864" class="post-context"
                  id="post-8" onclick="toggle(8);">
                
                <li class="post-context-line"><code>          else
</code></li>
                
                <li class="post-context-line"><code>            proc { unbound_method.bind(self).call }
</code></li>
                
                <li class="post-context-line"><code>          end
</code></li>
                
                <li class="post-context-line"><code>
</code></li>
                
                <li class="post-context-line"><code>        invoke_hook(:route_added, verb, path, block)
</code></li>
                
                <li class="post-context-line"><code>
</code></li>
                
                <li class="post-context-line"><code>        (@routes[verb] ||= []).
</code></li>
                
              </ol>
              
              <div class="clear"></div>
            </li>

          

        
      
          

            <li class="frame-info framework">
              <code>/var/lib/gems/1.8/gems/sinatra-1.0/lib/sinatra/base.rb</code> in
                <code><strong>route</strong></code>
            </li>

            <li class="code framework">
              
              <ol start="856"
                  class="pre-context" id="pre-9"
                  onclick="toggle(9);">
                
                <li class="pre-context-line"><code>        pattern, keys = compile(path)
</code></li>
                
                <li class="pre-context-line"><code>        conditions, @conditions = @conditions, []
</code></li>
                
                <li class="pre-context-line"><code>
</code></li>
                
                <li class="pre-context-line"><code>        define_method "#{verb} #{path}", &block
</code></li>
                
                <li class="pre-context-line"><code>        unbound_method = instance_method("#{verb} #{path}")
</code></li>
                
                <li class="pre-context-line"><code>        block =
</code></li>
                
                <li class="pre-context-line"><code>          if block.arity != 0
</code></li>
                
              </ol>
              

              <ol start="863" class="context" id="9"
                  onclick="toggle(9);">
                <li class="context-line" id="context-9"><code>            proc { unbound_method.bind(self).call(*@block_params) }</code></li>
              </ol>

              
              <ol start="864" class="post-context"
                  id="post-9" onclick="toggle(9);">
                
                <li class="post-context-line"><code>          else
</code></li>
                
                <li class="post-context-line"><code>            proc { unbound_method.bind(self).call }
</code></li>
                
                <li class="post-context-line"><code>          end
</code></li>
                
                <li class="post-context-line"><code>
</code></li>
                
                <li class="post-context-line"><code>        invoke_hook(:route_added, verb, path, block)
</code></li>
                
                <li class="post-context-line"><code>
</code></li>
                
                <li class="post-context-line"><code>        (@routes[verb] ||= []).
</code></li>
                
              </ol>
              
              <div class="clear"></div>
            </li>

          

        
      
          

            <li class="frame-info framework">
              <code>/var/lib/gems/1.8/gems/sinatra-1.0/lib/sinatra/base.rb</code> in
                <code><strong>instance_eval</strong></code>
            </li>

            <li class="code framework">
              
              <ol start="514"
                  class="pre-context" id="pre-10"
                  onclick="toggle(10);">
                
                <li class="pre-context-line"><code>      route_eval(&pass_block) if pass_block
</code></li>
                
                <li class="pre-context-line"><code>
</code></li>
                
                <li class="pre-context-line"><code>      route_missing
</code></li>
                
                <li class="pre-context-line"><code>    end
</code></li>
                
                <li class="pre-context-line"><code>
</code></li>
                
                <li class="pre-context-line"><code>    # Run a route block and throw :halt with the result.
</code></li>
                
                <li class="pre-context-line"><code>    def route_eval(&block)
</code></li>
                
              </ol>
              

              <ol start="521" class="context" id="10"
                  onclick="toggle(10);">
                <li class="context-line" id="context-10"><code>      throw :halt, instance_eval(&block)</code></li>
              </ol>

              
              <ol start="522" class="post-context"
                  id="post-10" onclick="toggle(10);">
                
                <li class="post-context-line"><code>    end
</code></li>
                
                <li class="post-context-line"><code>
</code></li>
                
                <li class="post-context-line"><code>    # No matching route was found or all routes passed. The default
</code></li>
                
                <li class="post-context-line"><code>    # implementation is to forward the request downstream when running
</code></li>
                
                <li class="post-context-line"><code>    # as middleware (@app is non-nil); when no downstream app is set, raise
</code></li>
                
                <li class="post-context-line"><code>    # a NotFound exception. Subclasses can override this method to perform
</code></li>
                
                <li class="post-context-line"><code>    # custom route miss logic.
</code></li>
                
              </ol>
              
              <div class="clear"></div>
            </li>

          

        
      
          

            <li class="frame-info framework">
              <code>/var/lib/gems/1.8/gems/sinatra-1.0/lib/sinatra/base.rb</code> in
                <code><strong>route_eval</strong></code>
            </li>

            <li class="code framework">
              
              <ol start="514"
                  class="pre-context" id="pre-11"
                  onclick="toggle(11);">
                
                <li class="pre-context-line"><code>      route_eval(&pass_block) if pass_block
</code></li>
                
                <li class="pre-context-line"><code>
</code></li>
                
                <li class="pre-context-line"><code>      route_missing
</code></li>
                
                <li class="pre-context-line"><code>    end
</code></li>
                
                <li class="pre-context-line"><code>
</code></li>
                
                <li class="pre-context-line"><code>    # Run a route block and throw :halt with the result.
</code></li>
                
                <li class="pre-context-line"><code>    def route_eval(&block)
</code></li>
                
              </ol>
              

              <ol start="521" class="context" id="11"
                  onclick="toggle(11);">
                <li class="context-line" id="context-11"><code>      throw :halt, instance_eval(&block)</code></li>
              </ol>

              
              <ol start="522" class="post-context"
                  id="post-11" onclick="toggle(11);">
                
                <li class="post-context-line"><code>    end
</code></li>
                
                <li class="post-context-line"><code>
</code></li>
                
                <li class="post-context-line"><code>    # No matching route was found or all routes passed. The default
</code></li>
                
                <li class="post-context-line"><code>    # implementation is to forward the request downstream when running
</code></li>
                
                <li class="post-context-line"><code>    # as middleware (@app is non-nil); when no downstream app is set, raise
</code></li>
                
                <li class="post-context-line"><code>    # a NotFound exception. Subclasses can override this method to perform
</code></li>
                
                <li class="post-context-line"><code>    # custom route miss logic.
</code></li>
                
              </ol>
              
              <div class="clear"></div>
            </li>

          

        
      
          

            <li class="frame-info framework">
              <code>/var/lib/gems/1.8/gems/sinatra-1.0/lib/sinatra/base.rb</code> in
                <code><strong>route!</strong></code>
            </li>

            <li class="code framework">
              
              <ol start="493"
                  class="pre-context" id="pre-12"
                  onclick="toggle(12);">
                
                <li class="pre-context-line"><code>              end
</code></li>
                
                <li class="pre-context-line"><code>            @params = original_params.merge(params)
</code></li>
                
                <li class="pre-context-line"><code>            @block_params = values
</code></li>
                
                <li class="pre-context-line"><code>
</code></li>
                
                <li class="pre-context-line"><code>            pass_block = catch(:pass) do
</code></li>
                
                <li class="pre-context-line"><code>              conditions.each { |cond|
</code></li>
                
                <li class="pre-context-line"><code>                throw :pass if instance_eval(&cond) == false }
</code></li>
                
              </ol>
              

              <ol start="500" class="context" id="12"
                  onclick="toggle(12);">
                <li class="context-line" id="context-12"><code>              route_eval(&block)</code></li>
              </ol>

              
              <ol start="501" class="post-context"
                  id="post-12" onclick="toggle(12);">
                
                <li class="post-context-line"><code>            end
</code></li>
                
                <li class="post-context-line"><code>          end
</code></li>
                
                <li class="post-context-line"><code>        end
</code></li>
                
                <li class="post-context-line"><code>
</code></li>
                
                <li class="post-context-line"><code>        @params = original_params
</code></li>
                
                <li class="post-context-line"><code>      end
</code></li>
                
                <li class="post-context-line"><code>
</code></li>
                
              </ol>
              
              <div class="clear"></div>
            </li>

          

        
      
          

            <li class="frame-info framework">
              <code>/var/lib/gems/1.8/gems/sinatra-1.0/lib/sinatra/base.rb</code> in
                <code><strong>catch</strong></code>
            </li>

            <li class="code framework">
              
              <ol start="490"
                  class="pre-context" id="pre-13"
                  onclick="toggle(13);">
                
                <li class="pre-context-line"><code>                {'captures' => values}
</code></li>
                
                <li class="pre-context-line"><code>              else
</code></li>
                
                <li class="pre-context-line"><code>                {}
</code></li>
                
                <li class="pre-context-line"><code>              end
</code></li>
                
                <li class="pre-context-line"><code>            @params = original_params.merge(params)
</code></li>
                
                <li class="pre-context-line"><code>            @block_params = values
</code></li>
                
                <li class="pre-context-line"><code>
</code></li>
                
              </ol>
              

              <ol start="497" class="context" id="13"
                  onclick="toggle(13);">
                <li class="context-line" id="context-13"><code>            pass_block = catch(:pass) do</code></li>
              </ol>

              
              <ol start="498" class="post-context"
                  id="post-13" onclick="toggle(13);">
                
                <li class="post-context-line"><code>              conditions.each { |cond|
</code></li>
                
                <li class="post-context-line"><code>                throw :pass if instance_eval(&cond) == false }
</code></li>
                
                <li class="post-context-line"><code>              route_eval(&block)
</code></li>
                
                <li class="post-context-line"><code>            end
</code></li>
                
                <li class="post-context-line"><code>          end
</code></li>
                
                <li class="post-context-line"><code>        end
</code></li>
                
                <li class="post-context-line"><code>
</code></li>
                
              </ol>
              
              <div class="clear"></div>
            </li>

          

        
      
          

            <li class="frame-info framework">
              <code>/var/lib/gems/1.8/gems/sinatra-1.0/lib/sinatra/base.rb</code> in
                <code><strong>route!</strong></code>
            </li>

            <li class="code framework">
              
              <ol start="490"
                  class="pre-context" id="pre-14"
                  onclick="toggle(14);">
                
                <li class="pre-context-line"><code>                {'captures' => values}
</code></li>
                
                <li class="pre-context-line"><code>              else
</code></li>
                
                <li class="pre-context-line"><code>                {}
</code></li>
                
                <li class="pre-context-line"><code>              end
</code></li>
                
                <li class="pre-context-line"><code>            @params = original_params.merge(params)
</code></li>
                
                <li class="pre-context-line"><code>            @block_params = values
</code></li>
                
                <li class="pre-context-line"><code>
</code></li>
                
              </ol>
              

              <ol start="497" class="context" id="14"
                  onclick="toggle(14);">
                <li class="context-line" id="context-14"><code>            pass_block = catch(:pass) do</code></li>
              </ol>

              
              <ol start="498" class="post-context"
                  id="post-14" onclick="toggle(14);">
                
                <li class="post-context-line"><code>              conditions.each { |cond|
</code></li>
                
                <li class="post-context-line"><code>                throw :pass if instance_eval(&cond) == false }
</code></li>
                
                <li class="post-context-line"><code>              route_eval(&block)
</code></li>
                
                <li class="post-context-line"><code>            end
</code></li>
                
                <li class="post-context-line"><code>          end
</code></li>
                
                <li class="post-context-line"><code>        end
</code></li>
                
                <li class="post-context-line"><code>
</code></li>
                
              </ol>
              
              <div class="clear"></div>
            </li>

          

        
      
          

            <li class="frame-info framework">
              <code>/var/lib/gems/1.8/gems/sinatra-1.0/lib/sinatra/base.rb</code> in
                <code><strong>each</strong></code>
            </li>

            <li class="code framework">
              
              <ol start="469"
                  class="pre-context" id="pre-15"
                  onclick="toggle(15);">
                
                <li class="pre-context-line"><code>
</code></li>
                
                <li class="pre-context-line"><code>    # Run routes defined on the class and all superclasses.
</code></li>
                
                <li class="pre-context-line"><code>    def route!(base=self.class, pass_block=nil)
</code></li>
                
                <li class="pre-context-line"><code>      if routes = base.routes[@request.request_method]
</code></li>
                
                <li class="pre-context-line"><code>        original_params = @params
</code></li>
                
                <li class="pre-context-line"><code>        path            = unescape(@request.path_info)
</code></li>
                
                <li class="pre-context-line"><code>
</code></li>
                
              </ol>
              

              <ol start="476" class="context" id="15"
                  onclick="toggle(15);">
                <li class="context-line" id="context-15"><code>        routes.each do |pattern, keys, conditions, block|</code></li>
              </ol>

              
              <ol start="477" class="post-context"
                  id="post-15" onclick="toggle(15);">
                
                <li class="post-context-line"><code>          if match = pattern.match(path)
</code></li>
                
                <li class="post-context-line"><code>            values = match.captures.to_a
</code></li>
                
                <li class="post-context-line"><code>            params =
</code></li>
                
                <li class="post-context-line"><code>              if keys.any?
</code></li>
                
                <li class="post-context-line"><code>                keys.zip(values).inject({}) do |hash,(k,v)|
</code></li>
                
                <li class="post-context-line"><code>                  if k == 'splat'
</code></li>
                
                <li class="post-context-line"><code>                    (hash[k] ||= []) << v
</code></li>
                
              </ol>
              
              <div class="clear"></div>
            </li>

          

        
      
          

            <li class="frame-info framework">
              <code>/var/lib/gems/1.8/gems/sinatra-1.0/lib/sinatra/base.rb</code> in
                <code><strong>route!</strong></code>
            </li>

            <li class="code framework">
              
              <ol start="469"
                  class="pre-context" id="pre-16"
                  onclick="toggle(16);">
                
                <li class="pre-context-line"><code>
</code></li>
                
                <li class="pre-context-line"><code>    # Run routes defined on the class and all superclasses.
</code></li>
                
                <li class="pre-context-line"><code>    def route!(base=self.class, pass_block=nil)
</code></li>
                
                <li class="pre-context-line"><code>      if routes = base.routes[@request.request_method]
</code></li>
                
                <li class="pre-context-line"><code>        original_params = @params
</code></li>
                
                <li class="pre-context-line"><code>        path            = unescape(@request.path_info)
</code></li>
                
                <li class="pre-context-line"><code>
</code></li>
                
              </ol>
              

              <ol start="476" class="context" id="16"
                  onclick="toggle(16);">
                <li class="context-line" id="context-16"><code>        routes.each do |pattern, keys, conditions, block|</code></li>
              </ol>

              
              <ol start="477" class="post-context"
                  id="post-16" onclick="toggle(16);">
                
                <li class="post-context-line"><code>          if match = pattern.match(path)
</code></li>
                
                <li class="post-context-line"><code>            values = match.captures.to_a
</code></li>
                
                <li class="post-context-line"><code>            params =
</code></li>
                
                <li class="post-context-line"><code>              if keys.any?
</code></li>
                
                <li class="post-context-line"><code>                keys.zip(values).inject({}) do |hash,(k,v)|
</code></li>
                
                <li class="post-context-line"><code>                  if k == 'splat'
</code></li>
                
                <li class="post-context-line"><code>                    (hash[k] ||= []) << v
</code></li>
                
              </ol>
              
              <div class="clear"></div>
            </li>

          

        
      
          

            <li class="frame-info framework">
              <code>/var/lib/gems/1.8/gems/sinatra-1.0/lib/sinatra/base.rb</code> in
                <code><strong>dispatch!</strong></code>
            </li>

            <li class="code framework">
              
              <ol start="594"
                  class="pre-context" id="pre-17"
                  onclick="toggle(17);">
                
                <li class="pre-context-line"><code>      res
</code></li>
                
                <li class="pre-context-line"><code>    end
</code></li>
                
                <li class="pre-context-line"><code>
</code></li>
                
                <li class="pre-context-line"><code>    # Dispatch a request with error handling.
</code></li>
                
                <li class="pre-context-line"><code>    def dispatch!
</code></li>
                
                <li class="pre-context-line"><code>      static! if settings.static? && (request.get? || request.head?)
</code></li>
                
                <li class="pre-context-line"><code>      before_filter!
</code></li>
                
              </ol>
              

              <ol start="601" class="context" id="17"
                  onclick="toggle(17);">
                <li class="context-line" id="context-17"><code>      route!</code></li>
              </ol>

              
              <ol start="602" class="post-context"
                  id="post-17" onclick="toggle(17);">
                
                <li class="post-context-line"><code>    rescue NotFound => boom
</code></li>
                
                <li class="post-context-line"><code>      handle_not_found!(boom)
</code></li>
                
                <li class="post-context-line"><code>    rescue ::Exception => boom
</code></li>
                
                <li class="post-context-line"><code>      handle_exception!(boom)
</code></li>
                
                <li class="post-context-line"><code>    ensure
</code></li>
                
                <li class="post-context-line"><code>      after_filter! unless env['sinatra.static_file']
</code></li>
                
                <li class="post-context-line"><code>    end
</code></li>
                
              </ol>
              
              <div class="clear"></div>
            </li>

          

        
      
          

            <li class="frame-info framework">
              <code>/var/lib/gems/1.8/gems/sinatra-1.0/lib/sinatra/base.rb</code> in
                <code><strong>call!</strong></code>
            </li>

            <li class="code framework">
              
              <ol start="404"
                  class="pre-context" id="pre-18"
                  onclick="toggle(18);">
                
                <li class="pre-context-line"><code>    def call!(env)
</code></li>
                
                <li class="pre-context-line"><code>      @env      = env
</code></li>
                
                <li class="pre-context-line"><code>      @request  = Request.new(env)
</code></li>
                
                <li class="pre-context-line"><code>      @response = Response.new
</code></li>
                
                <li class="pre-context-line"><code>      @params   = indifferent_params(@request.params)
</code></li>
                
                <li class="pre-context-line"><code>      @template_cache.clear if settings.reload_templates
</code></li>
                
                <li class="pre-context-line"><code>
</code></li>
                
              </ol>
              

              <ol start="411" class="context" id="18"
                  onclick="toggle(18);">
                <li class="context-line" id="context-18"><code>      invoke { dispatch! }</code></li>
              </ol>

              
              <ol start="412" class="post-context"
                  id="post-18" onclick="toggle(18);">
                
                <li class="post-context-line"><code>      invoke { error_block!(response.status) }
</code></li>
                
                <li class="post-context-line"><code>
</code></li>
                
                <li class="post-context-line"><code>      status, header, body = @response.finish
</code></li>
                
                <li class="post-context-line"><code>
</code></li>
                
                <li class="post-context-line"><code>      # Never produce a body on HEAD requests. Do retain the Content-Length
</code></li>
                
                <li class="post-context-line"><code>      # unless it's "0", in which case we assume it was calculated erroneously
</code></li>
                
                <li class="post-context-line"><code>      # for a manual HEAD response and remove it entirely.
</code></li>
                
              </ol>
              
              <div class="clear"></div>
            </li>

          

        
      
          

            <li class="frame-info framework">
              <code>/var/lib/gems/1.8/gems/sinatra-1.0/lib/sinatra/base.rb</code> in
                <code><strong>instance_eval</strong></code>
            </li>

            <li class="code framework">
              
              <ol start="559"
                  class="pre-context" id="pre-19"
                  onclick="toggle(19);">
                
                <li class="pre-context-line"><code>
</code></li>
                
                <li class="pre-context-line"><code>    def indifferent_hash
</code></li>
                
                <li class="pre-context-line"><code>      Hash.new {|hash,key| hash[key.to_s] if Symbol === key }
</code></li>
                
                <li class="pre-context-line"><code>    end
</code></li>
                
                <li class="pre-context-line"><code>
</code></li>
                
                <li class="pre-context-line"><code>    # Run the block with 'throw :halt' support and apply result to the response.
</code></li>
                
                <li class="pre-context-line"><code>    def invoke(&block)
</code></li>
                
              </ol>
              

              <ol start="566" class="context" id="19"
                  onclick="toggle(19);">
                <li class="context-line" id="context-19"><code>      res = catch(:halt) { instance_eval(&block) }</code></li>
              </ol>

              
              <ol start="567" class="post-context"
                  id="post-19" onclick="toggle(19);">
                
                <li class="post-context-line"><code>      return if res.nil?
</code></li>
                
                <li class="post-context-line"><code>
</code></li>
                
                <li class="post-context-line"><code>      case
</code></li>
                
                <li class="post-context-line"><code>      when res.respond_to?(:to_str)
</code></li>
                
                <li class="post-context-line"><code>        @response.body = [res]
</code></li>
                
                <li class="post-context-line"><code>      when res.respond_to?(:to_ary)
</code></li>
                
                <li class="post-context-line"><code>        res = res.to_ary
</code></li>
                
              </ol>
              
              <div class="clear"></div>
            </li>

          

        
      
          

            <li class="frame-info framework">
              <code>/var/lib/gems/1.8/gems/sinatra-1.0/lib/sinatra/base.rb</code> in
                <code><strong>invoke</strong></code>
            </li>

            <li class="code framework">
              
              <ol start="559"
                  class="pre-context" id="pre-20"
                  onclick="toggle(20);">
                
                <li class="pre-context-line"><code>
</code></li>
                
                <li class="pre-context-line"><code>    def indifferent_hash
</code></li>
                
                <li class="pre-context-line"><code>      Hash.new {|hash,key| hash[key.to_s] if Symbol === key }
</code></li>
                
                <li class="pre-context-line"><code>    end
</code></li>
                
                <li class="pre-context-line"><code>
</code></li>
                
                <li class="pre-context-line"><code>    # Run the block with 'throw :halt' support and apply result to the response.
</code></li>
                
                <li class="pre-context-line"><code>    def invoke(&block)
</code></li>
                
              </ol>
              

              <ol start="566" class="context" id="20"
                  onclick="toggle(20);">
                <li class="context-line" id="context-20"><code>      res = catch(:halt) { instance_eval(&block) }</code></li>
              </ol>

              
              <ol start="567" class="post-context"
                  id="post-20" onclick="toggle(20);">
                
                <li class="post-context-line"><code>      return if res.nil?
</code></li>
                
                <li class="post-context-line"><code>
</code></li>
                
                <li class="post-context-line"><code>      case
</code></li>
                
                <li class="post-context-line"><code>      when res.respond_to?(:to_str)
</code></li>
                
                <li class="post-context-line"><code>        @response.body = [res]
</code></li>
                
                <li class="post-context-line"><code>      when res.respond_to?(:to_ary)
</code></li>
                
                <li class="post-context-line"><code>        res = res.to_ary
</code></li>
                
              </ol>
              
              <div class="clear"></div>
            </li>

          

        
      
          

            <li class="frame-info framework">
              <code>/var/lib/gems/1.8/gems/sinatra-1.0/lib/sinatra/base.rb</code> in
                <code><strong>catch</strong></code>
            </li>

            <li class="code framework">
              
              <ol start="559"
                  class="pre-context" id="pre-21"
                  onclick="toggle(21);">
                
                <li class="pre-context-line"><code>
</code></li>
                
                <li class="pre-context-line"><code>    def indifferent_hash
</code></li>
                
                <li class="pre-context-line"><code>      Hash.new {|hash,key| hash[key.to_s] if Symbol === key }
</code></li>
                
                <li class="pre-context-line"><code>    end
</code></li>
                
                <li class="pre-context-line"><code>
</code></li>
                
                <li class="pre-context-line"><code>    # Run the block with 'throw :halt' support and apply result to the response.
</code></li>
                
                <li class="pre-context-line"><code>    def invoke(&block)
</code></li>
                
              </ol>
              

              <ol start="566" class="context" id="21"
                  onclick="toggle(21);">
                <li class="context-line" id="context-21"><code>      res = catch(:halt) { instance_eval(&block) }</code></li>
              </ol>

              
              <ol start="567" class="post-context"
                  id="post-21" onclick="toggle(21);">
                
                <li class="post-context-line"><code>      return if res.nil?
</code></li>
                
                <li class="post-context-line"><code>
</code></li>
                
                <li class="post-context-line"><code>      case
</code></li>
                
                <li class="post-context-line"><code>      when res.respond_to?(:to_str)
</code></li>
                
                <li class="post-context-line"><code>        @response.body = [res]
</code></li>
                
                <li class="post-context-line"><code>      when res.respond_to?(:to_ary)
</code></li>
                
                <li class="post-context-line"><code>        res = res.to_ary
</code></li>
                
              </ol>
              
              <div class="clear"></div>
            </li>

          

        
      
          

            <li class="frame-info framework">
              <code>/var/lib/gems/1.8/gems/sinatra-1.0/lib/sinatra/base.rb</code> in
                <code><strong>invoke</strong></code>
            </li>

            <li class="code framework">
              
              <ol start="559"
                  class="pre-context" id="pre-22"
                  onclick="toggle(22);">
                
                <li class="pre-context-line"><code>
</code></li>
                
                <li class="pre-context-line"><code>    def indifferent_hash
</code></li>
                
                <li class="pre-context-line"><code>      Hash.new {|hash,key| hash[key.to_s] if Symbol === key }
</code></li>
                
                <li class="pre-context-line"><code>    end
</code></li>
                
                <li class="pre-context-line"><code>
</code></li>
                
                <li class="pre-context-line"><code>    # Run the block with 'throw :halt' support and apply result to the response.
</code></li>
                
                <li class="pre-context-line"><code>    def invoke(&block)
</code></li>
                
              </ol>
              

              <ol start="566" class="context" id="22"
                  onclick="toggle(22);">
                <li class="context-line" id="context-22"><code>      res = catch(:halt) { instance_eval(&block) }</code></li>
              </ol>

              
              <ol start="567" class="post-context"
                  id="post-22" onclick="toggle(22);">
                
                <li class="post-context-line"><code>      return if res.nil?
</code></li>
                
                <li class="post-context-line"><code>
</code></li>
                
                <li class="post-context-line"><code>      case
</code></li>
                
                <li class="post-context-line"><code>      when res.respond_to?(:to_str)
</code></li>
                
                <li class="post-context-line"><code>        @response.body = [res]
</code></li>
                
                <li class="post-context-line"><code>      when res.respond_to?(:to_ary)
</code></li>
                
                <li class="post-context-line"><code>        res = res.to_ary
</code></li>
                
              </ol>
              
              <div class="clear"></div>
            </li>

          

        
      
          

            <li class="frame-info framework">
              <code>/var/lib/gems/1.8/gems/sinatra-1.0/lib/sinatra/base.rb</code> in
                <code><strong>call!</strong></code>
            </li>

            <li class="code framework">
              
              <ol start="404"
                  class="pre-context" id="pre-23"
                  onclick="toggle(23);">
                
                <li class="pre-context-line"><code>    def call!(env)
</code></li>
                
                <li class="pre-context-line"><code>      @env      = env
</code></li>
                
                <li class="pre-context-line"><code>      @request  = Request.new(env)
</code></li>
                
                <li class="pre-context-line"><code>      @response = Response.new
</code></li>
                
                <li class="pre-context-line"><code>      @params   = indifferent_params(@request.params)
</code></li>
                
                <li class="pre-context-line"><code>      @template_cache.clear if settings.reload_templates
</code></li>
                
                <li class="pre-context-line"><code>
</code></li>
                
              </ol>
              

              <ol start="411" class="context" id="23"
                  onclick="toggle(23);">
                <li class="context-line" id="context-23"><code>      invoke { dispatch! }</code></li>
              </ol>

              
              <ol start="412" class="post-context"
                  id="post-23" onclick="toggle(23);">
                
                <li class="post-context-line"><code>      invoke { error_block!(response.status) }
</code></li>
                
                <li class="post-context-line"><code>
</code></li>
                
                <li class="post-context-line"><code>      status, header, body = @response.finish
</code></li>
                
                <li class="post-context-line"><code>
</code></li>
                
                <li class="post-context-line"><code>      # Never produce a body on HEAD requests. Do retain the Content-Length
</code></li>
                
                <li class="post-context-line"><code>      # unless it's "0", in which case we assume it was calculated erroneously
</code></li>
                
                <li class="post-context-line"><code>      # for a manual HEAD response and remove it entirely.
</code></li>
                
              </ol>
              
              <div class="clear"></div>
            </li>

          

        
      
          

            <li class="frame-info framework">
              <code>/var/lib/gems/1.8/gems/sinatra-1.0/lib/sinatra/base.rb</code> in
                <code><strong>call</strong></code>
            </li>

            <li class="code framework">
              
              <ol start="392"
                  class="pre-context" id="pre-24"
                  onclick="toggle(24);">
                
                <li class="pre-context-line"><code>      @app = app
</code></li>
                
                <li class="pre-context-line"><code>      @template_cache = Tilt::Cache.new
</code></li>
                
                <li class="pre-context-line"><code>      yield self if block_given?
</code></li>
                
                <li class="pre-context-line"><code>    end
</code></li>
                
                <li class="pre-context-line"><code>
</code></li>
                
                <li class="pre-context-line"><code>    # Rack call interface.
</code></li>
                
                <li class="pre-context-line"><code>    def call(env)
</code></li>
                
              </ol>
              

              <ol start="399" class="context" id="24"
                  onclick="toggle(24);">
                <li class="context-line" id="context-24"><code>      dup.call!(env)</code></li>
              </ol>

              
              <ol start="400" class="post-context"
                  id="post-24" onclick="toggle(24);">
                
                <li class="post-context-line"><code>    end
</code></li>
                
                <li class="post-context-line"><code>
</code></li>
                
                <li class="post-context-line"><code>    attr_accessor :env, :request, :response, :params
</code></li>
                
                <li class="post-context-line"><code>
</code></li>
                
                <li class="post-context-line"><code>    def call!(env)
</code></li>
                
                <li class="post-context-line"><code>      @env      = env
</code></li>
                
                <li class="post-context-line"><code>      @request  = Request.new(env)
</code></li>
                
              </ol>
              
              <div class="clear"></div>
            </li>

          

        
      
          

            <li class="frame-info system">
              <code>/var/lib/gems/1.8/gems/rack-1.1.0/lib/rack/showexceptions.rb</code> in
                <code><strong>call</strong></code>
            </li>

            <li class="code system">
              
              <ol start="17"
                  class="pre-context" id="pre-25"
                  onclick="toggle(25);">
                
                <li class="pre-context-line"><code>
</code></li>
                
                <li class="pre-context-line"><code>    def initialize(app)
</code></li>
                
                <li class="pre-context-line"><code>      @app = app
</code></li>
                
                <li class="pre-context-line"><code>      @template = ERB.new(TEMPLATE)
</code></li>
                
                <li class="pre-context-line"><code>    end
</code></li>
                
                <li class="pre-context-line"><code>
</code></li>
                
                <li class="pre-context-line"><code>    def call(env)
</code></li>
                
              </ol>
              

              <ol start="24" class="context" id="25"
                  onclick="toggle(25);">
                <li class="context-line" id="context-25"><code>      @app.call(env)</code></li>
              </ol>

              
              <ol start="25" class="post-context"
                  id="post-25" onclick="toggle(25);">
                
                <li class="post-context-line"><code>    rescue StandardError, LoadError, SyntaxError => e
</code></li>
                
                <li class="post-context-line"><code>      backtrace = pretty(env, e)
</code></li>
                
                <li class="post-context-line"><code>      [500,
</code></li>
                
                <li class="post-context-line"><code>       {"Content-Type" => "text/html",
</code></li>
                
                <li class="post-context-line"><code>        "Content-Length" => backtrace.join.size.to_s},
</code></li>
                
                <li class="post-context-line"><code>       backtrace]
</code></li>
                
                <li class="post-context-line"><code>    end
</code></li>
                
              </ol>
              
              <div class="clear"></div>
            </li>

          

        
      
          

            <li class="frame-info system">
              <code>/var/lib/gems/1.8/gems/rack-1.1.0/lib/rack/methodoverride.rb</code> in
                <code><strong>call</strong></code>
            </li>

            <li class="code system">
              
              <ol start="17"
                  class="pre-context" id="pre-26"
                  onclick="toggle(26);">
                
                <li class="pre-context-line"><code>        method = method.to_s.upcase
</code></li>
                
                <li class="pre-context-line"><code>        if HTTP_METHODS.include?(method)
</code></li>
                
                <li class="pre-context-line"><code>          env["rack.methodoverride.original_method"] = env["REQUEST_METHOD"]
</code></li>
                
                <li class="pre-context-line"><code>          env["REQUEST_METHOD"] = method
</code></li>
                
                <li class="pre-context-line"><code>        end
</code></li>
                
                <li class="pre-context-line"><code>      end
</code></li>
                
                <li class="pre-context-line"><code>
</code></li>
                
              </ol>
              

              <ol start="24" class="context" id="26"
                  onclick="toggle(26);">
                <li class="context-line" id="context-26"><code>      @app.call(env)</code></li>
              </ol>

              
              <ol start="25" class="post-context"
                  id="post-26" onclick="toggle(26);">
                
                <li class="post-context-line"><code>    end
</code></li>
                
                <li class="post-context-line"><code>  end
</code></li>
                
                <li class="post-context-line"><code>end
</code></li>
                
              </ol>
              
              <div class="clear"></div>
            </li>

          

        
      
          

            <li class="frame-info system">
              <code>/var/lib/gems/1.8/gems/rack-1.1.0/lib/rack/commonlogger.rb</code> in
                <code><strong>call</strong></code>
            </li>

            <li class="code system">
              
              <ol start="11"
                  class="pre-context" id="pre-27"
                  onclick="toggle(27);">
                
                <li class="pre-context-line"><code>    def initialize(app, logger=nil)
</code></li>
                
                <li class="pre-context-line"><code>      @app = app
</code></li>
                
                <li class="pre-context-line"><code>      @logger = logger
</code></li>
                
                <li class="pre-context-line"><code>    end
</code></li>
                
                <li class="pre-context-line"><code>
</code></li>
                
                <li class="pre-context-line"><code>    def call(env)
</code></li>
                
                <li class="pre-context-line"><code>      began_at = Time.now
</code></li>
                
              </ol>
              

              <ol start="18" class="context" id="27"
                  onclick="toggle(27);">
                <li class="context-line" id="context-27"><code>      status, header, body = @app.call(env)</code></li>
              </ol>

              
              <ol start="19" class="post-context"
                  id="post-27" onclick="toggle(27);">
                
                <li class="post-context-line"><code>      header = Utils::HeaderHash.new(header)
</code></li>
                
                <li class="post-context-line"><code>      log(env, status, header, began_at)
</code></li>
                
                <li class="post-context-line"><code>      [status, header, body]
</code></li>
                
                <li class="post-context-line"><code>    end
</code></li>
                
                <li class="post-context-line"><code>
</code></li>
                
                <li class="post-context-line"><code>    private
</code></li>
                
                <li class="post-context-line"><code>
</code></li>
                
              </ol>
              
              <div class="clear"></div>
            </li>

          

        
      
          

            <li class="frame-info framework">
              <code>/var/lib/gems/1.8/gems/sinatra-1.0/lib/sinatra/base.rb</code> in
                <code><strong>call</strong></code>
            </li>

            <li class="code framework">
              
              <ol start="972"
                  class="pre-context" id="pre-28"
                  onclick="toggle(28);">
                
                <li class="pre-context-line"><code>        middleware.each { |c,a,b| builder.use(c, *a, &b) }
</code></li>
                
                <li class="pre-context-line"><code>
</code></li>
                
                <li class="pre-context-line"><code>        builder.run super
</code></li>
                
                <li class="pre-context-line"><code>        builder.to_app
</code></li>
                
                <li class="pre-context-line"><code>      end
</code></li>
                
                <li class="pre-context-line"><code>
</code></li>
                
                <li class="pre-context-line"><code>      def call(env)
</code></li>
                
              </ol>
              

              <ol start="979" class="context" id="28"
                  onclick="toggle(28);">
                <li class="context-line" id="context-28"><code>        synchronize { prototype.call(env) }</code></li>
              </ol>

              
              <ol start="980" class="post-context"
                  id="post-28" onclick="toggle(28);">
                
                <li class="post-context-line"><code>      end
</code></li>
                
                <li class="post-context-line"><code>
</code></li>
                
                <li class="post-context-line"><code>    private
</code></li>
                
                <li class="post-context-line"><code>      def detect_rack_handler
</code></li>
                
                <li class="post-context-line"><code>        servers = Array(self.server)
</code></li>
                
                <li class="post-context-line"><code>        servers.each do |server_name|
</code></li>
                
                <li class="post-context-line"><code>          begin
</code></li>
                
              </ol>
              
              <div class="clear"></div>
            </li>

          

        
      
          

            <li class="frame-info framework">
              <code>/var/lib/gems/1.8/gems/sinatra-1.0/lib/sinatra/base.rb</code> in
                <code><strong>synchronize</strong></code>
            </li>

            <li class="code framework">
              
              <ol start="998"
                  class="pre-context" id="pre-29"
                  onclick="toggle(29);">
                
                <li class="pre-context-line"><code>      end
</code></li>
                
                <li class="pre-context-line"><code>
</code></li>
                
                <li class="pre-context-line"><code>      @@mutex = Mutex.new
</code></li>
                
                <li class="pre-context-line"><code>      def synchronize(&block)
</code></li>
                
                <li class="pre-context-line"><code>        if lock?
</code></li>
                
                <li class="pre-context-line"><code>          @@mutex.synchronize(&block)
</code></li>
                
                <li class="pre-context-line"><code>        else
</code></li>
                
              </ol>
              

              <ol start="1005" class="context" id="29"
                  onclick="toggle(29);">
                <li class="context-line" id="context-29"><code>          yield</code></li>
              </ol>

              
              <ol start="1006" class="post-context"
                  id="post-29" onclick="toggle(29);">
                
                <li class="post-context-line"><code>        end
</code></li>
                
                <li class="post-context-line"><code>      end
</code></li>
                
                <li class="post-context-line"><code>
</code></li>
                
                <li class="post-context-line"><code>      def metadef(message, &block)
</code></li>
                
                <li class="post-context-line"><code>        (class << self; self; end).
</code></li>
                
                <li class="post-context-line"><code>          send :define_method, message, &block
</code></li>
                
                <li class="post-context-line"><code>      end
</code></li>
                
              </ol>
              
              <div class="clear"></div>
            </li>

          

        
      
          

            <li class="frame-info framework">
              <code>/var/lib/gems/1.8/gems/sinatra-1.0/lib/sinatra/base.rb</code> in
                <code><strong>call</strong></code>
            </li>

            <li class="code framework">
              
              <ol start="972"
                  class="pre-context" id="pre-30"
                  onclick="toggle(30);">
                
                <li class="pre-context-line"><code>        middleware.each { |c,a,b| builder.use(c, *a, &b) }
</code></li>
                
                <li class="pre-context-line"><code>
</code></li>
                
                <li class="pre-context-line"><code>        builder.run super
</code></li>
                
                <li class="pre-context-line"><code>        builder.to_app
</code></li>
                
                <li class="pre-context-line"><code>      end
</code></li>
                
                <li class="pre-context-line"><code>
</code></li>
                
                <li class="pre-context-line"><code>      def call(env)
</code></li>
                
              </ol>
              

              <ol start="979" class="context" id="30"
                  onclick="toggle(30);">
                <li class="context-line" id="context-30"><code>        synchronize { prototype.call(env) }</code></li>
              </ol>

              
              <ol start="980" class="post-context"
                  id="post-30" onclick="toggle(30);">
                
                <li class="post-context-line"><code>      end
</code></li>
                
                <li class="post-context-line"><code>
</code></li>
                
                <li class="post-context-line"><code>    private
</code></li>
                
                <li class="post-context-line"><code>      def detect_rack_handler
</code></li>
                
                <li class="post-context-line"><code>        servers = Array(self.server)
</code></li>
                
                <li class="post-context-line"><code>        servers.each do |server_name|
</code></li>
                
                <li class="post-context-line"><code>          begin
</code></li>
                
              </ol>
              
              <div class="clear"></div>
            </li>

          

        
      
          

            <li class="frame-info system">
              <code>/var/lib/gems/1.8/gems/rack-1.1.0/lib/rack/content_length.rb</code> in
                <code><strong>call</strong></code>
            </li>

            <li class="code system">
              
              <ol start="6"
                  class="pre-context" id="pre-31"
                  onclick="toggle(31);">
                
                <li class="pre-context-line"><code>    include Rack::Utils
</code></li>
                
                <li class="pre-context-line"><code>
</code></li>
                
                <li class="pre-context-line"><code>    def initialize(app)
</code></li>
                
                <li class="pre-context-line"><code>      @app = app
</code></li>
                
                <li class="pre-context-line"><code>    end
</code></li>
                
                <li class="pre-context-line"><code>
</code></li>
                
                <li class="pre-context-line"><code>    def call(env)
</code></li>
                
              </ol>
              

              <ol start="13" class="context" id="31"
                  onclick="toggle(31);">
                <li class="context-line" id="context-31"><code>      status, headers, body = @app.call(env)</code></li>
              </ol>

              
              <ol start="14" class="post-context"
                  id="post-31" onclick="toggle(31);">
                
                <li class="post-context-line"><code>      headers = HeaderHash.new(headers)
</code></li>
                
                <li class="post-context-line"><code>
</code></li>
                
                <li class="post-context-line"><code>      if !STATUS_WITH_NO_ENTITY_BODY.include?(status) &&
</code></li>
                
                <li class="post-context-line"><code>         !headers['Content-Length'] &&
</code></li>
                
                <li class="post-context-line"><code>         !headers['Transfer-Encoding'] &&
</code></li>
                
                <li class="post-context-line"><code>         (body.respond_to?(:to_ary) || body.respond_to?(:to_str))
</code></li>
                
                <li class="post-context-line"><code>
</code></li>
                
              </ol>
              
              <div class="clear"></div>
            </li>

          

        
      
          

            <li class="frame-info system">
              <code>/var/lib/gems/1.8/gems/rack-1.1.0/lib/rack/chunked.rb</code> in
                <code><strong>call</strong></code>
            </li>

            <li class="code system">
              
              <ol start="8"
                  class="pre-context" id="pre-32"
                  onclick="toggle(32);">
                
                <li class="pre-context-line"><code>    include Rack::Utils
</code></li>
                
                <li class="pre-context-line"><code>
</code></li>
                
                <li class="pre-context-line"><code>    def initialize(app)
</code></li>
                
                <li class="pre-context-line"><code>      @app = app
</code></li>
                
                <li class="pre-context-line"><code>    end
</code></li>
                
                <li class="pre-context-line"><code>
</code></li>
                
                <li class="pre-context-line"><code>    def call(env)
</code></li>
                
              </ol>
              

              <ol start="15" class="context" id="32"
                  onclick="toggle(32);">
                <li class="context-line" id="context-32"><code>      status, headers, body = @app.call(env)</code></li>
              </ol>

              
              <ol start="16" class="post-context"
                  id="post-32" onclick="toggle(32);">
                
                <li class="post-context-line"><code>      headers = HeaderHash.new(headers)
</code></li>
                
                <li class="post-context-line"><code>
</code></li>
                
                <li class="post-context-line"><code>      if env['HTTP_VERSION'] == 'HTTP/1.0' ||
</code></li>
                
                <li class="post-context-line"><code>         STATUS_WITH_NO_ENTITY_BODY.include?(status) ||
</code></li>
                
                <li class="post-context-line"><code>         headers['Content-Length'] ||
</code></li>
                
                <li class="post-context-line"><code>         headers['Transfer-Encoding']
</code></li>
                
                <li class="post-context-line"><code>        [status, headers, body]
</code></li>
                
              </ol>
              
              <div class="clear"></div>
            </li>

          

        
      
          

            <li class="frame-info system">
              <code>/var/lib/gems/1.8/gems/thin-1.2.7/lib/thin/connection.rb</code> in
                <code><strong>pre_process</strong></code>
            </li>

            <li class="code system">
              
              <ol start="69"
                  class="pre-context" id="pre-33"
                  onclick="toggle(33);">
                
                <li class="pre-context-line"><code>      
</code></li>
                
                <li class="pre-context-line"><code>      # When we're under a non-async framework like rails, we can still spawn
</code></li>
                
                <li class="pre-context-line"><code>      # off async responses using the callback info, so there's little point
</code></li>
                
                <li class="pre-context-line"><code>      # in removing this.
</code></li>
                
                <li class="pre-context-line"><code>      response = AsyncResponse
</code></li>
                
                <li class="pre-context-line"><code>      catch(:async) do
</code></li>
                
                <li class="pre-context-line"><code>        # Process the request calling the Rack adapter
</code></li>
                
              </ol>
              

              <ol start="76" class="context" id="33"
                  onclick="toggle(33);">
                <li class="context-line" id="context-33"><code>        response = @app.call(@request.env)</code></li>
              </ol>

              
              <ol start="77" class="post-context"
                  id="post-33" onclick="toggle(33);">
                
                <li class="post-context-line"><code>      end
</code></li>
                
                <li class="post-context-line"><code>      response
</code></li>
                
                <li class="post-context-line"><code>    rescue Exception
</code></li>
                
                <li class="post-context-line"><code>      handle_error
</code></li>
                
                <li class="post-context-line"><code>      terminate_request
</code></li>
                
                <li class="post-context-line"><code>      nil # Signal to post_process that the request could not be processed
</code></li>
                
                <li class="post-context-line"><code>    end
</code></li>
                
              </ol>
              
              <div class="clear"></div>
            </li>

          

        
      
          

            <li class="frame-info system">
              <code>/var/lib/gems/1.8/gems/thin-1.2.7/lib/thin/connection.rb</code> in
                <code><strong>catch</strong></code>
            </li>

            <li class="code system">
              
              <ol start="67"
                  class="pre-context" id="pre-34"
                  onclick="toggle(34);">
                
                <li class="pre-context-line"><code>      # callback is no longer referenced, so be tidy!
</code></li>
                
                <li class="pre-context-line"><code>      @request.async_callback = method(:post_process)
</code></li>
                
                <li class="pre-context-line"><code>      
</code></li>
                
                <li class="pre-context-line"><code>      # When we're under a non-async framework like rails, we can still spawn
</code></li>
                
                <li class="pre-context-line"><code>      # off async responses using the callback info, so there's little point
</code></li>
                
                <li class="pre-context-line"><code>      # in removing this.
</code></li>
                
                <li class="pre-context-line"><code>      response = AsyncResponse
</code></li>
                
              </ol>
              

              <ol start="74" class="context" id="34"
                  onclick="toggle(34);">
                <li class="context-line" id="context-34"><code>      catch(:async) do</code></li>
              </ol>

              
              <ol start="75" class="post-context"
                  id="post-34" onclick="toggle(34);">
                
                <li class="post-context-line"><code>        # Process the request calling the Rack adapter
</code></li>
                
                <li class="post-context-line"><code>        response = @app.call(@request.env)
</code></li>
                
                <li class="post-context-line"><code>      end
</code></li>
                
                <li class="post-context-line"><code>      response
</code></li>
                
                <li class="post-context-line"><code>    rescue Exception
</code></li>
                
                <li class="post-context-line"><code>      handle_error
</code></li>
                
                <li class="post-context-line"><code>      terminate_request
</code></li>
                
              </ol>
              
              <div class="clear"></div>
            </li>

          

        
      
          

            <li class="frame-info system">
              <code>/var/lib/gems/1.8/gems/thin-1.2.7/lib/thin/connection.rb</code> in
                <code><strong>pre_process</strong></code>
            </li>

            <li class="code system">
              
              <ol start="67"
                  class="pre-context" id="pre-35"
                  onclick="toggle(35);">
                
                <li class="pre-context-line"><code>      # callback is no longer referenced, so be tidy!
</code></li>
                
                <li class="pre-context-line"><code>      @request.async_callback = method(:post_process)
</code></li>
                
                <li class="pre-context-line"><code>      
</code></li>
                
                <li class="pre-context-line"><code>      # When we're under a non-async framework like rails, we can still spawn
</code></li>
                
                <li class="pre-context-line"><code>      # off async responses using the callback info, so there's little point
</code></li>
                
                <li class="pre-context-line"><code>      # in removing this.
</code></li>
                
                <li class="pre-context-line"><code>      response = AsyncResponse
</code></li>
                
              </ol>
              

              <ol start="74" class="context" id="35"
                  onclick="toggle(35);">
                <li class="context-line" id="context-35"><code>      catch(:async) do</code></li>
              </ol>

              
              <ol start="75" class="post-context"
                  id="post-35" onclick="toggle(35);">
                
                <li class="post-context-line"><code>        # Process the request calling the Rack adapter
</code></li>
                
                <li class="post-context-line"><code>        response = @app.call(@request.env)
</code></li>
                
                <li class="post-context-line"><code>      end
</code></li>
                
                <li class="post-context-line"><code>      response
</code></li>
                
                <li class="post-context-line"><code>    rescue Exception
</code></li>
                
                <li class="post-context-line"><code>      handle_error
</code></li>
                
                <li class="post-context-line"><code>      terminate_request
</code></li>
                
              </ol>
              
              <div class="clear"></div>
            </li>

          

        
      
          

            <li class="frame-info system">
              <code>/var/lib/gems/1.8/gems/thin-1.2.7/lib/thin/connection.rb</code> in
                <code><strong>process</strong></code>
            </li>

            <li class="code system">
              
              <ol start="50"
                  class="pre-context" id="pre-36"
                  onclick="toggle(36);">
                
                <li class="pre-context-line"><code>    # is ready to be processed.
</code></li>
                
                <li class="pre-context-line"><code>    def process
</code></li>
                
                <li class="pre-context-line"><code>      if threaded?
</code></li>
                
                <li class="pre-context-line"><code>        @request.threaded = true
</code></li>
                
                <li class="pre-context-line"><code>        EventMachine.defer(method(:pre_process), method(:post_process))
</code></li>
                
                <li class="pre-context-line"><code>      else
</code></li>
                
                <li class="pre-context-line"><code>        @request.threaded = false
</code></li>
                
              </ol>
              

              <ol start="57" class="context" id="36"
                  onclick="toggle(36);">
                <li class="context-line" id="context-36"><code>        post_process(pre_process)</code></li>
              </ol>

              
              <ol start="58" class="post-context"
                  id="post-36" onclick="toggle(36);">
                
                <li class="post-context-line"><code>      end
</code></li>
                
                <li class="post-context-line"><code>    end
</code></li>
                
                <li class="post-context-line"><code>
</code></li>
                
                <li class="post-context-line"><code>    def pre_process
</code></li>
                
                <li class="post-context-line"><code>      # Add client info to the request env
</code></li>
                
                <li class="post-context-line"><code>      @request.remote_address = remote_address
</code></li>
                
                <li class="post-context-line"><code>
</code></li>
                
              </ol>
              
              <div class="clear"></div>
            </li>

          

        
      
          

            <li class="frame-info system">
              <code>/var/lib/gems/1.8/gems/thin-1.2.7/lib/thin/connection.rb</code> in
                <code><strong>receive_data</strong></code>
            </li>

            <li class="code system">
              
              <ol start="35"
                  class="pre-context" id="pre-37"
                  onclick="toggle(37);">
                
                <li class="pre-context-line"><code>      @request  = Request.new
</code></li>
                
                <li class="pre-context-line"><code>      @response = Response.new
</code></li>
                
                <li class="pre-context-line"><code>    end
</code></li>
                
                <li class="pre-context-line"><code>
</code></li>
                
                <li class="pre-context-line"><code>    # Called when data is received from the client.
</code></li>
                
                <li class="pre-context-line"><code>    def receive_data(data)
</code></li>
                
                <li class="pre-context-line"><code>      trace { data }
</code></li>
                
              </ol>
              

              <ol start="42" class="context" id="37"
                  onclick="toggle(37);">
                <li class="context-line" id="context-37"><code>      process if @request.parse(data)</code></li>
              </ol>

              
              <ol start="43" class="post-context"
                  id="post-37" onclick="toggle(37);">
                
                <li class="post-context-line"><code>    rescue InvalidRequest => e
</code></li>
                
                <li class="post-context-line"><code>      log "!! Invalid request"
</code></li>
                
                <li class="post-context-line"><code>      log_error e
</code></li>
                
                <li class="post-context-line"><code>      close_connection
</code></li>
                
                <li class="post-context-line"><code>    end
</code></li>
                
                <li class="post-context-line"><code>
</code></li>
                
                <li class="post-context-line"><code>    # Called when all data was received and the request
</code></li>
                
              </ol>
              
              <div class="clear"></div>
            </li>

          

        
      
          

            <li class="frame-info system">
              <code>/var/lib/gems/1.8/gems/eventmachine-0.12.10/lib/eventmachine.rb</code> in
                <code><strong>run_machine</strong></code>
            </li>

            <li class="code system">
              
              <ol start="249"
                  class="pre-context" id="pre-38"
                  onclick="toggle(38);">
                
                <li class="pre-context-line"><code>        @reactor_running = true
</code></li>
                
                <li class="pre-context-line"><code>        initialize_event_machine
</code></li>
                
                <li class="pre-context-line"><code>        (b = blk || block) and add_timer(0, b)
</code></li>
                
                <li class="pre-context-line"><code>        if @next_tick_queue && !@next_tick_queue.empty?
</code></li>
                
                <li class="pre-context-line"><code>          add_timer(0) { signal_loopbreak }
</code></li>
                
                <li class="pre-context-line"><code>        end
</code></li>
                
                <li class="pre-context-line"><code>        @reactor_thread = Thread.current
</code></li>
                
              </ol>
              

              <ol start="256" class="context" id="38"
                  onclick="toggle(38);">
                <li class="context-line" id="context-38"><code>        run_machine</code></li>
              </ol>

              
              <ol start="257" class="post-context"
                  id="post-38" onclick="toggle(38);">
                
                <li class="post-context-line"><code>      ensure
</code></li>
                
                <li class="post-context-line"><code>        until @tails.empty?
</code></li>
                
                <li class="post-context-line"><code>          @tails.pop.call
</code></li>
                
                <li class="post-context-line"><code>        end
</code></li>
                
                <li class="post-context-line"><code>
</code></li>
                
                <li class="post-context-line"><code>        begin
</code></li>
                
                <li class="post-context-line"><code>          release_machine
</code></li>
                
              </ol>
              
              <div class="clear"></div>
            </li>

          

        
      
          

            <li class="frame-info system">
              <code>/var/lib/gems/1.8/gems/eventmachine-0.12.10/lib/eventmachine.rb</code> in
                <code><strong>run</strong></code>
            </li>

            <li class="code system">
              
              <ol start="249"
                  class="pre-context" id="pre-39"
                  onclick="toggle(39);">
                
                <li class="pre-context-line"><code>        @reactor_running = true
</code></li>
                
                <li class="pre-context-line"><code>        initialize_event_machine
</code></li>
                
                <li class="pre-context-line"><code>        (b = blk || block) and add_timer(0, b)
</code></li>
                
                <li class="pre-context-line"><code>        if @next_tick_queue && !@next_tick_queue.empty?
</code></li>
                
                <li class="pre-context-line"><code>          add_timer(0) { signal_loopbreak }
</code></li>
                
                <li class="pre-context-line"><code>        end
</code></li>
                
                <li class="pre-context-line"><code>        @reactor_thread = Thread.current
</code></li>
                
              </ol>
              

              <ol start="256" class="context" id="39"
                  onclick="toggle(39);">
                <li class="context-line" id="context-39"><code>        run_machine</code></li>
              </ol>

              
              <ol start="257" class="post-context"
                  id="post-39" onclick="toggle(39);">
                
                <li class="post-context-line"><code>      ensure
</code></li>
                
                <li class="post-context-line"><code>        until @tails.empty?
</code></li>
                
                <li class="post-context-line"><code>          @tails.pop.call
</code></li>
                
                <li class="post-context-line"><code>        end
</code></li>
                
                <li class="post-context-line"><code>
</code></li>
                
                <li class="post-context-line"><code>        begin
</code></li>
                
                <li class="post-context-line"><code>          release_machine
</code></li>
                
              </ol>
              
              <div class="clear"></div>
            </li>

          

        
      
          

            <li class="frame-info system">
              <code>/var/lib/gems/1.8/gems/thin-1.2.7/lib/thin/backends/base.rb</code> in
                <code><strong>start</strong></code>
            </li>

            <li class="code system">
              
              <ol start="50"
                  class="pre-context" id="pre-40"
                  onclick="toggle(40);">
                
                <li class="pre-context-line"><code>          @running = true
</code></li>
                
                <li class="pre-context-line"><code>        end
</code></li>
                
                <li class="pre-context-line"><code>        
</code></li>
                
                <li class="pre-context-line"><code>        # Allow for early run up of eventmachine.
</code></li>
                
                <li class="pre-context-line"><code>        if EventMachine.reactor_running?
</code></li>
                
                <li class="pre-context-line"><code>          starter.call
</code></li>
                
                <li class="pre-context-line"><code>        else
</code></li>
                
              </ol>
              

              <ol start="57" class="context" id="40"
                  onclick="toggle(40);">
                <li class="context-line" id="context-40"><code>          EventMachine.run(&starter)</code></li>
              </ol>

              
              <ol start="58" class="post-context"
                  id="post-40" onclick="toggle(40);">
                
                <li class="post-context-line"><code>        end
</code></li>
                
                <li class="post-context-line"><code>      end
</code></li>
                
                <li class="post-context-line"><code>      
</code></li>
                
                <li class="post-context-line"><code>      # Stop of the backend from accepting new connections.
</code></li>
                
                <li class="post-context-line"><code>      def stop
</code></li>
                
                <li class="post-context-line"><code>        @running  = false
</code></li>
                
                <li class="post-context-line"><code>        @stopping = true
</code></li>
                
              </ol>
              
              <div class="clear"></div>
            </li>

          

        
      
          

            <li class="frame-info system">
              <code>/var/lib/gems/1.8/gems/thin-1.2.7/lib/thin/server.rb</code> in
                <code><strong>start</strong></code>
            </li>

            <li class="code system">
              
              <ol start="149"
                  class="pre-context" id="pre-41"
                  onclick="toggle(41);">
                
                <li class="pre-context-line"><code>      log   ">> Thin web server (v#{VERSION::STRING} codename #{VERSION::CODENAME})"
</code></li>
                
                <li class="pre-context-line"><code>      debug ">> Debugging ON"
</code></li>
                
                <li class="pre-context-line"><code>      trace ">> Tracing ON"
</code></li>
                
                <li class="pre-context-line"><code>      
</code></li>
                
                <li class="pre-context-line"><code>      log ">> Maximum connections set to #{@backend.maximum_connections}"
</code></li>
                
                <li class="pre-context-line"><code>      log ">> Listening on #{@backend}, CTRL+C to stop"
</code></li>
                
                <li class="pre-context-line"><code>      
</code></li>
                
              </ol>
              

              <ol start="156" class="context" id="41"
                  onclick="toggle(41);">
                <li class="context-line" id="context-41"><code>      @backend.start</code></li>
              </ol>

              
              <ol start="157" class="post-context"
                  id="post-41" onclick="toggle(41);">
                
                <li class="post-context-line"><code>    end
</code></li>
                
                <li class="post-context-line"><code>    alias :start! :start
</code></li>
                
                <li class="post-context-line"><code>    
</code></li>
                
                <li class="post-context-line"><code>    # == Gracefull shutdown
</code></li>
                
                <li class="post-context-line"><code>    # Stops the server after processing all current connections.
</code></li>
                
                <li class="post-context-line"><code>    # As soon as this method is called, the server stops accepting
</code></li>
                
                <li class="post-context-line"><code>    # new requests and wait for all current connections to finish.
</code></li>
                
              </ol>
              
              <div class="clear"></div>
            </li>

          

        
      
          

            <li class="frame-info system">
              <code>/var/lib/gems/1.8/gems/rack-1.1.0/lib/rack/handler/thin.rb</code> in
                <code><strong>run</strong></code>
            </li>

            <li class="code system">
              
              <ol start="7"
                  class="pre-context" id="pre-42"
                  onclick="toggle(42);">
                
                <li class="pre-context-line"><code>    class Thin
</code></li>
                
                <li class="pre-context-line"><code>      def self.run(app, options={})
</code></li>
                
                <li class="pre-context-line"><code>        app = Rack::Chunked.new(Rack::ContentLength.new(app))
</code></li>
                
                <li class="pre-context-line"><code>        server = ::Thin::Server.new(options[:Host] || '0.0.0.0',
</code></li>
                
                <li class="pre-context-line"><code>                                    options[:Port] || 8080,
</code></li>
                
                <li class="pre-context-line"><code>                                    app)
</code></li>
                
                <li class="pre-context-line"><code>        yield server if block_given?
</code></li>
                
              </ol>
              

              <ol start="14" class="context" id="42"
                  onclick="toggle(42);">
                <li class="context-line" id="context-42"><code>        server.start</code></li>
              </ol>

              
              <ol start="15" class="post-context"
                  id="post-42" onclick="toggle(42);">
                
                <li class="post-context-line"><code>      end
</code></li>
                
                <li class="post-context-line"><code>    end
</code></li>
                
                <li class="post-context-line"><code>  end
</code></li>
                
                <li class="post-context-line"><code>end
</code></li>
                
              </ol>
              
              <div class="clear"></div>
            </li>

          

        
      
          

            <li class="frame-info framework">
              <code>/var/lib/gems/1.8/gems/sinatra-1.0/lib/sinatra/base.rb</code> in
                <code><strong>run!</strong></code>
            </li>

            <li class="code framework">
              
              <ol start="939"
                  class="pre-context" id="pre-43"
                  onclick="toggle(43);">
                
                <li class="pre-context-line"><code>      # Thin, Mongrel or WEBrick (in that order)
</code></li>
                
                <li class="pre-context-line"><code>      def run!(options={})
</code></li>
                
                <li class="pre-context-line"><code>        set options
</code></li>
                
                <li class="pre-context-line"><code>        handler      = detect_rack_handler
</code></li>
                
                <li class="pre-context-line"><code>        handler_name = handler.name.gsub(/.*::/, '')
</code></li>
                
                <li class="pre-context-line"><code>        puts "== Sinatra/#{Sinatra::VERSION} has taken the stage " +
</code></li>
                
                <li class="pre-context-line"><code>          "on #{port} for #{environment} with backup from #{handler_name}" unless handler_name =~/cgi/i
</code></li>
                
              </ol>
              

              <ol start="946" class="context" id="43"
                  onclick="toggle(43);">
                <li class="context-line" id="context-43"><code>        handler.run self, :Host => bind, :Port => port do |server|</code></li>
              </ol>

              
              <ol start="947" class="post-context"
                  id="post-43" onclick="toggle(43);">
                
                <li class="post-context-line"><code>          trap(:INT) do
</code></li>
                
                <li class="post-context-line"><code>            ## Use thins' hard #stop! if available, otherwise just #stop
</code></li>
                
                <li class="post-context-line"><code>            server.respond_to?(:stop!) ? server.stop! : server.stop
</code></li>
                
                <li class="post-context-line"><code>            puts "\n== Sinatra has ended his set (crowd applauds)" unless handler_name =~/cgi/i
</code></li>
                
                <li class="post-context-line"><code>          end
</code></li>
                
                <li class="post-context-line"><code>          set :running, true
</code></li>
                
                <li class="post-context-line"><code>        end
</code></li>
                
              </ol>
              
              <div class="clear"></div>
            </li>

          

        
      
          

            <li class="frame-info framework">
              <code>/var/lib/gems/1.8/gems/sinatra-1.0/lib/sinatra/main.rb</code> in
                <code><strong>nil</strong></code>
            </li>

            <li class="code framework">
              
              <ol start="18"
                  class="pre-context" id="pre-44"
                  onclick="toggle(44);">
                
                <li class="pre-context-line"><code>        op.on('-s server') { |val| set :server, val }
</code></li>
                
                <li class="pre-context-line"><code>        op.on('-p port')   { |val| set :port, val.to_i }
</code></li>
                
                <li class="pre-context-line"><code>        op.on('-o addr')   { |val| set :bind, val }
</code></li>
                
                <li class="pre-context-line"><code>      }.parse!(ARGV.dup)
</code></li>
                
                <li class="pre-context-line"><code>    end
</code></li>
                
                <li class="pre-context-line"><code>  end
</code></li>
                
                <li class="pre-context-line"><code>
</code></li>
                
              </ol>
              

              <ol start="25" class="context" id="44"
                  onclick="toggle(44);">
                <li class="context-line" id="context-44"><code>  at_exit { Application.run! if $!.nil? && Application.run? }</code></li>
              </ol>

              
              <ol start="26" class="post-context"
                  id="post-44" onclick="toggle(44);">
                
                <li class="post-context-line"><code>end
</code></li>
                
                <li class="post-context-line"><code>
</code></li>
                
                <li class="post-context-line"><code>include Sinatra::Delegator
</code></li>
                
              </ol>
              
              <div class="clear"></div>
            </li>

          

        
      
          

            <li class="frame-info app">
              <code>/srv/cloud/one/lib/ruby/cloud/occi/occi-server.rb</code> in
                <code><strong>nil</strong></code>
            </li>

            <li class="code app">
              
              <ol start="149"
                  class="pre-context" id="pre-45"
                  onclick="toggle(45);">
                
                <li class="pre-context-line"><code>end
</code></li>
                
                <li class="pre-context-line"><code>
</code></li>
                
                <li class="pre-context-line"><code>get '/storage/:id' do  
</code></li>
                
                <li class="pre-context-line"><code>    result,rc = $occi_server.get_storage(request, params)
</code></li>
                
                <li class="pre-context-line"><code>    treat_response(result,rc)
</code></li>
                
                <li class="pre-context-line"><code>end
</code></li>
                
                <li class="pre-context-line"><code>
</code></li>
                
              </ol>
              

              <ol start="156" class="context" id="45"
                  onclick="toggle(45);">
                <li class="context-line" id="context-45"><code>delete '/storage/:id' do</code></li>
              </ol>

              
              <ol start="157" class="post-context"
                  id="post-45" onclick="toggle(45);">
                
                <li class="post-context-line"><code>    result,rc = $occi_server.delete_storage(request, params)
</code></li>
                
                <li class="post-context-line"><code>    treat_response(result,rc)
</code></li>
                
                <li class="post-context-line"><code>end</code></li>
                
              </ol>
              
              <div class="clear"></div>
            </li>

          

        
      

      </ul>
    </div> <!-- /BACKTRACE -->

    <div id="get">
      <h3 id="get-info">GET</h3>
      
        <table class="req">
          <tr>
            <th>Variable</th>
            <th>Value</th>
          </tr>
           
          <tr>
            <td>file</td>
            <td class="code"><div>{:type=>"application/octet-stream; charset=ISO-8859-1", :head=>"Content-Disposition: form-data; name=\"file\"; filename=\"ttyLinux.img\"\r\nContent-Type: application/octet-stream; charset=ISO-8859-1\r\nContent-Transfer-Encoding: binary\r\n", :tempfile=>#<File:/srv/cloud/images/tmp/RackMultipart20100811-3091-1f5qghf-0>, :filename=>"ttyLinux.img", :name=>"file"}</div></td>
          </tr>
          
          <tr>
            <td>occixml</td>
            <td class="code"><div>{:type=>"text/plain; charset=US-ASCII", :head=>"Content-Disposition: form-data; name=\"occixml\"\r\nContent-Type: text/plain; charset=US-ASCII\r\nContent-Transfer-Encoding: 8bit\r\n", :tempfile=>#<File:/srv/cloud/images/tmp/RackMultipart20100811-3091-bert41-0>, :name=>"occixml"}</div></td>
          </tr>
          
        </table>
      
      <div class="clear"></div>
    </div> <!-- /GET -->

    <div id="post">
      <h3 id="post-info">POST</h3>
      
        <table class="req">
          <tr>
            <th>Variable</th>
            <th>Value</th>
          </tr>
          
          <tr>
            <td>file</td>
            <td class="code"><div>{:type=>"application/octet-stream; charset=ISO-8859-1", :head=>"Content-Disposition: form-data; name=\"file\"; filename=\"ttyLinux.img\"\r\nContent-Type: application/octet-stream; charset=ISO-8859-1\r\nContent-Transfer-Encoding: binary\r\n", :tempfile=>#<File:/srv/cloud/images/tmp/RackMultipart20100811-3091-1f5qghf-0>, :filename=>"ttyLinux.img", :name=>"file"}</div></td>
          </tr>
          
          <tr>
            <td>occixml</td>
            <td class="code"><div>{:type=>"text/plain; charset=US-ASCII", :head=>"Content-Disposition: form-data; name=\"occixml\"\r\nContent-Type: text/plain; charset=US-ASCII\r\nContent-Transfer-Encoding: 8bit\r\n", :tempfile=>#<File:/srv/cloud/images/tmp/RackMultipart20100811-3091-bert41-0>, :name=>"occixml"}</div></td>
          </tr>
          
        </table>
      
      <div class="clear"></div>
    </div> <!-- /POST -->

    <div id="cookies">
      <h3 id="cookie-info">COOKIES</h3>
      
        <p class="no-data">No cookie data.</p>
      
      <div class="clear"></div>
    </div> <!-- /COOKIES -->

    <div id="rack">
      <h3 id="env-info">Rack ENV</h3>
      <table class="req">
        <tr>
          <th>Variable</th>
          <th>Value</th>
        </tr>
         
         <tr>
           <td>CONTENT_LENGTH</td>
           <td class="code"><div>41943562</div></td>
         </tr>
         
         <tr>
           <td>CONTENT_TYPE</td>
           <td class="code"><div>multipart/form-data; boundary=pS3u9U_Lpss34P7zj2S5eX25CBTxJ8</div></td>
         </tr>
         
         <tr>
           <td>GATEWAY_INTERFACE</td>
           <td class="code"><div>CGI/1.2</div></td>
         </tr>
         
         <tr>
           <td>HTTP_AUTHORIZATION</td>
           <td class="code"><div>Basic b25lYWRtaW46N2JjODU1OWE4ZmU1MDllNjgwNTYyYjg1YzMzN2YxNzA5NTZmY2IwNg==</div></td>
         </tr>
         
         <tr>
           <td>HTTP_HOST</td>
           <td class="code"><div>occi.opennebula.cloud:4567</div></td>
         </tr>
         
         <tr>
           <td>HTTP_USER_AGENT</td>
           <td class="code"><div>Jakarta Commons-HttpClient/3.1</div></td>
         </tr>
         
         <tr>
           <td>HTTP_VERSION</td>
           <td class="code"><div>HTTP/1.1</div></td>
         </tr>
         
         <tr>
           <td>PATH_INFO</td>
           <td class="code"><div>/storage</div></td>
         </tr>
         
         <tr>
           <td>QUERY_STRING</td>
           <td class="code"><div></div></td>
         </tr>
         
         <tr>
           <td>REMOTE_ADDR</td>
           <td class="code"><div>10.0.0.2</div></td>
         </tr>
         
         <tr>
           <td>REQUEST_METHOD</td>
           <td class="code"><div>POST</div></td>
         </tr>
         
         <tr>
           <td>REQUEST_PATH</td>
           <td class="code"><div>/storage</div></td>
         </tr>
         
         <tr>
           <td>REQUEST_URI</td>
           <td class="code"><div>/storage</div></td>
         </tr>
         
         <tr>
           <td>SCRIPT_NAME</td>
           <td class="code"><div></div></td>
         </tr>
         
         <tr>
           <td>SERVER_NAME</td>
           <td class="code"><div>occi.opennebula.cloud</div></td>
         </tr>
         
         <tr>
           <td>SERVER_PORT</td>
           <td class="code"><div>4567</div></td>
         </tr>
         
         <tr>
           <td>SERVER_PROTOCOL</td>
           <td class="code"><div>HTTP/1.1</div></td>
         </tr>
         
         <tr>
           <td>SERVER_SOFTWARE</td>
           <td class="code"><div>thin 1.2.7 codename No Hup</div></td>
         </tr>
         
         <tr>
           <td>async.callback</td>
           <td class="code"><div>#<Method: Thin::Connection#post_process></div></td>
         </tr>
         
         <tr>
           <td>async.close</td>
           <td class="code"><div>#<EventMachine::DefaultDeferrable:0x7fdb575c1e78></div></td>
         </tr>
         
         <tr>
           <td>rack.errors</td>
           <td class="code"><div>#<IO:0x7fdb5cf69ac0></div></td>
         </tr>
         
         <tr>
           <td>rack.input</td>
           <td class="code"><div>#<File:/srv/cloud/images/tmp/thin-body20100811-3091-14kpj74-0></div></td>
         </tr>
         
         <tr>
           <td>rack.multiprocess</td>
           <td class="code"><div>false</div></td>
         </tr>
         
         <tr>
           <td>rack.multithread</td>
           <td class="code"><div>false</div></td>
         </tr>
         
         <tr>
           <td>rack.request.form_hash</td>
           <td class="code"><div>{"occixml"=>{:type=>"text/plain; charset=US-ASCII", :head=>"Content-Disposition: form-data; name=\"occixml\"\r\nContent-Type: text/plain; charset=US-ASCII\r\nContent-Transfer-Encoding: 8bit\r\n", :tempfile=>#<File:/srv/cloud/images/tmp/RackMultipart20100811-3091-bert41-0>, :name=>"occixml"}, "file"=>{:type=>"application/octet-stream; charset=ISO-8859-1", :head=>"Content-Disposition: form-data; name=\"file\"; filename=\"ttyLinux.img\"\r\nContent-Type: application/octet-stream; charset=ISO-8859-1\r\nContent-Transfer-Encoding: binary\r\n", :tempfile=>#<File:/srv/cloud/images/tmp/RackMultipart20100811-3091-1f5qghf-0>, :filename=>"ttyLinux.img", :name=>"file"}}</div></td>
         </tr>
         
         <tr>
           <td>rack.request.form_input</td>
           <td class="code"><div>#<File:/srv/cloud/images/tmp/thin-body20100811-3091-14kpj74-0></div></td>
         </tr>
         
         <tr>
           <td>rack.request.query_hash</td>
           <td class="code"><div>{"occixml"=>{:type=>"text/plain; charset=US-ASCII", :head=>"Content-Disposition: form-data; name=\"occixml\"\r\nContent-Type: text/plain; charset=US-ASCII\r\nContent-Transfer-Encoding: 8bit\r\n", :tempfile=>#<File:/srv/cloud/images/tmp/RackMultipart20100811-3091-bert41-0>, :name=>"occixml"}, "file"=>{:type=>"application/octet-stream; charset=ISO-8859-1", :head=>"Content-Disposition: form-data; name=\"file\"; filename=\"ttyLinux.img\"\r\nContent-Type: application/octet-stream; charset=ISO-8859-1\r\nContent-Transfer-Encoding: binary\r\n", :tempfile=>#<File:/srv/cloud/images/tmp/RackMultipart20100811-3091-1f5qghf-0>, :filename=>"ttyLinux.img", :name=>"file"}}</div></td>
         </tr>
         
         <tr>
           <td>rack.request.query_string</td>
           <td class="code"><div></div></td>
         </tr>
         
         <tr>
           <td>rack.run_once</td>
           <td class="code"><div>false</div></td>
         </tr>
         
         <tr>
           <td>rack.url_scheme</td>
           <td class="code"><div>http</div></td>
         </tr>
         
         <tr>
           <td>rack.version</td>
           <td class="code"><div>[1, 0]</div></td>
         </tr>
         
         <tr>
           <td>sinatra.error</td>
           <td class="code"><div>#<RuntimeError: Hash is not a valid input stream.  It must walk 
like either a String, an IO, or a Source.></div></td>
         </tr>
         
      </table>
      <div class="clear"></div>
    </div> <!-- /RACK ENV -->

    <p id="explanation">You're seeing this error because you have
enabled the <code>show_exceptions</code> setting.</p>
  </div> <!-- /WRAP -->
  </body>
</html>