<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div><span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Helvetica; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; "><div>Here goes...hopefully a simple test case for the&nbsp;RunAfterRequest oddness.</div></span></div><div><br class="webkit-block-placeholder"></div><div><br></div><div>The code below works as expected...an email is dispatched.</div><div>==============</div><div><div>sub tester :Local {</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>my ( $self, $c ) = @_;</div><div><br></div><div><span class="Apple-tab-span" style="white-space:pre">        </span>$c-&gt;stash(</div><div><span class="Apple-tab-span" style="white-space:pre">                        </span>email<span class="Apple-tab-span" style="white-space:pre">        </span> &nbsp;=&gt;<span class="Apple-tab-span" style="white-space:pre">        </span>{</div><div><span class="Apple-tab-span" style="white-space:pre">                                                                </span>to &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;=&gt; <a href="mailto:'steve@prodhub.com">'steve@prodhub.com</a>', &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;</div><div><span class="Apple-tab-span" style="white-space:pre">                                                                </span>from &nbsp; &nbsp; &nbsp; &nbsp;=&gt; <a href="mailto:'bockscar@mac.com">'bockscar@mac.com</a>', &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;</div><div><span class="Apple-tab-span" style="white-space:pre">                                                                </span>subject &nbsp; &nbsp; =&gt; 'RunAfterRequest Test', &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;</div><div><span class="Apple-tab-span" style="white-space:pre">                                                                </span>templates<span class="Apple-tab-span" style="white-space:pre">        </span>=&gt;<span class="Apple-tab-span" style="white-space:pre">        </span>[ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;</div><div><span class="Apple-tab-span" style="white-space:pre">                                </span> &nbsp; <span class="Apple-tab-span" style="white-space:pre">                </span> &nbsp; <span class="Apple-tab-span" style="white-space:pre">                        </span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="Apple-tab-span" style="white-space:pre">        </span>{ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;</div><div><span class="Apple-tab-span" style="white-space:pre">                                </span> &nbsp; <span class="Apple-tab-span" style="white-space:pre">                </span> &nbsp; <span class="Apple-tab-span" style="white-space:pre">                        </span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="Apple-tab-span" style="white-space:pre">                </span>template &nbsp; &nbsp; &nbsp; &nbsp;=&gt; 'test.tt2', &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;</div><div><span class="Apple-tab-span" style="white-space:pre">                                </span> &nbsp; <span class="Apple-tab-span" style="white-space:pre">                </span> &nbsp; <span class="Apple-tab-span" style="white-space:pre">                        </span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="Apple-tab-span" style="white-space:pre">                </span>content_type &nbsp; &nbsp;=&gt; 'text/plain', &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</div><div><span class="Apple-tab-span" style="white-space:pre">                                </span> &nbsp; <span class="Apple-tab-span" style="white-space:pre">                </span> &nbsp; <span class="Apple-tab-span" style="white-space:pre">                        </span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="Apple-tab-span" style="white-space:pre">                </span>view &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;=&gt; 'TT', &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</div><div><span class="Apple-tab-span" style="white-space:pre">                                </span> &nbsp; <span class="Apple-tab-span" style="white-space:pre">                </span> &nbsp; <span class="Apple-tab-span" style="white-space:pre">                        </span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="Apple-tab-span" style="white-space:pre">        </span>}, &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</div><div><span class="Apple-tab-span" style="white-space:pre">                                </span> &nbsp; <span class="Apple-tab-span" style="white-space:pre">                </span> &nbsp; <span class="Apple-tab-span" style="white-space:pre">                        </span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;], &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</div><div><span class="Apple-tab-span" style="white-space:pre">                                                        </span>}, &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;</div><div><span class="Apple-tab-span" style="white-space:pre">                </span>);</div><div><br></div><div><span class="Apple-tab-span" style="white-space:pre">        </span>$c-&gt;forward( $c-&gt;view('Email::Template') );</div><div><br></div><div><span class="Apple-tab-span" style="white-space:pre">        </span>$c-&gt;response-&gt;body('foo bar');</div><div>}</div><div>==============</div><div><br></div><div><br></div><div><br></div><div>The code below with the forward INSIDE&nbsp;'run_after_request' subroutine&nbsp;throws the error:</div><div><blockquote type="cite">[error] Caught exception in engine "Modification of non-creatable array value attempted, subscript -1 at /usr/local/lib/perl5/site_perl/5.10.1/Catalyst/Dispatcher.pm line 278."</blockquote></div><div><br></div><div>Doesn't matter whether the stash call is inside or outside the&nbsp;subroutine.</div><div>==============</div><div><div>sub tester :Local {</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>my ( $self, $c ) = @_;</div><div><br></div><div><span class="Apple-tab-span" style="white-space:pre">        </span>$c-&gt;stash(</div><div><span class="Apple-tab-span" style="white-space:pre">                        </span>email<span class="Apple-tab-span" style="white-space:pre">        </span> &nbsp;=&gt;<span class="Apple-tab-span" style="white-space:pre">        </span>{</div><div><span class="Apple-tab-span" style="white-space:pre">                                                                </span>to &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;=&gt; <a href="mailto:'steve@prodhub.com">'steve@prodhub.com</a>', &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;</div><div><span class="Apple-tab-span" style="white-space:pre">                                                                </span>from &nbsp; &nbsp; &nbsp; &nbsp;=&gt; <a href="mailto:'bockscar@mac.com">'bockscar@mac.com</a>', &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;</div><div><span class="Apple-tab-span" style="white-space:pre">                                                                </span>subject &nbsp; &nbsp; =&gt; 'RunAfterRequest Test', &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;</div><div><span class="Apple-tab-span" style="white-space:pre">                                                                </span>templates<span class="Apple-tab-span" style="white-space:pre">        </span>=&gt;<span class="Apple-tab-span" style="white-space:pre">        </span>[ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;</div><div><span class="Apple-tab-span" style="white-space:pre">                                </span> &nbsp; <span class="Apple-tab-span" style="white-space:pre">                </span> &nbsp; <span class="Apple-tab-span" style="white-space:pre">                        </span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="Apple-tab-span" style="white-space:pre">        </span>{ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;</div><div><span class="Apple-tab-span" style="white-space:pre">                                </span> &nbsp; <span class="Apple-tab-span" style="white-space:pre">                </span> &nbsp; <span class="Apple-tab-span" style="white-space:pre">                        </span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="Apple-tab-span" style="white-space:pre">                </span>template &nbsp; &nbsp; &nbsp; &nbsp;=&gt; 'test.tt2', &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;</div><div><span class="Apple-tab-span" style="white-space:pre">                                </span> &nbsp; <span class="Apple-tab-span" style="white-space:pre">                </span> &nbsp; <span class="Apple-tab-span" style="white-space:pre">                        </span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="Apple-tab-span" style="white-space:pre">                </span>content_type &nbsp; &nbsp;=&gt; 'text/plain', &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</div><div><span class="Apple-tab-span" style="white-space:pre">                                </span> &nbsp; <span class="Apple-tab-span" style="white-space:pre">                </span> &nbsp; <span class="Apple-tab-span" style="white-space:pre">                        </span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="Apple-tab-span" style="white-space:pre">                </span>view &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;=&gt; 'TT', &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</div><div><span class="Apple-tab-span" style="white-space:pre">                                </span> &nbsp; <span class="Apple-tab-span" style="white-space:pre">                </span> &nbsp; <span class="Apple-tab-span" style="white-space:pre">                        </span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="Apple-tab-span" style="white-space:pre">        </span>}, &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</div><div><span class="Apple-tab-span" style="white-space:pre">                                </span> &nbsp; <span class="Apple-tab-span" style="white-space:pre">                </span> &nbsp; <span class="Apple-tab-span" style="white-space:pre">                        </span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;], &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</div><div><span class="Apple-tab-span" style="white-space:pre">                                                        </span>}, &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;</div><div><span class="Apple-tab-span" style="white-space:pre">                </span>);</div><div><br></div><div><span class="Apple-tab-span" style="white-space:pre">        </span>$c-&gt;run_after_request( sub {</div><div><span class="Apple-tab-span" style="white-space:pre">                        </span>$c-&gt;forward( $c-&gt;view('Email::Template') );</div><div><span class="Apple-tab-span" style="white-space:pre">                </span>});</div><div><br></div><div><span class="Apple-tab-span" style="white-space:pre">        </span>$c-&gt;response-&gt;body('foo bar');</div><div>}</div><div>==============</div><div><br></div><div><br></div><div><br></div><div>The Catalyst::Dispatcher code where the error occurs is the $c-&gt;stack line below:</div><div><div>==============</div><div>sub _action_rel2abs {</div><div>&nbsp;&nbsp; &nbsp;my ( $self, $c, $path ) = @_;</div><div><br></div><div>&nbsp;&nbsp; &nbsp;unless ( $path =~ m#^/# ) {</div><div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;my $namespace = $c-&gt;stack-&gt;[-1]-&gt;namespace;</div><div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;$path = "$namespace/$path";</div><div>&nbsp;&nbsp; &nbsp;}</div><div><br></div><div>&nbsp;&nbsp; &nbsp;$path =~ s#^/##;</div><div>&nbsp;&nbsp; &nbsp;return $path;</div><div>}</div><div><div>==============</div><div><br></div></div></div><div><br></div><div>[END]</div></div></div>
<br><div><div>On Apr 29, 2010, at 11:18 PM, Devin Austin wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><br><br><div class="gmail_quote">On Fri, Apr 30, 2010 at 12:09 AM, Tomas Doran <span dir="ltr">&lt;<a href="mailto:bobtfish@bobtfish.net">bobtfish@bobtfish.net</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">

