<!--
RSS generated by JIRA (4.4#649-r158309) at Wed Jun 19 10:44:22 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/sr/jira.issueviews:searchrequest-xml/temp/SearchRequest.xml?jqlQuery=project+%3D+NREPL+AND+resolution+%3D+Unresolved+AND+assignee+%3D+cemerick+ORDER+BY+priority+DESC&tempMax=1000&field=key&field=summary
-->
<!-- If you wish to do custom client-side styling of RSS, uncomment this:
<?xml-stylesheet href="http://dev.clojure.org/jira/styles/jiraxml2html.xsl" type="text/xsl"?>
-->
<rss version="0.92">
    <channel>
        <title>Clojure JIRA</title>
        <link>http://dev.clojure.org/jira/secure/IssueNavigator.jspa?reset=true&amp;jqlQuery=project+%3D+NREPL+AND+resolution+%3D+Unresolved+AND+assignee+%3D+cemerick+ORDER+BY+priority+DESC</link>
        <description>An XML representation of a search request</description>
                <language>en-us</language>
                        <issue start="0" end="9" total="9"/>
                <build-info>
            <version>4.4</version>
            <build-number>649</build-number>
            <build-date>25-07-2011</build-date>
        </build-info>
<item>
            <title>[NREPL-28] Clarify semantics for String encoding</title>
                <link>http://dev.clojure.org/jira/browse/NREPL-28</link>
                <project id="10022" key="NREPL">tools.nrepl</project>
                        <description></description>
                <environment></environment>
            <key id="15639">NREPL-28</key>
            <summary>Clarify semantics for String encoding</summary>
                <type id="1" iconUrl="http://dev.clojure.org/jira/images/icons/bug.gif">Defect</type>
                                <priority id="2" iconUrl="http://dev.clojure.org/jira/images/icons/priority_critical.gif">Critical</priority>
                    <status id="1" iconUrl="http://dev.clojure.org/jira/images/icons/status_open.gif">Open</status>
                    <resolution id="-1">Unresolved</resolution>
                                <assignee username="cemerick">Chas Emerick</assignee>
                                <reporter username="cemerick">Chas Emerick</reporter>
                        <labels>
                    </labels>
                <created>Tue, 21 Aug 2012 20:27:05 -0500</created>
                <updated>Thu, 11 Oct 2012 14:20:38 -0500</updated>
                                                                            <due></due>
                    <votes>0</votes>
                        <watches>0</watches>
                        <comments>
                    <comment id="29249" author="cemerick" created="Tue, 21 Aug 2012 20:27:51 -0500"  >&lt;p&gt;Initial discussion held in &lt;a href=&quot;http://dev.clojure.org/jira/browse/NREPL-11&quot; title=&quot;Ensure efficient bytestring (byte[]) support in bencode transport&quot;&gt;&lt;del&gt;NREPL-11&lt;/del&gt;&lt;/a&gt;.&lt;/p&gt;</comment>
                </comments>
                    <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>

<item>
            <title>[NREPL-36] Too many DynamicClassLoaders created</title>
                <link>http://dev.clojure.org/jira/browse/NREPL-36</link>
                <project id="10022" key="NREPL">tools.nrepl</project>
                        <description>&lt;p&gt;Not sure whether this ticket belongs here or in the Clojure-proper JIRA, so feel free to close if this is an inappropriate location. clojure.main/repl creates a new DynamicClassLoader on every execution, so it looks like the stack of classloaders grows without bounds. Seems a bit similar to &lt;a href=&quot;http://dev.clojure.org/jira/browse/NREPL-31&quot;&gt;http://dev.clojure.org/jira/browse/NREPL-31&lt;/a&gt; in that clojure.main/repl has another assumption about when clojure.main/repl will run.&lt;/p&gt;

&lt;p&gt;See &lt;a href=&quot;https://groups.google.com/forum/?fromgroups=#!topic/clojure/firG9zTVecU%5B1-25%5D&quot;&gt;https://groups.google.com/forum/?fromgroups=#!topic/clojure/firG9zTVecU%5B1-25%5D&lt;/a&gt; for the original report.&lt;/p&gt;</description>
                <environment></environment>
            <key id="15879">NREPL-36</key>
            <summary>Too many DynamicClassLoaders created</summary>
                <type id="1" iconUrl="http://dev.clojure.org/jira/images/icons/bug.gif">Defect</type>
                                <priority id="2" iconUrl="http://dev.clojure.org/jira/images/icons/priority_critical.gif">Critical</priority>
                    <status id="1" iconUrl="http://dev.clojure.org/jira/images/icons/status_open.gif">Open</status>
                    <resolution id="-1">Unresolved</resolution>
                                <assignee username="cemerick">Chas Emerick</assignee>
                                <reporter username="trptcolin">Colin Jones</reporter>
                        <labels>
                    </labels>
                <created>Mon, 10 Dec 2012 10:31:45 -0600</created>
                <updated>Mon, 10 Dec 2012 14:25:30 -0600</updated>
                                    <version>0.2.0-RC1</version>
                <version>0.2.0-beta9</version>
                <version>0.2.0-beta10</version>
                                                        <due></due>
                    <votes>0</votes>
                        <watches>1</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>

<item>
            <title>[NREPL-24] :session key is overloaded</title>
                <link>http://dev.clojure.org/jira/browse/NREPL-24</link>
                <project id="10022" key="NREPL">tools.nrepl</project>
                        <description>&lt;p&gt;The session middleware takes the :session key from the message, and uses it as an id to lookup session data, which it then places on the same key.&lt;/p&gt;

&lt;p&gt;Using a separate key for the session id and the session data would be less confusing, and would allow easier checking of the availability of the session data in the message map.&lt;/p&gt;</description>
                <environment></environment>
            <key id="15621">NREPL-24</key>
            <summary>:session key is overloaded</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="cemerick">Chas Emerick</assignee>
                                <reporter username="hugoduncan">Hugo Duncan</reporter>
                        <labels>
                    </labels>
                <created>Fri, 10 Aug 2012 13:44:22 -0500</created>
                <updated>Wed, 3 Oct 2012 07:05:07 -0500</updated>
                                                                            <due></due>
                    <votes>0</votes>
                        <watches>0</watches>
                        <comments>
                    <comment id="29112" author="cemerick" created="Fri, 10 Aug 2012 23:26:15 -0500"  >&lt;p&gt;The session id will need to continue to come in in the &lt;tt&gt;:session&lt;/tt&gt; slot, as I don&apos;t want to break clients (and, there&apos;s very, very few middlewares out there yet).&lt;/p&gt;

&lt;p&gt;Suggestions for names for the actual session atom?  &lt;tt&gt;:the-session&lt;/tt&gt;? :-/&lt;/p&gt;</comment>
                </comments>
                    <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>

<item>
            <title>[NREPL-4] Provide sane multiplexing of output in the face of multithreaded, asynchronous operation</title>
                <link>http://dev.clojure.org/jira/browse/NREPL-4</link>
                <project id="10022" key="NREPL">tools.nrepl</project>
                        <description>&lt;p&gt;Basically, &lt;tt&gt;(send-off some-agent println)&lt;/tt&gt; &amp;amp; co. should get what&apos;s printed to &lt;tt&gt;&lt;b&gt;out&lt;/b&gt;&lt;/tt&gt; in that agent&apos;s thread back to the nREPL client &#8212; not silently let it dump out to &lt;tt&gt;System/out&lt;/tt&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://github.com/flatland/portal&quot;&gt;Portal&lt;/a&gt; ostensibly does this well.  Examine their approach, see if it is compatible with nREPL&apos;s objectives.&lt;/p&gt;

&lt;p&gt;Ill-formed brain dump:&lt;/p&gt;

&lt;ul&gt;
	&lt;li&gt;multiplex new &lt;b&gt;out&lt;/b&gt;&apos;s to System/out
	&lt;ul&gt;
		&lt;li&gt;(still won&apos;t solve clojure.test/&lt;b&gt;test-out&lt;/b&gt; content will disappearing into the ether when it&apos;s loaded when &lt;b&gt;out&lt;/b&gt; is bound to an nREPL out; maybe we should ensure &lt;b&gt;out&lt;/b&gt; is bound to System/out while code is being loaded?)&lt;/li&gt;
	&lt;/ul&gt;
	&lt;/li&gt;
	&lt;li&gt;optionally multiplex System/out and System/err&lt;/li&gt;
	&lt;li&gt;optionally join multiplexed S/out and S/err, receive :stdout, :stderr msgs&lt;/li&gt;
&lt;/ul&gt;
</description>
                <environment></environment>
            <key id="14658">NREPL-4</key>
            <summary>Provide sane multiplexing of output in the face of multithreaded, asynchronous operation</summary>
                <type id="4" iconUrl="http://dev.clojure.org/jira/images/icons/improvement.gif">Enhancement</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="cemerick">Chas Emerick</assignee>
                                <reporter username="cemerick">Chas Emerick</reporter>
                        <labels>
                    </labels>
                <created>Fri, 30 Sep 2011 11:10:25 -0500</created>
                <updated>Wed, 3 Oct 2012 07:29:23 -0500</updated>
                                                                            <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>

<item>
            <title>[NREPL-33] Consider making session and eval functionality more accessible</title>
                <link>http://dev.clojure.org/jira/browse/NREPL-33</link>
                <project id="10022" key="NREPL">tools.nrepl</project>
                        <description>&lt;p&gt;ritz re-uses some of nrepl&apos;s private functions to avoid duplication. The uses are listed below.&lt;/p&gt;

&lt;p&gt;Would it be possible to make these functions public? More subjectively, it might also be worth considering factoring out the session functionality into it&apos;s own namespace (including &lt;b&gt;msg&lt;/b&gt; and possibly queue-eval), so the functionality is not split across the session middleware and the interruptible-eval middleware.&lt;/p&gt;

&lt;p&gt;The debug nrepl server: &lt;br/&gt;
&lt;a href=&quot;https://github.com/pallet/ritz/blob/develop/nrepl/src/ritz/nrepl.clj#L189&quot;&gt;https://github.com/pallet/ritz/blob/develop/nrepl/src/ritz/nrepl.clj#L189&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This uses clojure.tools.nrepl.middleware.session/create-session and clojure.tools.nrepl.middleware.session/session-out &lt;/p&gt;


&lt;p&gt;ritz provides an eval op that tracks source forms: &lt;br/&gt;
&lt;a href=&quot;https://github.com/pallet/ritz/blob/develop/nrepl-middleware/src/ritz/nrepl/middleware/tracking_eval.clj&quot;&gt;https://github.com/pallet/ritz/blob/develop/nrepl-middleware/src/ritz/nrepl/middleware/tracking_eval.clj&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This uses  clojure.tools.nrepl.middleware.interruptible-eval/queue-eval and clojure.tools.nrepl.middleware.interruptible-eval/configure-executor&lt;/p&gt;



</description>
                <environment></environment>
            <key id="15737">NREPL-33</key>
            <summary>Consider making session and eval functionality more accessible</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="cemerick">Chas Emerick</assignee>
                                <reporter username="hugoduncan">Hugo Duncan</reporter>
                        <labels>
                    </labels>
                <created>Mon, 8 Oct 2012 13:24:45 -0500</created>
                <updated>Mon, 8 Oct 2012 13:24:45 -0500</updated>
                                    <version>0.2.0-beta9</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>

<item>
            <title>[NREPL-15] Allow clients to specify an ID for newly-retained sessions</title>
                <link>http://dev.clojure.org/jira/browse/NREPL-15</link>
                <project id="10022" key="NREPL">tools.nrepl</project>
                        <description>&lt;p&gt;...particularly important where less sophisticated clients and polling-oriented transports are involved (e.g. HTTP).&lt;/p&gt;</description>
                <environment></environment>
            <key id="15305">NREPL-15</key>
            <summary>Allow clients to specify an ID for newly-retained sessions</summary>
                <type id="4" iconUrl="http://dev.clojure.org/jira/images/icons/improvement.gif">Enhancement</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="cemerick">Chas Emerick</assignee>
                                <reporter username="cemerick">Chas Emerick</reporter>
                        <labels>
                    </labels>
                <created>Thu, 29 Mar 2012 12:51:29 -0500</created>
                <updated>Fri, 12 Oct 2012 00:52:25 -0500</updated>
                                                                            <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>

<item>
            <title>[NREPL-3] Adopt default port</title>
                <link>http://dev.clojure.org/jira/browse/NREPL-3</link>
                <project id="10022" key="NREPL">tools.nrepl</project>
                        <description>&lt;p&gt;7888 is &quot;free&quot;, at least in IANA.&lt;/p&gt;

&lt;p&gt;Most users want to put an nREPL port on their app, and that should always be on a typical port.  Auto-selection of a port is only desirable in tooling scenarios, and tooling authors can pass an argument to &lt;tt&gt;start-server&lt;/tt&gt;.&lt;/p&gt;

&lt;p&gt;This will change the behaviour of &lt;tt&gt;(start-server)&lt;/tt&gt;.&lt;/p&gt;</description>
                <environment></environment>
            <key id="14657">NREPL-3</key>
            <summary>Adopt default port</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="cemerick">Chas Emerick</assignee>
                                <reporter username="cemerick">Chas Emerick</reporter>
                        <labels>
                    </labels>
                <created>Fri, 30 Sep 2011 10:56:53 -0500</created>
                <updated>Mon, 22 Oct 2012 19:54:53 -0500</updated>
                                                                            <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>

<item>
            <title>[NREPL-29] Provide a mechanism for overriding an operation</title>
                <link>http://dev.clojure.org/jira/browse/NREPL-29</link>
                <project id="10022" key="NREPL">tools.nrepl</project>
                        <description>&lt;p&gt;When specifying middleware, it would be much easier for the user to be able to override a default middleware without having to specify a handler.&lt;/p&gt;

&lt;p&gt;For example, if there is a default middleware providing the &quot;complete&quot; operation, the user should be able to just specify their preferred completion middleware, without having to specify all middleware as a handler.&lt;/p&gt;

&lt;p&gt;One way to do this might be to check metadata for the provided operations of the specified metadata, and ensure that either the default middleware for that operation is removed, or that the specified middleware takes precendence (which may be simpler when a middleware provides multiple operations).&lt;/p&gt;</description>
                <environment></environment>
            <key id="15687">NREPL-29</key>
            <summary>Provide a mechanism for overriding an operation</summary>
                <type id="4" iconUrl="http://dev.clojure.org/jira/images/icons/improvement.gif">Enhancement</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="cemerick">Chas Emerick</assignee>
                                <reporter username="hugoduncan">Hugo Duncan</reporter>
                        <labels>
                    </labels>
                <created>Sun, 9 Sep 2012 14:11:13 -0500</created>
                <updated>Tue, 13 Nov 2012 12:17:57 -0600</updated>
                                    <version>0.2.0-beta9</version>
                <version>0.2.0-beta10</version>
                                                        <due></due>
                    <votes>0</votes>
                        <watches>1</watches>
                        <comments>
                    <comment id="29439" author="cemerick" created="Fri, 14 Sep 2012 07:44:39 -0500"  >&lt;p&gt;Agreed.&lt;/p&gt;

&lt;p&gt;Just making sure that the order in which additional middlewares are provided is taken as a default stack order will suffice for most use cases.  Transforming middlewares (either in full or in part) would need another metadata slot, &lt;tt&gt;:replace&lt;/tt&gt; perhaps, though it seems like that would be much more difficult to get right.&lt;/p&gt;</comment>
                </comments>
                    <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>

<item>
            <title>[NREPL-40] Thread leak in clojure.tools.nrepl.transport$fn_transport?</title>
                <link>http://dev.clojure.org/jira/browse/NREPL-40</link>
                <project id="10022" key="NREPL">tools.nrepl</project>
                        <description>&lt;p&gt;When trying out remote eval using your sample in the README, ie &lt;/p&gt;

&lt;p&gt;(with-open &lt;span class=&quot;error&quot;&gt;&amp;#91;conn (repl/connect :port 59258)&amp;#93;&lt;/span&gt;&lt;br/&gt;
     (-&amp;gt; (repl/client conn 1000)    ; message receive timeout required&lt;br/&gt;
       (repl/message {:op &quot;eval&quot; :code &quot;(+ 2 3)&quot;})&lt;br/&gt;
       repl/response-values))&lt;/p&gt;

&lt;p&gt;I&apos;m noticing that hosting process leaking a thread each time the remote eval is called. Jconsole shows a clojure-agent-send-off-pool-xxx thread got spawn as result of the call. The stack appears to be pointing to the &quot;while true&quot; loop inside fn_transport.  &lt;/p&gt;

&lt;p&gt;java.util.concurrent.locks.LockSupport.park(LockSupport.java:186)&lt;br/&gt;
java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill(SynchronousQueue.java:458)&lt;br/&gt;
java.util.concurrent.SynchronousQueue$TransferStack.transfer(SynchronousQueue.java:359)&lt;br/&gt;
java.util.concurrent.SynchronousQueue.put(SynchronousQueue.java:878)&lt;br/&gt;
clojure.tools.nrepl.transport$fn_transport$fn__3912.invoke(transport.clj:44)&lt;br/&gt;
clojure.core$binding_conveyor_fn$fn__3989.invoke(core.clj:1819)&lt;br/&gt;
clojure.lang.AFn.call(AFn.java:18)&lt;br/&gt;
java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)&lt;br/&gt;
java.util.concurrent.FutureTask.run(FutureTask.java:166)&lt;br/&gt;
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)&lt;br/&gt;
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)&lt;br/&gt;
java.lang.Thread.run(Thread.java:722)&lt;/p&gt;

