<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40"><head><meta http-equiv=Content-Type content="text/html; charset=us-ascii"><meta name=Generator content="Microsoft Word 12 (filtered medium)"><base href="x-msg://253/"><style><!--
/* Font Definitions */
@font-face
        {font-family:Helvetica;
        panose-1:2 11 6 4 2 2 2 2 2 4;}
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Tahoma;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman","serif";}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
span.apple-style-span
        {mso-style-name:apple-style-span;}
span.EmailStyle18
        {mso-style-type:personal-reply;
        font-family:"Tahoma","sans-serif";
        color:#1F497D;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]--></head><body lang=EN-US link=blue vlink=purple style='word-wrap: break-word;-webkit-nbsp-mode: space;-webkit-line-break: after-white-space'><div class=WordSection1><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif";color:#1F497D'>Thanks Steve, problem solved now.<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif";color:#1F497D'><o:p>&nbsp;</o:p></span></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif";color:#1F497D'>--<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif";color:#1F497D'>Chakkit<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif";color:#1F497D'><o:p>&nbsp;</o:p></span></p><div><div style='border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in 0in 0in'><p class=MsoNormal><b><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'>From:</span></b><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'> Steve Kleiman [mailto:steve@prodhub.com] <br><b>Sent:</b> Thursday, March 03, 2011 04:34 AM<br><b>To:</b> The elegant MVC web framework<br><b>Subject:</b> Re: [Catalyst] Catalyst::Plugin::RunAfterRequest and Catalyst::View::Email?<o:p></o:p></span></p></div></div><p class=MsoNormal><o:p>&nbsp;</o:p></p><p class=MsoNormal>See mst note below. Worked for me.<o:p></o:p></p><div><p class=MsoNormal><o:p>&nbsp;</o:p></p></div><div><p class=MsoNormal><o:p>&nbsp;</o:p></p><div><div><p class=MsoNormal>On Mar 2, 2011, at 12:12 PM, Chakkit Ngamsom wrote:<o:p></o:p></p></div><p class=MsoNormal><br><br><o:p></o:p></p><div><div><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'>Hi All,</span><span style='font-size:11.0pt;font-family:"Calibri","sans-serif"'><o:p></o:p></span></p></div><div><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'>&nbsp;</span><span style='font-size:11.0pt;font-family:"Calibri","sans-serif"'><o:p></o:p></span></p></div><div><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'>My plan is to use Catalyst::Plugin::RunAfterRequest for sending email via Catalyst::View::Email as the background.</span><span style='font-size:11.0pt;font-family:"Calibri","sans-serif"'><o:p></o:p></span></p></div><div><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'>Due to sometimes mail server got lag and the page waiting for it or sending a notification after slow processes have been completed e.g. import/export.</span><span style='font-size:11.0pt;font-family:"Calibri","sans-serif"'><o:p></o:p></span></p></div><div><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'>&nbsp;</span><span style='font-size:11.0pt;font-family:"Calibri","sans-serif"'><o:p></o:p></span></p></div><div><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'>I&#8217;m not sure it&#8217;s a bug or the limitation of the plugin.</span><span style='font-size:11.0pt;font-family:"Calibri","sans-serif"'><o:p></o:p></span></p></div><div><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'>I setup the code something like this:</span><span style='font-size:11.0pt;font-family:"Calibri","sans-serif"'><o:p></o:p></span></p></div><div><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'>&nbsp;</span><span style='font-size:11.0pt;font-family:"Calibri","sans-serif"'><o:p></o:p></span></p></div><div><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'>$c-&gt;run_after_request(</span><span style='font-size:11.0pt;font-family:"Calibri","sans-serif"'><o:p></o:p></span></p></div><div><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'>&nbsp;&nbsp;sub {</span><span style='font-size:11.0pt;font-family:"Calibri","sans-serif"'><o:p></o:p></span></p></div><div><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'>&nbsp;&nbsp;&nbsp; $c-&gt;stash-&gt;{email} = {</span><span style='font-size:11.0pt;font-family:"Calibri","sans-serif"'><o:p></o:p></span></p></div><div><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; from =&gt; $from,</span><span style='font-size:11.0pt;font-family:"Calibri","sans-serif"'><o:p></o:p></span></p></div><div><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; to =&gt; $to,</span><span style='font-size:11.0pt;font-family:"Calibri","sans-serif"'><o:p></o:p></span></p></div><div><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; body =&gt; $body,</span><span style='font-size:11.0pt;font-family:"Calibri","sans-serif"'><o:p></o:p></span></p></div><div><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; header =&gt; [</span><span style='font-size:11.0pt;font-family:"Calibri","sans-serif"'><o:p></o:p></span></p></div><div><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Subject =&gt; 'some localized subject',</span><span style='font-size:11.0pt;font-family:"Calibri","sans-serif"'><o:p></o:p></span></p></div><div><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ],</span><span style='font-size:11.0pt;font-family:"Calibri","sans-serif"'><o:p></o:p></span></p></div><div><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'>&nbsp;&nbsp;&nbsp; };</span><span style='font-size:11.0pt;font-family:"Calibri","sans-serif"'><o:p></o:p></span></p></div><div><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'>&nbsp;&nbsp;&nbsp; $c-&gt;forward( $c-&gt;view('Email') );</span><span style='font-size:11.0pt;font-family:"Calibri","sans-serif"'><o:p></o:p></span></p></div><div><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'>&nbsp; }</span><span style='font-size:11.0pt;font-family:"Calibri","sans-serif"'><o:p></o:p></span></p></div><div><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'>);</span><span style='font-size:11.0pt;font-family:"Calibri","sans-serif"'><o:p></o:p></span></p></div><div><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'>&nbsp;</span><span style='font-size:11.0pt;font-family:"Calibri","sans-serif"'><o:p></o:p></span></p></div><div><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'>After running it, it showed an error like this:<br>[error] Caught exception in engine &quot;Modification of non-creatable array value attempted, subscript -1 at C:/strawberry/perl/site/lib/Catalyst/Dispatcher.pm line 278.&quot;</span><span style='font-size:11.0pt;font-family:"Calibri","sans-serif"'><o:p></o:p></span></p></div><div><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'>&nbsp;</span><span style='font-size:11.0pt;font-family:"Calibri","sans-serif"'><o:p></o:p></span></p></div><div><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'>As a trial, the error caused from this line: $c-&gt;forward( $c-&gt;view('Email') );.</span><span style='font-size:11.0pt;font-family:"Calibri","sans-serif"'><o:p></o:p></span></p></div><div><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'>Finally, I noticed it worked well with other forwarding except view.</span><span style='font-size:11.0pt;font-family:"Calibri","sans-serif"'><o:p></o:p></span></p></div><div><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'>&nbsp;</span><span style='font-size:11.0pt;font-family:"Calibri","sans-serif"'><o:p></o:p></span></p></div><div><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'>Please kindly let me know how to fix this issue or another solution that matches to the requirements.</span><span style='font-size:11.0pt;font-family:"Calibri","sans-serif"'><o:p></o:p></span></p></div><div><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'>&nbsp;</span><span style='font-size:11.0pt;font-family:"Calibri","sans-serif"'><o:p></o:p></span></p></div><div><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'>Thanks in advance,</span><span style='font-size:11.0pt;font-family:"Calibri","sans-serif"'><o:p></o:p></span></p></div><div><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'>Chakkit</span><span style='font-size:11.0pt;font-family:"Calibri","sans-serif"'><o:p></o:p></span></p></div><div><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif"'><o:p>&nbsp;</o:p></span></p></div></div><p class=MsoNormal><o:p>&nbsp;</o:p></p></div><div><p class=MsoNormal><o:p>&nbsp;</o:p></p></div><div><p class=MsoNormal><o:p>&nbsp;</o:p></p></div><div><p class=MsoNormal><o:p>&nbsp;</o:p></p></div><div><p class=MsoNormal><o:p>&nbsp;</o:p></p></div><div><p class=MsoNormal><o:p>&nbsp;</o:p></p><div><p class=MsoNormal>Begin forwarded message:<o:p></o:p></p></div><p class=MsoNormal><br><br><o:p></o:p></p><div><p class=MsoNormal><b><span style='font-size:13.5pt;font-family:"Helvetica","sans-serif";color:black'>From:&nbsp;</span></b><span style='font-size:13.5pt;font-family:"Helvetica","sans-serif"'>Matt S Trout &lt;<a href="mailto:mst@shadowcat.co.uk">mst@shadowcat.co.uk</a>&gt;</span><o:p></o:p></p></div><div><p class=MsoNormal><b><span style='font-size:13.5pt;font-family:"Helvetica","sans-serif";color:black'>Date:&nbsp;</span></b><span style='font-size:13.5pt;font-family:"Helvetica","sans-serif"'>May 2, 2010 12:49:32 PM PDT</span><o:p></o:p></p></div><div><p class=MsoNormal><b><span style='font-size:13.5pt;font-family:"Helvetica","sans-serif";color:black'>To:&nbsp;</span></b><span style='font-size:13.5pt;font-family:"Helvetica","sans-serif"'>The elegant MVC web framework &lt;<a href="mailto:catalyst@lists.scsys.co.uk">catalyst@lists.scsys.co.uk</a>&gt;</span><o:p></o:p></p></div><div><p class=MsoNormal><b><span style='font-size:13.5pt;font-family:"Helvetica","sans-serif";color:black'>Subject:&nbsp;</span></b><b><span style='font-size:13.5pt;font-family:"Helvetica","sans-serif"'>Re: [Catalyst] RunAfterRequest/delayed Catalyst view</span></b><o:p></o:p></p></div><div><p class=MsoNormal><b><span style='font-size:13.5pt;font-family:"Helvetica","sans-serif";color:black'>Reply-To:&nbsp;</span></b><span style='font-size:13.5pt;font-family:"Helvetica","sans-serif"'>The elegant MVC web framework &lt;<a href="mailto:catalyst@lists.scsys.co.uk">catalyst@lists.scsys.co.uk</a>&gt;</span><o:p></o:p></p></div><p class=MsoNormal><o:p>&nbsp;</o:p></p><div><p class=MsoNormal>On Fri, Apr 30, 2010 at 02:38:50PM -0700, Steve Kleiman wrote:<br><br><o:p></o:p></p><p class=MsoNormal>Here goes...hopefully a simple test case for the RunAfterRequest oddness.<o:p></o:p></p><p class=MsoNormal><br><br><o:p></o:p></p><p class=MsoNormal>The code below with the forward INSIDE 'run_after_request' subroutine throws the error:<o:p></o:p></p><blockquote style='margin-top:5.0pt;margin-bottom:5.0pt'><blockquote style='margin-top:5.0pt;margin-bottom:5.0pt'><p class=MsoNormal>[error] Caught exception in engine &quot;Modification of non-creatable array value attempted, subscript -1 at /usr/local/lib/perl5/site_perl/5.10.1/Catalyst/Dispatcher.pm line 278.&quot;<o:p></o:p></p></blockquote></blockquote><p class=MsoNormal><br>I think that's probably $c-&gt;stack being empty because there's no request<br>anymore.<br><br>I *think* that<br><br>$c-&gt;view('Email')-&gt;process($c);<br><br>would work, since that doesn't rely on the action call stack.<br><br>That error message is fucking awful though, and almost certainly my fault.<br><br>Proposal: first you try the -&gt;process-by-hand approach to confirm that I'm<br>an idiot the way I think I am. Second we discuss how to either (a) fix this<br>or (b) make sure it produces a non-awful error.<br><br>(even if you've already rewritten the code it'd be much appreciated if you<br>could try this out and see if it does the right thing - also, you then get to<br>point and laugh at me with a bit of luck, which may or may not be an added<br>incentive ;)<br><br>--&nbsp;<br>Matt S Trout - Shadowcat Systems - Perl consulting with a commit bit and a clue<br><br><a href="http://shadowcat.co.uk/blog/matt-s-trout/">http://shadowcat.co.uk/blog/matt-s-trout/</a> &nbsp;&nbsp;<a href="http://twitter.com/shadowcat_mst/">http://twitter.com/shadowcat_mst/</a><br><br>Email me now on mst (at) <a href="http://shadowcat.co.uk">shadowcat.co.uk</a> and let's chat about how our Catalyst<br>commercial support, training and consultancy packages could help your team.<br><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><o:p></o:p></p></div><div><div><p class=MsoNormal><o:p>&nbsp;</o:p></p></div></div></div><div><p class=MsoNormal><o:p>&nbsp;</o:p></p></div><p class=MsoNormal><o:p>&nbsp;</o:p></p></div></div></body></html>