<!-- 
RSS generated by JIRA (4.4#649-r158309) at Sat May 18 18:32:44 CDT 2013

It is possible to restrict the fields that are returned in this document by specifying the 'field' parameter in your request.
For example, to request only the issue key and summary add field=key&field=summary to the URL of your request.
For example:
http://dev.clojure.org/jira/si/jira.issueviews:issue-xml/CLJ-292/CLJ-292.xml?field=key&field=summary
-->
<rss version="0.92" >
<channel>
    <title>Clojure JIRA</title>
    <link>http://dev.clojure.org/jira</link>
    <description>This file is an XML representation of an issue</description>
    <language>en-us</language>    <build-info>
        <version>4.4</version>
        <build-number>649</build-number>
        <build-date>25-07-2011</build-date>
    </build-info>

<item>
            <title>[CLJ-292] LazySeq.sval() nests RuntimeExceptions</title>
                <link>http://dev.clojure.org/jira/browse/CLJ-292</link>
                <project id="10010" key="CLJ">Clojure</project>
                        <description>&lt;p&gt;When evaluating a LazySeq, if an exception occurs it gets wrapped in a RuntimeException and is thrown.  Unfortunately, the logic does not differentiate between a RuntimeException and a checked exception.  This has what I believe are two unintended side effects.&lt;/p&gt;

&lt;ol&gt;
	&lt;li&gt;If a function throws a RuntimeException, such as an IllegalArgumentException, it gets wrapped in a RuntimeException unnecessarily.  So, if I am expecting an IllegalArgumentException (as in a test), I will unexpectedly get a RuntimeException instead.&lt;/li&gt;
	&lt;li&gt;When evaluating nested lazy sequences, if an error occurs, the root exception is wrapped over and over again as the exception winds its way up the stack.   In a recent project, this meant having extremely long stack traces that include a half dozen nested RuntimeExceptions.  These just get in the way of getting to the root cause.&lt;/li&gt;
&lt;/ol&gt;


&lt;p&gt;Both of these scenarios are illustrated in the attached file.&lt;/p&gt;

&lt;p&gt;My proposed solution is fairly simple:  Instead of indiscriminately wrapping every exceptions a RuntimeException, simply rethrow any RuntimeException.  As a result, any RuntimeException will simply wind its way back up the stack with no wrapping, and checked exceptions will only be wrapped once.  This should make debugging Clojure programs slightly easier as the resulting stack trace will not include as much irrelevant information.&lt;/p&gt;</description>
                <environment></environment>
            <key id="13689">CLJ-292</key>
            <summary>LazySeq.sval() nests RuntimeExceptions</summary>
                <type id="4" iconUrl="http://dev.clojure.org/jira/images/icons/improvement.gif">Enhancement</type>
                                <priority id="4" iconUrl="http://dev.clojure.org/jira/images/icons/priority_minor.gif">Minor</priority>
                    <status id="6" iconUrl="http://dev.clojure.org/jira/images/icons/status_closed.gif">Closed</status>
                    <resolution id="1">Completed</resolution>
                                <assignee username="-1">Unassigned</assignee>
                                <reporter username="dsg">Daniel Solano G&#243;mez</reporter>
                        <labels>
                    </labels>
                <created>Thu, 8 Apr 2010 17:25:00 -0500</created>
                <updated>Wed, 8 Dec 2010 15:50:13 -0600</updated>
                    <resolved>Wed, 8 Dec 2010 15:50:13 -0600</resolved>
                                            <fixVersion>Release 1.3</fixVersion>
                                        <due></due>
                    <votes>0</votes>
                        <watches>0</watches>
                        <comments>
                    <comment id="23618" author="importer" created="Tue, 28 Sep 2010 16:56:00 -0500"  >&lt;p&gt;Converted from &lt;a href=&quot;http://www.assembla.com/spaces/clojure/tickets/292&quot;&gt;http://www.assembla.com/spaces/clojure/tickets/292&lt;/a&gt;&lt;br/&gt;
Attachments:&lt;br/&gt;
wrapped_exception.clj - &lt;a href=&quot;https://www.assembla.com/spaces/clojure/documents/d7u-xuqYir34eneJe5avMc/download/d7u-xuqYir34eneJe5avMc&quot;&gt;https://www.assembla.com/spaces/clojure/documents/d7u-xuqYir34eneJe5avMc/download/d7u-xuqYir34eneJe5avMc&lt;/a&gt;&lt;br/&gt;
fix-292.diff - &lt;a href=&quot;https://www.assembla.com/spaces/clojure/documents/blThXoqYur35a4eJe5afGb/download/blThXoqYur35a4eJe5afGb&quot;&gt;https://www.assembla.com/spaces/clojure/documents/blThXoqYur35a4eJe5afGb/download/blThXoqYur35a4eJe5afGb&lt;/a&gt;&lt;/p&gt;</comment>
                    <comment id="23619" author="importer" created="Tue, 28 Sep 2010 16:56:00 -0500"  >&lt;p&gt;dsg said: [&lt;a href=&quot;file:blThXoqYur35a4eJe5afGb&quot;&gt;file:blThXoqYur35a4eJe5afGb&lt;/a&gt;]: Proposed fix&lt;/p&gt;</comment>
                </comments>
                    <attachments>
                </attachments>
            <subtasks>
        </subtasks>
                <customfields>
                                <customfield id="customfield_10002" key="com.atlassian.jira.plugin.system.customfieldtypes:select">
                <customfieldname>Approval</customfieldname>
                <customfieldvalues>
                        <customfieldvalue key="10007">Ok</customfieldvalue>

                </customfieldvalues>
            </customfield>
                                                                                    <customfield id="customfield_10010" key="com.pyxis.greenhopper.jira:gh-global-rank">
                <customfieldname>Global Rank</customfieldname>
                <customfieldvalues>
                    
                </customfieldvalues>
            </customfield>
                                                                                                            </customfields>
    </item>
</channel>
</rss>