<!-- 
RSS generated by JIRA (4.4#649-r158309) at Sat May 25 06:22:17 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-911/CLJ-911.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-911] &apos;proxy&apos; prevents overriding Object.finalize (and doesn&apos;t document it)</title>
                <link>http://dev.clojure.org/jira/browse/CLJ-911</link>
                <project id="10010" key="CLJ">Clojure</project>
                        <description>&lt;p&gt;It appears to be impossible to override Object.finalize() using proxy.  If the method is defined using proxy, then it cannot be called straightforwardly (see below), and it is not called as a finalizer during normal program execution (not demonstrated below).&lt;/p&gt;

&lt;p&gt;See extensive discussion at: &lt;a href=&quot;https://groups.google.com/group/clojure/browse_thread/thread/a1e2fca45af6c1af&quot;&gt;https://groups.google.com/group/clojure/browse_thread/thread/a1e2fca45af6c1af&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;user=&amp;gt; (def m (proxy &lt;span class=&quot;error&quot;&gt;&amp;#91;java.util.HashMap&amp;#93;&lt;/span&gt; []&lt;br/&gt;
        (finalize []&lt;br/&gt;
          ;(proxy-super finalize)&lt;br/&gt;
          (prn &quot;finalizing...&quot;))&lt;br/&gt;
        (hashCode []&lt;br/&gt;
          99)))&lt;br/&gt;
#&apos;user/m&lt;br/&gt;
user=&amp;gt; (.hashCode m)&lt;br/&gt;
99&lt;br/&gt;
user=&amp;gt; (.finalize m)&lt;br/&gt;
IllegalArgumentException No matching field found: finalize for class user.proxy$java.util.HashMap$0 clojure.lang.Reflector.getInstanceField (Reflector.java:289)&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;There is at least one of two bugs here (thanks to Cedric Greevey for summarising this way):&lt;/p&gt;

&lt;ul&gt;
	&lt;li&gt;If the inability to override finalize() is unintentional, that&apos;s a bug.&lt;/li&gt;
	&lt;li&gt;If it&apos;s intentional for some reason, then (a) that&apos;s not documented, and (b) the failure is silent, in the sense that an explicit call produces an apparently completely unrelated error (above), and the failure to call the method during object finalization is completely silent.&lt;/li&gt;
&lt;/ul&gt;
</description>
                <environment>OS X, Java 1.6.0?</environment>
            <key id="15118">CLJ-911</key>
            <summary>&apos;proxy&apos; prevents overriding Object.finalize (and doesn&apos;t document it)</summary>
                <type id="1" iconUrl="http://dev.clojure.org/jira/images/icons/bug.gif">Defect</type>
                                <priority id="3" iconUrl="http://dev.clojure.org/jira/images/icons/priority_major.gif">Major</priority>
                    <status id="1" iconUrl="http://dev.clojure.org/jira/images/icons/status_open.gif">Open</status>
                    <resolution id="-1">Unresolved</resolution>
                                <assignee username="-1">Unassigned</assignee>
                                <reporter username="nxg">Norman Gray</reporter>
                        <labels>
                    </labels>
                <created>Mon, 16 Jan 2012 08:36:27 -0600</created>
                <updated>Mon, 16 Jan 2012 08:36:27 -0600</updated>
                                    <version>Release 1.3</version>
                                                        <due></due>
                    <votes>0</votes>
                        <watches>0</watches>
                                <attachments>
                </attachments>
            <subtasks>
        </subtasks>
                <customfields>
                                                                                            <customfield id="customfield_10010" key="com.pyxis.greenhopper.jira:gh-global-rank">
                <customfieldname>Global Rank</customfieldname>
                <customfieldvalues>
                    
                </customfieldvalues>
            </customfield>
                                                                                                            </customfields>
    </item>
</channel>
</rss>