<div class="im"><br>
On 30 Apr 2010, at 07:00, Steve Kleiman wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Thanks in advance for any insights.<br>
</blockquote>
<br></div>
No ideas I'm afraid.<br>
<br>
However I don't see any reason why this couldn't / shouldn't work..<br>
<br>
Could you work up some test cases (or a very small test app) for either View::Email or ::RunAfterRequest which demonstrates the issue?<br>
<br>
Cheers<br>
t0m<br>
<br>
<br>
_______________________________________________<br>
List: <a href="mailto:Catalyst@lists.scsys.co.uk" target="_blank">Catalyst@lists.scsys.co.uk</a><br>
Listinfo: <a href="http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst" target="_blank">http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst</a><br>
Searchable archive: <a href="http://www.mail-archive.com/catalyst@lists.scsys.co.uk/" target="_blank">http://www.mail-archive.com/catalyst@lists.scsys.co.uk/</a><br>
Dev site: <a href="http://dev.catalyst.perl.org/" target="_blank">http://dev.catalyst.perl.org/</a><br>
</blockquote></div><br>Yes, patches welcome, I'd like to see how this would work.<br clear="all"><br>-- <br>Devin Austin<br><a href="http://www.codedright.net/">http://www.codedright.net</a><br>9702906669 - Cell<br>
_______________________________________________<br>List: <a href="mailto:Catalyst@lists.scsys.co.uk">Catalyst@lists.scsys.co.uk</a><br>Listinfo: <a href="http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst">http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst</a><br>Searchable archive: <a href="http://www.mail-archive.com/catalyst@lists.scsys.co.uk/">http://www.mail-archive.com/catalyst@lists.scsys.co.uk/</a><br>Dev site: <a href="http://dev.catalyst.perl.org/">http://dev.catalyst.perl.org/</a><br></blockquote></div><br></body></html>