Ticket #948: More Info for DIR2-LIT directory.html

File More Info for DIR2-LIT directory.html, 18.1 KB (added by davidsarah, at 2010-02-24T05:41:51Z)

Nevow traceback showing bug when following More Info link of a DIR2-LIT directory (http://127.0.0.1:3456/uri/URI%3ADIR2-LIT%3Agqytunj2onug64tufqzdcosvkjetutcjkq5gw4tvm5vwszdgnz5hgyzufqydulbshj5x2lbm/?t=info)

Line 
1<html><head>
2  <title>More Info for immutable directory</title>
3  <!-- <link href="http://www.allmydata.com/common/css/styles.css"
4        rel="stylesheet" type="text/css"/> -->
5  <link href="/webform_css" type="text/css" rel="stylesheet" />
6  <link href="/tahoe_css" type="text/css" rel="stylesheet" />
7  <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
8
9</head><body>
10
11<h1>More Info for immutable directory</h1>
12
13<ul>
14  <li>Object Type: <span>immutable directory</span></li>
15  <li>Storage Index: None</li>
16  <li>Object Size: <html><head><title>Exception</title></head><body><style type="text/css">
17p.error {
18  color: black;
19  font-family: Verdana, Arial, helvetica, sans-serif;
20  font-weight: bold;
21  font-size: large;
22  margin: 0.25em;
23}
24
25div {
26  font-family: Verdana, Arial, helvetica, sans-serif;
27}
28
29strong.variableClass {
30  font-size: small;
31}
32
33div.stackTrace {
34}
35
36div.frame {
37  padding: 0.25em;
38  background: white;
39  border-bottom: thin black dotted;
40}
41
42div.firstFrame {
43  padding: 0.25em;
44  background: white;
45  border-top: thin black dotted;
46  border-bottom: thin black dotted;
47}
48
49div.location {
50    font-size: small;
51}
52
53div.snippet {
54  background: #FFFFDD;
55  padding: 0.25em;
56}
57
58div.snippetHighlightLine {
59  color: red;
60}
61
62span.lineno {
63    font-size: small;
64}
65
66pre.code {
67  margin: 0px;
68  padding: 0px;
69  display: inline;
70  font-size: small;
71  font-family: "Courier New", courier, monotype;
72}
73
74span.function {
75  font-weight: bold;
76  font-family: "Courier New", courier, monotype;
77}
78
79table.variables {
80  border-collapse: collapse;
81  width: 100%;
82}
83
84td.varName {
85  width: 1in;
86  vertical-align: top;
87  font-style: italic;
88  font-size: small;
89  padding-right: 0.25em;
90}
91
92td.varValue {
93  padding-left: 0.25em;
94  padding-right: 0.25em;
95  font-size: small;
96}
97
98div.variables {
99  margin-top: 0.5em;
100}
101
102div.dict {
103  background: #cccc99;
104  padding: 2px;
105  float: left;
106}
107
108td.dictKey {
109  background: #ffff99;
110  font-weight: bold;
111}
112
113td.dictValue {
114  background: #ffff99;
115}
116
117div.list {
118  background: #7777cc;
119  padding: 2px;
120  float: left;
121}
122
123div.listItem {
124  background: #9999ff;
125}
126
127div.instance {
128  width: 100%;
129  background: #efefef;
130  padding: 2px;
131  float: left;
132}
133
134span.instanceName {
135  font-size: small;
136  display: block;
137}
138
139span.instanceRepr {
140  font-family: "Courier New", courier, monotype;
141}
142
143div.function {
144  background: orange;
145  font-weight: bold;
146  float: left;
147}
148</style><a href="#tracebackEnd"><p class="error">&lt;type 'exceptions.AttributeError'&gt;: 'NoneType' object has no attribute 'to_string'</p></a><div class="stackTrace"><div class="firstFrame"><div class="location">c:\python26\lib\site-packages\nevow-0.9.33_r17222-py2.6.egg\nevow\flat\twist.py, line 24 in <span class="function">_drive</span></div><div class="snippet"><div class="snippetLine"><span class="lineno">22</span><pre class="code">    """
149</pre></div><div class="snippetLine"><span class="lineno">23</span><pre class="code">    try:
150</pre></div><div class="snippetHighlightLine"><span class="lineno">24</span><pre class="code">        next = iterable.next()
151</pre></div><div class="snippetLine"><span class="lineno">25</span><pre class="code">    except StopIteration:
152</pre></div></div><div class="variables"><strong class="variableClass">Locals</strong></div><table class="variables"><tr class="varRow"><td class="varName">iterable</td><td class="varValue">&lt;generator object iterflatten at 0x03EC55D0&gt;</td></tr></table></div><div class="frame"><div class="location">c:\python26\lib\site-packages\nevow-0.9.33_r17222-py2.6.egg\nevow\flat\ten.py, line 83 in <span class="function">iterflatten</span></div><div class="snippet"><div class="snippetLine"><span class="lineno">81</span><pre class="code">    while rest:
153</pre></div><div class="snippetLine"><span class="lineno">82</span><pre class="code">        gen = rest.pop()
154</pre></div><div class="snippetHighlightLine"><span class="lineno">83</span><pre class="code">        for item in gen:
155</pre></div><div class="snippetLine"><span class="lineno">84</span><pre class="code">            if isinstance(item, str):
156</pre></div></div><div class="variables"><strong class="variableClass">Locals</strong></div><table class="variables"><tr class="varRow"><td class="varName">rest</td><td class="varValue">[&lt;listiterator object at 0x03CD02F0&gt;, &lt;generator object ListSerializer at 0x03B11DC8&gt;, &lt;generator object TagSerializer at 0x03EC5968&gt;, &lt;generator object TagSerializer at 0x03EC3788&gt;]</td></tr><tr class="varRow"><td class="varName">item</td><td class="varValue">&lt;generator object TagSerializer at 0x03C143F0&gt;</td></tr><tr class="varRow"><td class="varName">gen</td><td class="varValue">&lt;generator object TagSerializer at 0x03C143F0&gt;</td></tr></table></div><div class="frame"><div class="location">c:\python26\lib\site-packages\nevow-0.9.33_r17222-py2.6.egg\nevow\flat\flatstan.py, line 103 in <span class="function">TagSerializer</span></div><div class="snippet"><div class="snippetLine"><span class="lineno">101</span><pre class="code">        # the specials won't be on the context twice.
157</pre></div><div class="snippetLine"><span class="lineno">102</span><pre class="code">        original._clearSpecials()
158</pre></div><div class="snippetHighlightLine"><span class="lineno">103</span><pre class="code">        yield serialize(toBeRenderedBy, context)
159</pre></div><div class="snippetLine"><span class="lineno">104</span><pre class="code">        return
160</pre></div></div><div class="variables"><strong class="variableClass">Locals</strong></div><table class="variables"><tr class="varRow"><td class="varName">toBeRenderedBy</td><td class="varValue">directive('directory_verifycap')</td></tr><tr class="varRow"><td class="varName">original</td><td class="varValue">Tag(u'tt', attributes={u'class': u'data-chars'})</td></tr><tr class="varRow"><td class="varName">context</td><td class="varValue">WovenContext(tag=Tag(u'tt', attributes={u'class': u'data-chars'}))</td></tr></table><div class="variables"><strong class="variableClass">Globals</strong></div><table class="variables"><tr class="varRow"><td class="varName">serialize</td><td class="varValue">&lt;function serialize at 0x021E45F0&gt;</td></tr></table></div><div class="frame"><div class="location">c:\python26\lib\site-packages\nevow-0.9.33_r17222-py2.6.egg\nevow\flat\ten.py, line 70 in <span class="function">serialize</span></div><div class="snippet"><div class="snippetLine"><span class="lineno">68</span><pre class="code">def serialize(obj, context):
161</pre></div><div class="snippetLine"><span class="lineno">69</span><pre class="code">    #warnings.warn('serialize is deprecated; it has been renamed partialflatten.', stacklevel=2)
162</pre></div><div class="snippetHighlightLine"><span class="lineno">70</span><pre class="code">    return partialflatten(context, obj)
163</pre></div><div class="snippetLine"><span class="lineno">71</span><pre class="code">
164</pre></div></div><div class="variables"><strong class="variableClass">Locals</strong></div><table class="variables"><tr class="varRow"><td class="varName">obj</td><td class="varValue">directive('directory_verifycap')</td></tr><tr class="varRow"><td class="varName">context</td><td class="varValue">WovenContext(tag=Tag(u'tt', attributes={u'class': u'data-chars'}))</td></tr></table><div class="variables"><strong class="variableClass">Globals</strong></div><table class="variables"><tr class="varRow"><td class="varName">serialize</td><td class="varValue">&lt;function serialize at 0x021E45F0&gt;</td></tr><tr class="varRow"><td class="varName">partialflatten</td><td class="varValue">&lt;function partialflatten at 0x021E45B0&gt;</td></tr><tr class="varRow"><td class="varName">warnings</td><td class="varValue">&lt;module 'warnings' from 'c:\python26\lib\warnings.pyc'&gt;</td></tr></table></div><div class="frame"><div class="location">c:\python26\lib\site-packages\nevow-0.9.33_r17222-py2.6.egg\nevow\flat\ten.py, line 61 in <span class="function">partialflatten</span></div><div class="snippet"><div class="snippetLine"><span class="lineno">59</span><pre class="code">    flattener = getFlattener(obj)
165</pre></div><div class="snippetLine"><span class="lineno">60</span><pre class="code">    if flattener is not None:
166</pre></div><div class="snippetHighlightLine"><span class="lineno">61</span><pre class="code">        return flattener(obj, context)
167</pre></div><div class="snippetLine"><span class="lineno">62</span><pre class="code">
168</pre></div></div><div class="variables"><strong class="variableClass">Locals</strong></div><table class="variables"><tr class="varRow"><td class="varName">flattener</td><td class="varValue">&lt;function DirectiveSerializer at 0x029A60B0&gt;</td></tr><tr class="varRow"><td class="varName">obj</td><td class="varValue">directive('directory_verifycap')</td></tr><tr class="varRow"><td class="varName">context</td><td class="varValue">WovenContext(tag=Tag(u'tt', attributes={u'class': u'data-chars'}))</td></tr></table><div class="variables"><strong class="variableClass">Globals</strong></div><table class="variables"><tr class="varRow"><td class="varName">getFlattener</td><td class="varValue">&lt;function getFlattener at 0x021E4130&gt;</td></tr></table></div><div class="frame"><div class="location">c:\python26\lib\site-packages\nevow-0.9.33_r17222-py2.6.egg\nevow\flat\flatstan.py, line 264 in <span class="function">DirectiveSerializer</span></div><div class="snippet"><div class="snippetLine"><span class="lineno">262</span><pre class="code">    rendererFactory = context.locate(IRendererFactory)
169</pre></div><div class="snippetLine"><span class="lineno">263</span><pre class="code">    renderer = rendererFactory.renderer(context, original.name)
170</pre></div><div class="snippetHighlightLine"><span class="lineno">264</span><pre class="code">    return serialize(renderer, context)
171</pre></div><div class="snippetLine"><span class="lineno">265</span><pre class="code">
172</pre></div></div><div class="variables"><strong class="variableClass">Locals</strong></div><table class="variables"><tr class="varRow"><td class="varName">rendererFactory</td><td class="varValue">&lt;allmydata.web.info.MoreInfo object at 0x03EE0DD0&gt;</td></tr><tr class="varRow"><td class="varName">renderer</td><td class="varValue">&lt;bound method MoreInfo.render_directory_verifycap of &lt;allmydata.web.info.MoreInfo object at 0x03EE0DD0&gt;&gt;</td></tr><tr class="varRow"><td class="varName">context</td><td class="varValue">WovenContext(tag=Tag(u'tt', attributes={u'class': u'data-chars'}))</td></tr><tr class="varRow"><td class="varName">original</td><td class="varValue">directive('directory_verifycap')</td></tr></table><div class="variables"><strong class="variableClass">Globals</strong></div><table class="variables"><tr class="varRow"><td class="varName">serialize</td><td class="varValue">&lt;function serialize at 0x021E45F0&gt;</td></tr><tr class="varRow"><td class="varName">IRendererFactory</td><td class="varValue">&lt;InterfaceClass nevow.inevow.IRendererFactory&gt;</td></tr></table></div><div class="frame"><div class="location">c:\python26\lib\site-packages\nevow-0.9.33_r17222-py2.6.egg\nevow\flat\ten.py, line 70 in <span class="function">serialize</span></div><div class="snippet"><div class="snippetLine"><span class="lineno">68</span><pre class="code">def serialize(obj, context):
173</pre></div><div class="snippetLine"><span class="lineno">69</span><pre class="code">    #warnings.warn('serialize is deprecated; it has been renamed partialflatten.', stacklevel=2)
174</pre></div><div class="snippetHighlightLine"><span class="lineno">70</span><pre class="code">    return partialflatten(context, obj)
175</pre></div><div class="snippetLine"><span class="lineno">71</span><pre class="code">
176</pre></div></div><div class="variables"><strong class="variableClass">Locals</strong></div><table class="variables"><tr class="varRow"><td class="varName">obj</td><td class="varValue">&lt;bound method MoreInfo.render_directory_verifycap of &lt;allmydata.web.info.MoreInfo object at 0x03EE0DD0&gt;&gt;</td></tr><tr class="varRow"><td class="varName">context</td><td class="varValue">WovenContext(tag=Tag(u'tt', attributes={u'class': u'data-chars'}))</td></tr></table><div class="variables"><strong class="variableClass">Globals</strong></div><table class="variables"><tr class="varRow"><td class="varName">serialize</td><td class="varValue">&lt;function serialize at 0x021E45F0&gt;</td></tr><tr class="varRow"><td class="varName">partialflatten</td><td class="varValue">&lt;function partialflatten at 0x021E45B0&gt;</td></tr><tr class="varRow"><td class="varName">warnings</td><td class="varValue">&lt;module 'warnings' from 'c:\python26\lib\warnings.pyc'&gt;</td></tr></table></div><div class="frame"><div class="location">c:\python26\lib\site-packages\nevow-0.9.33_r17222-py2.6.egg\nevow\flat\ten.py, line 61 in <span class="function">partialflatten</span></div><div class="snippet"><div class="snippetLine"><span class="lineno">59</span><pre class="code">    flattener = getFlattener(obj)
177</pre></div><div class="snippetLine"><span class="lineno">60</span><pre class="code">    if flattener is not None:
178</pre></div><div class="snippetHighlightLine"><span class="lineno">61</span><pre class="code">        return flattener(obj, context)
179</pre></div><div class="snippetLine"><span class="lineno">62</span><pre class="code">
180</pre></div></div><div class="variables"><strong class="variableClass">Locals</strong></div><table class="variables"><tr class="varRow"><td class="varName">flattener</td><td class="varValue">&lt;function MethodSerializer at 0x029A6030&gt;</td></tr><tr class="varRow"><td class="varName">obj</td><td class="varValue">&lt;bound method MoreInfo.render_directory_verifycap of &lt;allmydata.web.info.MoreInfo object at 0x03EE0DD0&gt;&gt;</td></tr><tr class="varRow"><td class="varName">context</td><td class="varValue">WovenContext(tag=Tag(u'tt', attributes={u'class': u'data-chars'}))</td></tr></table><div class="variables"><strong class="variableClass">Globals</strong></div><table class="variables"><tr class="varRow"><td class="varName">getFlattener</td><td class="varValue">&lt;function getFlattener at 0x021E4130&gt;</td></tr></table></div><div class="frame"><div class="location">c:\python26\lib\site-packages\nevow-0.9.33_r17222-py2.6.egg\nevow\flat\flatstan.py, line 247 in <span class="function">MethodSerializer</span></div><div class="snippet"><div class="snippetLine"><span class="lineno">245</span><pre class="code">        code = getattr(func, 'func_code', None)
181</pre></div><div class="snippetLine"><span class="lineno">246</span><pre class="code">        return code is None or code.co_argcount == 2
182</pre></div><div class="snippetHighlightLine"><span class="lineno">247</span><pre class="code">    return FunctionSerializer(original, context, nocontext)
183</pre></div><div class="snippetLine"><span class="lineno">248</span><pre class="code">
184</pre></div></div><div class="variables"><strong class="variableClass">Locals</strong></div><table class="variables"><tr class="varRow"><td class="varName">nocontext</td><td class="varValue">&lt;function nocontext at 0x03F5DD70&gt;</td></tr><tr class="varRow"><td class="varName">original</td><td class="varValue">&lt;bound method MoreInfo.render_directory_verifycap of &lt;allmydata.web.info.MoreInfo object at 0x03EE0DD0&gt;&gt;</td></tr><tr class="varRow"><td class="varName">context</td><td class="varValue">WovenContext(tag=Tag(u'tt', attributes={u'class': u'data-chars'}))</td></tr></table><div class="variables"><strong class="variableClass">Globals</strong></div><table class="variables"><tr class="varRow"><td class="varName">FunctionSerializer</td><td class="varValue">&lt;function FunctionSerializer at 0x0299CFB0&gt;</td></tr></table></div><div class="frame"><div class="location">c:\python26\lib\site-packages\nevow-0.9.33_r17222-py2.6.egg\nevow\flat\flatstan.py, line 236 in <span class="function">FunctionSerializer</span></div><div class="snippet"><div class="snippetLine"><span class="lineno">234</span><pre class="code">                    result = original(renderer, context, data)
185</pre></div><div class="snippetLine"><span class="lineno">235</span><pre class="code">                else:
186</pre></div><div class="snippetHighlightLine"><span class="lineno">236</span><pre class="code">                    result = original(context, data)
187</pre></div><div class="snippetLine"><span class="lineno">237</span><pre class="code">        except StopIteration:
188</pre></div></div><div class="variables"><strong class="variableClass">Locals</strong></div><table class="variables"><tr class="varRow"><td class="varName">data</td><td class="varValue">&lt;DirectoryNode RO-IMM gqytu&gt;</td></tr><tr class="varRow"><td class="varName">context</td><td class="varValue">WovenContext(tag=Tag(u'tt', attributes={u'class': u'data-chars'}))</td></tr><tr class="varRow"><td class="varName">original</td><td class="varValue">&lt;bound method MoreInfo.render_directory_verifycap of &lt;allmydata.web.info.MoreInfo object at 0x03EE0DD0&gt;&gt;</td></tr></table></div><div class="frame"><div class="location">d:\tahoe\new4\tahoe\src\allmydata\web\info.py, line 89 in <span class="function">render_directory_verifycap</span></div><div class="snippet"><div class="snippetLine"><span class="lineno">87</span><pre class="code">        if not IDirectoryNode.providedBy(node):
189</pre></div><div class="snippetLine"><span class="lineno">88</span><pre class="code">            return ""
190</pre></div><div class="snippetHighlightLine"><span class="lineno">89</span><pre class="code">        return ctx.tag[node.get_verify_cap().to_string()]
191</pre></div><div class="snippetLine"><span class="lineno">90</span><pre class="code">
192</pre></div></div><div class="variables"><strong class="variableClass">Locals</strong></div><table class="variables"><tr class="varRow"><td class="varName">node</td><td class="varValue">&lt;DirectoryNode RO-IMM gqytu&gt;</td></tr><tr class="varRow"><td class="varName">ctx</td><td class="varValue">WovenContext(tag=Tag(u'tt', attributes={u'class': u'data-chars'}))</td></tr></table><div class="variables"><strong class="variableClass">Globals</strong></div><table class="variables"><tr class="varRow"><td class="varName">IDirectoryNode</td><td class="varValue">&lt;InterfaceClass allmydata.interfaces.IDirectoryNode&gt;</td></tr></table></div></div><a name="tracebackEnd"><p class="error">&lt;type 'exceptions.AttributeError'&gt;: 'NoneType' object has no attribute 'to_string'</p></a></body></html>