&lt;p&gt;What do you recommend as way to free the thread? I have server code that calls nrepl on behave of client connections and the number of call can pile up fairly quickly.      &lt;/p&gt;</description>
                <environment>Windows 7 x64, Oracle JDK 1.7.0.11 x64, clojure 1.4.0 </environment>
            <key id="16080">NREPL-40</key>
            <summary>Thread leak in clojure.tools.nrepl.transport$fn_transport?</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="cemerick">Chas Emerick</assignee>
                                <reporter username="davidlao">David Lao</reporter>
                        <labels>
                    </labels>
                <created>Mon, 11 Mar 2013 20:11:48 -0500</created>
                <updated>Tue, 12 Mar 2013 15:37:23 -0500</updated>
                                    <version>0.2.1</version>
                <version>0.2.2</version>
                                                        <due></due>
                    <votes>0</votes>
                        <watches>1</watches>
                        <comments>
                    <comment id="30745" author="davidlao" created="Tue, 12 Mar 2013 15:37:23 -0500"  >&lt;p&gt;Here is my workaround.&lt;/p&gt;

&lt;p&gt;&amp;#8212; a/src/main/clojure/clojure/tools/nrepl/transport.clj&lt;br/&gt;
+++ b/src/main/clojure/clojure/tools/nrepl/transport.clj&lt;br/&gt;
@@ -36,12 +36,12 @@&lt;br/&gt;
    to the 2 or 3 functions provided.&quot;&lt;br/&gt;
   (&lt;span class=&quot;error&quot;&gt;&amp;#91;read write&amp;#93;&lt;/span&gt; (fn-transport read write nil))&lt;br/&gt;
   (&lt;span class=&quot;error&quot;&gt;&amp;#91;read write close&amp;#93;&lt;/span&gt;&lt;/p&gt;
&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;(let &lt;span class=&quot;error&quot;&gt;&amp;#91;read-queue (SynchronousQueue.)&amp;#93;&lt;/span&gt;&lt;/li&gt;
	&lt;li&gt;(future (try&lt;/li&gt;
	&lt;li&gt;(while true&lt;/li&gt;
	&lt;li&gt;(.put read-queue (read)))&lt;/li&gt;
	&lt;li&gt;(catch Throwable t&lt;/li&gt;
	&lt;li&gt;(.put read-queue t))))&lt;br/&gt;
+    (let [read-queue (SynchronousQueue.)&lt;br/&gt;
+          transport-thread (future (try&lt;br/&gt;
+                                (while true&lt;br/&gt;
+                                  (.put read-queue (read)))&lt;br/&gt;
+                                (catch Throwable t&lt;br/&gt;
+                                  (.put read-queue t))))]&lt;br/&gt;
       (FnTransport.&lt;br/&gt;
         (let &lt;span class=&quot;error&quot;&gt;&amp;#91;failure (atom nil)&amp;#93;&lt;/span&gt;&lt;br/&gt;
           #(if @failure&lt;br/&gt;
@@ -51,7 +51,7 @@&lt;br/&gt;
                  (do (reset! failure msg) (throw msg))&lt;br/&gt;
                  msg))))&lt;br/&gt;
         write&lt;/li&gt;
	&lt;li&gt;close))))&lt;br/&gt;
+        (fn [] (close)(future-cancel transport-thread))))))&lt;/li&gt;
&lt;/ul&gt;
</comment>
                </comments>
                    <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>