<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<id>tag:old.nabble.com,2006:forum-11866</id>
	<title>Nabble - codehaus - Groovy</title>
	<updated>2009-11-10T12:10:23Z</updated>
	<link rel="self" type="application/atom+xml" href="http://old.nabble.com/codehaus---Groovy-f11866.xml" />
	<link rel="alternate" type="text/html" href="http://old.nabble.com/codehaus---Groovy-f11866.html" />
	<subtitle type="html">&lt;img src=&quot;http://media.xircles.codehaus.org/_projects/groovy/_logos/medium.png&quot; border=&quot;0&quot; /&gt; 
Groovy is a new agile dynamic language for the JVM. codehaus - Groovy home is &lt;a href=&quot;http://groovy.codehaus.org/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;here&lt;/a&gt;</subtitle>
	
<entry>
	<id>tag:old.nabble.com,2006:post-26289081</id>
	<title>Re: On static compilation of Groovy</title>
	<published>2009-11-10T12:10:23Z</published>
	<updated>2009-11-10T12:10:23Z</updated>
	<author>
		<name>simonz</name>
	</author>
	<content type="html">Alex,
&lt;p&gt;
Thanks for writing such a thoughtful article, I really enjoyed reading it.  
&lt;p&gt;
I too would love to see Groovy get some optional static compilation features.   I say this because I really do love programming in Groovy but in my heart of hearts, I know I will probably recommend Scala instead of Groovy to many people in the end because of the issues you mention.   It makes me sad because I feel like this is an unnecessary and unfortunate outcome.    Groovy only needs some very minor static typing features in my view to completely solve the problem, and such an outcome would make it easily better than Scala for most people's needs.
&lt;pre&gt;@Static
class Foo {
    int x;
    String fubar(Bar bar) { 
        return 5; // compile error
    }
};&lt;/pre&gt;

&lt;pre&gt;
static int 5;
String cat = 5; // compile error
&lt;/pre&gt;

I don't accept the argument that because IDEs highlight some warnings that it makes up for static typing being missing.   Often type errors come when you combine separate modules, upgrade versions etc.  You are not necessarily staring at the IDE, looking at the code in question when the problem occurs.   You are compiling with groovyc.   And even if you are staring at your IDE, do you really want to see thousands of harmless warnings all over your code for those places where the IDE can't decide if you broke the code or not?
&lt;p&gt;
Sadly I'm not smart enough to contribute to all this intelligently at the language level.  But I know that I want it and if I had it I would definitely be increasing the scope of where and how I deploy groovy.
&lt;p&gt;
Cheers,
&lt;p&gt;
Simon.&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/groovy---user-f11867.html&quot; embed=&quot;fixTarget[11867]&quot; target=&quot;_top&quot; &gt;groovy - user&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/On-static-compilation-of-Groovy-tp26269191p26289081.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26288894</id>
	<title>Re: On static compilation of Groovy</title>
	<published>2009-11-10T10:34:01Z</published>
	<updated>2009-11-10T10:34:01Z</updated>
	<author>
		<name>Robert Fischer</name>
	</author>
	<content type="html">&amp;nbsp;&amp;gt; This reminds me of the discussion about having a joint compiler for Java and Groovy.
&lt;br&gt;&amp;nbsp;&amp;gt;
&lt;br&gt;&amp;nbsp;&amp;gt; All the Groovy bigger heads were totally against it [...]
&lt;br&gt;&amp;nbsp;&amp;gt;
&lt;br&gt;&lt;br&gt;I just don't want it to be officially supported by Groovy. &amp;nbsp;I think it's going to open up a world of 
&lt;br&gt;hurt and annoyance for the maintainer (I'm envisioning weekly refrains of &amp;quot;Can I de-statically 
&lt;br&gt;compile a statically compiled class?&amp;quot;), and I'd rather that the core Groovy people be left outside 
&lt;br&gt;of that loop so they can stay productive on more useful and less error-causing things.
&lt;br&gt;&lt;br&gt;~~ Robert Fischer, Smokejumper IT Consulting.
&lt;br&gt;Enfranchised Mind Blog &lt;a href=&quot;http://EnfranchisedMind.com/blog&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://EnfranchisedMind.com/blog&lt;/a&gt;&lt;br&gt;&lt;br&gt;Grails Expert Retainer Services
&lt;br&gt;&lt;a href=&quot;http://smokejumperit.com/grails-retainer/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://smokejumperit.com/grails-retainer/&lt;/a&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;Michael Baehr wrote:
&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; This reminds me of the discussion about having a joint compiler for Java and Groovy.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; All the Groovy bigger heads were totally against it (do a search and you will find a similar list of threads), 'til somebody by the name Alex Tkachman just created one - and since then the project leads declared it as the best thing since sliced bread.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; So Alex, just go for it - there are obviously enough people who would want to have something like that.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; cu
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; Michael
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; On 10. Nov 2009, at 6:19, Robert Fischer wrote:
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; All this idea of a &amp;quot;static groovy&amp;quot; mode has been debated so many times
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; in the past on the mailing-list that I'm lazy reiterating all the bad
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; points about it.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; Just a one minute search brought me numerous threads on the topics, on
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; the challenges and issues about this static groovy idea:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &lt;a href=&quot;http://markmail.org/thread/ncv4uhcsd4qgtsni&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://markmail.org/thread/ncv4uhcsd4qgtsni&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &lt;a href=&quot;http://markmail.org/thread/rar6j5j47kl7yjlp&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://markmail.org/thread/rar6j5j47kl7yjlp&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &lt;a href=&quot;http://markmail.org/thread/wslb4sc75xsykbq3&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://markmail.org/thread/wslb4sc75xsykbq3&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &lt;a href=&quot;http://markmail.org/thread/ufo6ekbvlie3j3pm&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://markmail.org/thread/ufo6ekbvlie3j3pm&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &lt;a href=&quot;http://markmail.org/thread/hxfh5tpp6psyg6rg&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://markmail.org/thread/hxfh5tpp6psyg6rg&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &lt;a href=&quot;http://markmail.org/thread/p7hnerkarsyx3te7&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://markmail.org/thread/p7hnerkarsyx3te7&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &lt;a href=&quot;http://markmail.org/thread/p7hnerkarsyx3te7&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://markmail.org/thread/p7hnerkarsyx3te7&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &lt;a href=&quot;http://markmail.org/thread/g2a2gxahspj2iilt&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://markmail.org/thread/g2a2gxahspj2iilt&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &lt;a href=&quot;http://markmail.org/thread/nxt4e2oxfnf6m647&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://markmail.org/thread/nxt4e2oxfnf6m647&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt; Best. &amp;nbsp;Rebuttal. &amp;nbsp;EVAR.
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; ~~ Robert Fischer, Smokejumper IT Consulting.
&lt;br&gt;&amp;gt;&amp;gt; Enfranchised Mind Blog &lt;a href=&quot;http://EnfranchisedMind.com/blog&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://EnfranchisedMind.com/blog&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Grails Expert Retainer Services
&lt;br&gt;&amp;gt;&amp;gt; &lt;a href=&quot;http://smokejumperit.com/grails-retainer/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://smokejumperit.com/grails-retainer/&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Guillaume Laforge wrote:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; On Mon, Nov 9, 2009 at 19:09, David Clark &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26288894&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;davidclark@...&lt;/a&gt;&amp;gt; wrote:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; In your article you make the assertion, &amp;quot;due to performance reasons Groovy is
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; almost useless today for multi-core programming&amp;quot; without giving any reasons or
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; data to defend the assertion. &amp;nbsp;I can't think of why this assertion should
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; hold. &amp;nbsp;Of course Groovy is inappropriate for computation intensive code, but
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; this holds for any number of threads and any number of cores. &amp;nbsp;Why would
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; properly parallelized Groovy code be inappropriate for code that engages in
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; lots of IO, which is the bulk of what business oriented code does?
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; Indeed. Despite Groovy being slower than pure Java, the overhead is
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; usually ridiculous compared to the time software waits for data to
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; come up from the database. And optimizing the IO access is usually
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; going to offer leaps in the scalability and/or performance of your
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; code.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; As for statically compiling Groovy code I'm all for it provided that 1) It's
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; entirely transparent for end users, 2) It does not increase the complexity of
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; the Groovy compiler thereby increasing bugs and slowing down development of
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; other features, and 3) It changes none of the semantics of current Groovy
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; code. &amp;nbsp;I doubt those three things are possible, but I am willing to be proved
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; wrong.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; All this idea of a &amp;quot;static groovy&amp;quot; mode has been debated so many times
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; in the past on the mailing-list that I'm lazy reiterating all the bad
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; points about it.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; Just a one minute search brought me numerous threads on the topics, on
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; the challenges and issues about this static groovy idea:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &lt;a href=&quot;http://markmail.org/thread/ncv4uhcsd4qgtsni&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://markmail.org/thread/ncv4uhcsd4qgtsni&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &lt;a href=&quot;http://markmail.org/thread/rar6j5j47kl7yjlp&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://markmail.org/thread/rar6j5j47kl7yjlp&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &lt;a href=&quot;http://markmail.org/thread/wslb4sc75xsykbq3&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://markmail.org/thread/wslb4sc75xsykbq3&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &lt;a href=&quot;http://markmail.org/thread/ufo6ekbvlie3j3pm&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://markmail.org/thread/ufo6ekbvlie3j3pm&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &lt;a href=&quot;http://markmail.org/thread/hxfh5tpp6psyg6rg&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://markmail.org/thread/hxfh5tpp6psyg6rg&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &lt;a href=&quot;http://markmail.org/thread/p7hnerkarsyx3te7&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://markmail.org/thread/p7hnerkarsyx3te7&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &lt;a href=&quot;http://markmail.org/thread/p7hnerkarsyx3te7&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://markmail.org/thread/p7hnerkarsyx3te7&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &lt;a href=&quot;http://markmail.org/thread/g2a2gxahspj2iilt&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://markmail.org/thread/g2a2gxahspj2iilt&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &lt;a href=&quot;http://markmail.org/thread/nxt4e2oxfnf6m647&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://markmail.org/thread/nxt4e2oxfnf6m647&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; And I'm sure there are even older threads on the topic.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; But to answer your points: 1) It won't be transparent in the sense
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; that you would have to demarcate the code that would be made &amp;quot;static&amp;quot;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; (not a bad thing per se, though), but then avoid mixing static /
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; non-static code, otherwise you wouldn't be able to really know what is
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; or what is not statically compiled. 2) Of course it'll increase the
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; complexity of the compiler. More advanced / complex features means
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; more complexity to deal with, more bugs, a longer time to get it
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; right, less resource / time to work on other features. And 3) it'd
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; definitely change the semantics of current Groovy code, as for
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; instance, the method resolution in a static mode is different from a
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; dynamic mode. Groovy's multimethods wouldn't work, meaning that
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; calling foo(a) wouldn't call the same method foo(Object) or foo(A) in
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; static vs non-static mode. Groovy choses the method according to the
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; runtime type, a static mode wouldn't.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; So this is all far from seamless, transparent. In the end, it somehow
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; means maintaining two compilers in one.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Also, how many of the speed problems with dynamic dispatch will be alleviated
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; with the new invokedynamic that is supposed to start appearing in JVM's
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; sometime in the future?
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; It's still early to really tell, as &amp;quot;invokedynamic&amp;quot; is still a work in
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; progress. But hopefully, some significant gains will come from it,
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; although it's still difficult to know what the real gains will be till
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; there's a definitive working version available and testable.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; But I'd much rather see efforts improving &amp;quot;dynamic Groovy&amp;quot;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; (performance, features, etc), than abandonning this idea and turning
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; Groovy into Java plus some syntaxic sugar only.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Also, if the objections to static compiling that I raised above cannot be met
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; there are alternatives to speeding up Groovy code that seem easier to
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; implement but would give big speedups to performance critical code. &amp;nbsp;One would
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; be to allow embedding java or scala code like C/C++ compiles allow embedding
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; of ASM code. &amp;nbsp;Granted it is already possible to mix and match Groovy, Java,
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; and Scala, so this doesn't provide anything that can't already be done, it
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; simply provides convenience to the programmer.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; The integration is pretty much seamless already.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; Adding a small Java class for a routine that needs to be speed up is so easy.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; Once you've got your project build using the groovyc compiler (Ant
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; build, GMaven, Gradle, whatever), you usually don't have much work to
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; do to joint-compile Groovy and Java together -- perhaps just a few
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; lines to customize the javac call.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; The benefit also is it clearly demarcates what's statically-compiled
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; (Java) and what's your dynamic code (Groovy).
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; [...]
&lt;br&gt;&amp;gt;&amp;gt; ---------------------------------------------------------------------
&lt;br&gt;&amp;gt;&amp;gt; To unsubscribe from this list, please visit:
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; &lt;a href=&quot;http://xircles.codehaus.org/manage_email&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://xircles.codehaus.org/manage_email&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; ---------------------------------------------------------------------
&lt;br&gt;&amp;gt; To unsubscribe from this list, please visit:
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &lt;a href=&quot;http://xircles.codehaus.org/manage_email&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://xircles.codehaus.org/manage_email&lt;/a&gt;&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; 
&lt;/div&gt;&lt;br&gt;---------------------------------------------------------------------
&lt;br&gt;To unsubscribe from this list, please visit:
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &lt;a href=&quot;http://xircles.codehaus.org/manage_email&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://xircles.codehaus.org/manage_email&lt;/a&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/groovy---user-f11867.html&quot; embed=&quot;fixTarget[11867]&quot; target=&quot;_top&quot; &gt;groovy - user&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/On-static-compilation-of-Groovy-tp26269191p26288894.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26287336</id>
	<title>Re: Handling RESTClient post() responses with no  content-type or body.</title>
	<published>2009-11-10T09:20:42Z</published>
	<updated>2009-11-10T09:20:42Z</updated>
	<author>
		<name>Jon Britton</name>
	</author>
	<content type="html">Hi, 
&lt;br&gt;&lt;br&gt;I used Maven to update my dependencies and I'm pretty certain that I'm using the right JAR. &amp;nbsp;I don't have access to a public GeoServer instance unfortunately, although it's pretty easy to install GeoServer on a local machine (you also need the GeoServer REST plugin which you need to put in webapps/geoserver/web-inf/lib/) especially if you happen to have Tomcat running (you can get a WAR).
&lt;br&gt;&lt;br&gt;One strange thing is that Eclipse seems to show http-builder-0.5.0-SNAPSHOT.jar, even though Maven downloaded the timestamped version. &amp;nbsp;I'm not sure if it actually replaced it, but it doesn't matter because I get the same result regardless of the JAR I use.
&lt;br&gt;&lt;br&gt;Here is the stack trace again so you can see the line numbers etc:
&lt;br&gt;&lt;br&gt;10-Nov-2009 17:18:42 groovyx.net.http.ParserRegistry getContentType
&lt;br&gt;WARNING: Could not parse content-type header in response
&lt;br&gt;java.lang.NullPointerException
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at groovyx.net.http.ParserRegistry.getContentType(ParserRegistry.java:151)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at groovyx.net.http.HTTPBuilder.parseResponse(HTTPBuilder.java:511)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at groovyx.net.http.HTTPBuilder.doRequest(HTTPBuilder.java:462)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at groovyx.net.http.RESTClient.post(RESTClient.java:140)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at java.lang.reflect.Method.invoke(Unknown Source)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite$PojoCachedMethodSiteNoUnwrapNoCoerce.invoke(PojoMetaMethodSi
&lt;br&gt;te.java:229)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite.call(PojoMetaMethodSite.java:52)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:40)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:117)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:125)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at uk.ac.glam.rest.GroovyTest.createWorkspace(GroovyTest.groovy:46)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at uk.ac.glam.rest.GroovyTest$createWorkspace.callCurrent(Unknown Source)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:44)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:143)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:163)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at uk.ac.glam.rest.GroovyTest.run(GroovyTest.groovy:69)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at groovy.lang.GroovyShell.runScriptOrMainOrTestOrRunnable(GroovyShell.java:256)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at groovy.lang.GroovyShell.run(GroovyShell.java:219)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at groovy.lang.GroovyShell.run(GroovyShell.java:149)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at groovy.ui.GroovyMain.processOnce(GroovyMain.java:494)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at groovy.ui.GroovyMain.run(GroovyMain.java:309)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at groovy.ui.GroovyMain.process(GroovyMain.java:295)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at groovy.ui.GroovyMain.processArgs(GroovyMain.java:112)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at groovy.ui.GroovyMain.main(GroovyMain.java:93)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at java.lang.reflect.Method.invoke(Unknown Source)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.codehaus.groovy.tools.GroovyStarter.rootLoader(GroovyStarter.java:108)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.codehaus.groovy.tools.GroovyStarter.main(GroovyStarter.java:130)
&lt;br&gt;10-Nov-2009 17:18:42 groovyx.net.http.HTTPBuilder doRequest
&lt;br&gt;WARNING: Error parsing 'null' response
&lt;br&gt;java.lang.IllegalArgumentException: Could not parse content-type from response
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at groovyx.net.http.ParserRegistry.getContentType(ParserRegistry.java:155)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at groovyx.net.http.HTTPBuilder.parseResponse(HTTPBuilder.java:511)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at groovyx.net.http.HTTPBuilder.doRequest(HTTPBuilder.java:462)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at groovyx.net.http.RESTClient.post(RESTClient.java:140)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at java.lang.reflect.Method.invoke(Unknown Source)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite$PojoCachedMethodSiteNoUnwrapNoCoerce.invoke(PojoMetaMethodSi
&lt;br&gt;te.java:229)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite.call(PojoMetaMethodSite.java:52)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:40)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:117)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:125)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at uk.ac.glam.rest.GroovyTest.createWorkspace(GroovyTest.groovy:46)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at uk.ac.glam.rest.GroovyTest$createWorkspace.callCurrent(Unknown Source)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:44)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:143)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:163)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at uk.ac.glam.rest.GroovyTest.run(GroovyTest.groovy:69)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at groovy.lang.GroovyShell.runScriptOrMainOrTestOrRunnable(GroovyShell.java:256)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at groovy.lang.GroovyShell.run(GroovyShell.java:219)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at groovy.lang.GroovyShell.run(GroovyShell.java:149)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at groovy.ui.GroovyMain.processOnce(GroovyMain.java:494)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at groovy.ui.GroovyMain.run(GroovyMain.java:309)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at groovy.ui.GroovyMain.process(GroovyMain.java:295)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at groovy.ui.GroovyMain.processArgs(GroovyMain.java:112)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at groovy.ui.GroovyMain.main(GroovyMain.java:93)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at java.lang.reflect.Method.invoke(Unknown Source)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.codehaus.groovy.tools.GroovyStarter.rootLoader(GroovyStarter.java:108)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.codehaus.groovy.tools.GroovyStarter.main(GroovyStarter.java:130)
&lt;br&gt;Caught: groovyx.net.http.ResponseParseException: Internal Server Error
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at uk.ac.glam.rest.GroovyTest.createWorkspace(GroovyTest.groovy:46)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at uk.ac.glam.rest.GroovyTest.run(GroovyTest.groovy:69)
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;blockquote class=&quot;quote light-black dark-border-color&quot;&gt;&lt;div class=&quot;quote light-border-color&quot;&gt;
&lt;div class=&quot;quote-author&quot; style=&quot;font-weight: bold;&quot;&gt;Tom Nichols wrote:&lt;/div&gt;
&lt;div class=&quot;quote-message shrinkable-quote&quot;&gt;Hi Jon,
&lt;br&gt;&lt;br&gt;Are you sure you got an updated snapshot? &amp;nbsp;It was published on Nov
&lt;br&gt;6th. &amp;nbsp;You can get the timestamped version of the JAR here:
&lt;br&gt;&lt;a href=&quot;http://snapshots.repository.codehaus.org/org/codehaus/groovy/modules/http-builder/http-builder/0.5.0-SNAPSHOT/http-builder-0.5.0-20091107.042829-12.jar&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://snapshots.repository.codehaus.org/org/codehaus/groovy/modules/http-builder/http-builder/0.5.0-SNAPSHOT/http-builder-0.5.0-20091107.042829-12.jar&lt;/a&gt;&lt;br&gt;&lt;br&gt;I'm surprised that you'd see _no_ change in the behavior. &amp;nbsp;Although
&lt;br&gt;part of the problem is I'm trying to fix this &amp;quot;blind,&amp;quot; so to speak,
&lt;br&gt;without being able to reproduce it myself. &amp;nbsp;Can you point me to a
&lt;br&gt;public GeoServer instance, or your dev server which I can use to test
&lt;br&gt;things while I develop the fix? &amp;nbsp;I'm certain this is not just
&lt;br&gt;GeoServer's fault. &amp;nbsp;While uncommon, it's not a requirement for a
&lt;br&gt;response to contain a body. &amp;nbsp;Therefore RESTClient should be able to
&lt;br&gt;handle the case and I'm more than willing to work with you to get it
&lt;br&gt;fixed in the HTTPBuilder code.
&lt;br&gt;&lt;br&gt;Can you please also verify that the exception stack trace is
&lt;br&gt;identical, once you've verified that you're using an updated snapshot?
&lt;br&gt;&amp;nbsp;Thanks.
&lt;br&gt;&lt;br&gt;-Tom
&lt;br&gt;&lt;br&gt;On Tue, Nov 10, 2009 at 9:29 AM, Jon Britton
&lt;br&gt;&amp;lt;man_kills_everything@hotmail.com&amp;gt; wrote:
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Hi Tom,
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; I've just tried again with 0.5.0-SNAPSHOT and my original code (the
&lt;br&gt;&amp;gt; RESTClient one) and I'm still getting the same exceptions
&lt;br&gt;&amp;gt; (NullPointerException, IllegalArgumentException and ResponseParseException).
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Again, here is the code I'm using:
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; def createWorkspace(workspace, geoserverUrl, user, pass){
&lt;br&gt;&amp;gt;        // setup the restclient
&lt;br&gt;&amp;gt;        def geoserver = new RESTClient(geoserverUrl)
&lt;br&gt;&amp;gt;        // do the authing
&lt;br&gt;&amp;gt;        geoserver.auth.basic user, pass
&lt;br&gt;&amp;gt;        // post it
&lt;br&gt;&amp;gt;        def res = geoserver.post( path: &amp;quot;/geoserver/rest/workspaces&amp;quot;,
&lt;br&gt;&amp;gt;                        requestContentType: XML,
&lt;br&gt;&amp;gt;                body: &amp;quot;&amp;lt;workspace&amp;gt;&amp;lt;name&amp;gt;${workspace}&amp;lt;/name&amp;gt;&amp;lt;/workspace&amp;gt;&amp;quot;
&lt;br&gt;&amp;gt;        ).getStatus()
&lt;br&gt;&amp;gt; }
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; I guess this is all GeoServers fault?
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Jon
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Tom Nichols wrote:
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Hi Jon,
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; I just deployed a new 0.5.0-SNAPSHOT release; this should fix the
&lt;br&gt;&amp;gt;&amp;gt; empty response body issue.  For RESTClient responses, response.data
&lt;br&gt;&amp;gt;&amp;gt; should simply be null.  But all header/ response code information
&lt;br&gt;&amp;gt;&amp;gt; should be readily available.  Please give it a try and let me know
&lt;br&gt;&amp;gt;&amp;gt; what you find.
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Thanks.
&lt;br&gt;&amp;gt;&amp;gt; -Tom
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; On Fri, Nov 6, 2009 at 11:11 AM, Tom Nichols &amp;lt;tmnichols@gmail.com&amp;gt; wrote:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; hmm, I'm not sure what to tell you; I just copied your example into a
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; Groovy console and ran it, and I didn't get the MissingMethodException
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; that you're seeing there, using 0.5.0-RC2.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; Try this variation:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; def http = new groovyx.net.http.HTTPBuilder(
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;quot;&lt;a href=&quot;http://localhost:8080/geoserver/rest/workspaces&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://localhost:8080/geoserver/rest/workspaces&lt;/a&gt;&amp;quot; )
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; http.handler.SUCCESS = { return it }
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; def response = http.post( headers:['Content-Type': 'text/xml'],
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;    body: &amp;quot;&amp;lt;workspace&amp;gt;&amp;lt;name&amp;gt;bob&amp;lt;/name&amp;gt;&amp;lt;/workspace&amp;gt;&amp;quot; )
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; assert response.status == 201
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; 2009/11/6 Jon Britton &amp;lt;man_kills_everything@hotmail.com&amp;gt;:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Hi again, I'm just trying your example without using RESTClient but it
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; doesn't work. My code is below, followed by the error I receive.  What's
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; could be causing this?
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Thanks,
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Jon
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; CODE:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; def createWorkspace(def wsName, def geoserverUrl, def user, def pass){
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        def http = new HTTPBuilder(
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;quot;${geoserverUrl}/geoserver/rest/workspaces&amp;quot; )
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        http.handler.SUCCESS = { return it }
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        def response = http.request( POST, XML ) {
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;                body = &amp;quot;&amp;lt;workspace&amp;gt;&amp;lt;name&amp;gt;${wsName}&amp;lt;/name&amp;gt;&amp;lt;/workspace&amp;gt;&amp;quot;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        }
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        assert response.status == 201
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; }
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; //Call method
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; def code = createWorkspace(&amp;quot;hello1&amp;quot;,
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;quot;&lt;a href=&quot;http://admin:geoserver@localhost:8080/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://admin:geoserver@localhost:8080/&lt;/a&gt;&amp;quot;, &amp;quot;admin&amp;quot;, &amp;quot;geoserver&amp;quot;)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; OUTPUT:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Caught: groovy.lang.MissingMethodException: No signature of method:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; groovyx.net.http.HTTPBuilder.request() is applicable
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;  for argument types: (groovyx.net.http.Method,
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; groovyx.net.http.ContentType,
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; uk.ac.glam.rest.GroovyTest$_createWorkspace
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; _closure2) values: [POST, application/xml,
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; uk.ac.glam.rest.GroovyTest$_createWorkspace_closure2@2fb002]
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; uk.ac.glam.rest.GroovyTest.createWorkspace(GroovyTest.groovy:54)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at uk.ac.glam.rest.GroovyTest.run(GroovyTest.groovy:70)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Tom Nichols wrote:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Nope, you're right; in that case, the response object should be
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; available, and the 'data' property (which is the parsed response body)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; should just be null.  Definitely a bug.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; However, after looking at the stack trace, I don't think you should be
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; getting an NPE but an IllegalArgumentException (this is still
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; erroneous in the case of RESTClient, but it's due to RESTClient's
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; underlying use of HTTPBuilder).  What version of HTTPBuilder are you
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; using?
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; In either case, the bug still stands; I'll start working on it
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; soon-ish.  You can work around it for now by using the HTTPBuilder
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; class directly, which other than being slightly more verbose can do
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; the exact thing you're doing with RESTClient.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; import static groovyx.net.http.Method.POST
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; import static groovyx.net.http.ContentType.XML
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; def http = new HTTPBuilder(
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; '&lt;a href=&quot;http://admin:geoserver@localhost:8080/geoserver/rest/workspaces'&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://admin:geoserver@localhost:8080/geoserver/rest/workspaces'&lt;/a&gt;&amp;nbsp;)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; http.handler.SUCCESS = { return it }
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; def response = http.request( POST, XML ) {
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;   body = '&amp;lt;workspace&amp;gt;&amp;lt;name&amp;gt;dwins&amp;lt;/name&amp;gt;&amp;lt;/workspace&amp;gt;'
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; }
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; assert response.status == 201
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Let me know if you have any trouble with the above example.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; -Tom
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; On Thu, Nov 5, 2009 at 9:45 AM, Jon Britton
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;lt;man_kills_everything@hotmail.com&amp;gt; wrote:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Sorry, forgot the full stack trace:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; 05-Nov-2009 14:45:22 groovyx.net.http.ParserRegistry getContentType
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; WARNING: Could not parse content-type header in response
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; java.lang.NullPointerException
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; groovyx.net.http.ParserRegistry.getContentType(ParserRegistry.java:153)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; groovyx.net.http.HTTPBuilder.parseResponse(HTTPBuilder.java:510)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at groovyx.net.http.HTTPBuilder.doRequest(HTTPBuilder.java:460)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at groovyx.net.http.RESTClient.post(RESTClient.java:140)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Source)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at java.lang.reflect.Method.invoke(Unknown Source)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite$PojoCachedMethodSiteNoUnwrapNoCoerce.invoke(PojoMetaMethodSite.java:229)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite.call(PojoMetaMethodSite.java:52)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:40)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:117)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:125)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; com.example.jon.GroovyTest.createWorkspace(GroovyTest.groovy:45)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; com.example.jon.GroovyTest$createWorkspace.callCurrent(Unknown
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Source)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:44)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:143)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:163)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at com.example.jon.GroovyTest.run(GroovyTest.groovy:60)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; groovy.lang.GroovyShell.runScriptOrMainOrTestOrRunnable(GroovyShell.java:256)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at groovy.lang.GroovyShell.run(GroovyShell.java:219)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at groovy.lang.GroovyShell.run(GroovyShell.java:149)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at groovy.ui.GroovyMain.processOnce(GroovyMain.java:494)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at groovy.ui.GroovyMain.run(GroovyMain.java:309)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at groovy.ui.GroovyMain.process(GroovyMain.java:295)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at groovy.ui.GroovyMain.processArgs(GroovyMain.java:112)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at groovy.ui.GroovyMain.main(GroovyMain.java:93)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Source)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at java.lang.reflect.Method.invoke(Unknown Source)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; org.codehaus.groovy.tools.GroovyStarter.rootLoader(GroovyStarter.java:108)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; org.codehaus.groovy.tools.GroovyStarter.main(GroovyStarter.java:130)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; 05-Nov-2009 14:45:22 groovyx.net.http.HTTPBuilder doRequest
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; WARNING: Error parsing 'null' response
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; java.lang.IllegalArgumentException: Could not parse content-type from
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; response
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; groovyx.net.http.ParserRegistry.getContentType(ParserRegistry.java:157)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; groovyx.net.http.HTTPBuilder.parseResponse(HTTPBuilder.java:510)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at groovyx.net.http.HTTPBuilder.doRequest(HTTPBuilder.java:460)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at groovyx.net.http.RESTClient.post(RESTClient.java:140)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Source)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at java.lang.reflect.Method.invoke(Unknown Source)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite$PojoCachedMethodSiteNoUnwrapNoCoerce.invoke(PojoMetaMethodSite.java:229)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite.call(PojoMetaMethodSite.java:52)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:40)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:117)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:125)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; com.example.jon.GroovyTest.createWorkspace(GroovyTest.groovy:45)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; com.example.jon.GroovyTest$createWorkspace.callCurrent(Unknown
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Source)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:44)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:143)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:163)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at com.example.jon.GroovyTest.run(GroovyTest.groovy:60)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; groovy.lang.GroovyShell.runScriptOrMainOrTestOrRunnable(GroovyShell.java:256)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at groovy.lang.GroovyShell.run(GroovyShell.java:219)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at groovy.lang.GroovyShell.run(GroovyShell.java:149)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at groovy.ui.GroovyMain.processOnce(GroovyMain.java:494)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at groovy.ui.GroovyMain.run(GroovyMain.java:309)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at groovy.ui.GroovyMain.process(GroovyMain.java:295)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at groovy.ui.GroovyMain.processArgs(GroovyMain.java:112)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at groovy.ui.GroovyMain.main(GroovyMain.java:93)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Source)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at java.lang.reflect.Method.invoke(Unknown Source)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; org.codehaus.groovy.tools.GroovyStarter.rootLoader(GroovyStarter.java:108)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; org.codehaus.groovy.tools.GroovyStarter.main(GroovyStarter.java:130)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Caught: groovyx.net.http.ResponseParseException: Created
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; com.example.jon.GroovyTest.createWorkspace(GroovyTest.groovy:45)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at com.example.jon.GroovyTest.run(GroovyTest.groovy:60)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Tom Nichols wrote:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Hmm interesting.  I was under the assumption that a POST response
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; should include _some_ sort of response body, but maybe that's not
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; technically required by the HTTP spec.  If you can send me the
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; exception stack trace I'm sure I can fix it, but I can't tell you
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; what
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; you yourself can do until you give me some more details.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Better yet, if you can file a JIRA here:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &lt;a href=&quot;http://jira.codehaus.org/browse/GMOD&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://jira.codehaus.org/browse/GMOD&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; that would be super awesome (put the bug under the &amp;quot;HTTPBuilder&amp;quot;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; module).  And If you really want to earn karma points, give enough of
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; an example that I can reproduce the error condition myself :)  I
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; don't
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; konw if GeoServer has an open API, but if they do I can add it to the
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; unit tests.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Thanks.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; -Tom
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; On Thu, Nov 5, 2009 at 9:22 AM, Jon Britton
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;lt;man_kills_everything@hotmail.com&amp;gt; wrote:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Hi,
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; I'm using RESTClient from the HTTP Builder module to send a POST
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; request
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; to
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; GeoServer.  However, the response to my request doesn't contain a
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; content-type or body so I get the following followed by a number of
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; exceptions:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; 05-Nov-2009 14:12:42 groovyx.net.http.ParserRegistry getContentType
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; WARNING: Could not parse content-type header in response
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Followed by exceptions.  How can I get around this?  All I want from
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; the
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; response is the status code, I'm not interested in anything else.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;  My
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; code
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; is shown below.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Thanks,
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Jon
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Code:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; def createWorkspace(def wsName, def geoserverUrl, def user, def
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; pass){
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        // setup the restclient
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        def geoserver = new RESTClient(geoserverUrl)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        // do the authing
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        geoserver.auth.basic user, pass
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        // post it
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        def res = geoserver.post( path: &amp;quot;geoserver/rest/workspaces&amp;quot;,
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;                        requestContentType: XML,
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;                body: &amp;quot;&amp;lt;workspace&amp;gt;&amp;lt;name&amp;gt;${wsName}&amp;lt;/name&amp;gt;&amp;lt;/workspace&amp;gt;&amp;quot;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        )
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; }
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; def code = createWorkspace(&amp;quot;hello&amp;quot;, &amp;quot;&lt;a href=&quot;http://localhost:8080/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://localhost:8080/&lt;/a&gt;&amp;quot;,
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;quot;admin&amp;quot;,
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;quot;geoserver&amp;quot;)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; --
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; View this message in context:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &lt;a href=&quot;http://old.nabble.com/Handling-RESTClient-post%28%29-responses-with-no-content-type-or-body.-tp26215319p26215319.html&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://old.nabble.com/Handling-RESTClient-post%28%29-responses-with-no-content-type-or-body.-tp26215319p26215319.html&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Sent from the groovy - user mailing list archive at Nabble.com.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; ---------------------------------------------------------------------
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; To unsubscribe from this list, please visit:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;    &lt;a href=&quot;http://xircles.codehaus.org/manage_email&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://xircles.codehaus.org/manage_email&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; ---------------------------------------------------------------------
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; To unsubscribe from this list, please visit:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;     &lt;a href=&quot;http://xircles.codehaus.org/manage_email&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://xircles.codehaus.org/manage_email&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; --
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; View this message in context:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &lt;a href=&quot;http://old.nabble.com/Handling-RESTClient-post%28%29-responses-with-no-content-type-or-body.-tp26215319p26215728.html&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://old.nabble.com/Handling-RESTClient-post%28%29-responses-with-no-content-type-or-body.-tp26215319p26215728.html&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Sent from the groovy - user mailing list archive at Nabble.com.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; ---------------------------------------------------------------------
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; To unsubscribe from this list, please visit:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;    &lt;a href=&quot;http://xircles.codehaus.org/manage_email&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://xircles.codehaus.org/manage_email&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; ---------------------------------------------------------------------
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; To unsubscribe from this list, please visit:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;     &lt;a href=&quot;http://xircles.codehaus.org/manage_email&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://xircles.codehaus.org/manage_email&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; --
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; View this message in context:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &lt;a href=&quot;http://old.nabble.com/Handling-RESTClient-post%28%29-responses-with-no-content-type-or-body.-tp26215319p26230809.html&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://old.nabble.com/Handling-RESTClient-post%28%29-responses-with-no-content-type-or-body.-tp26215319p26230809.html&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Sent from the groovy - user mailing list archive at Nabble.com.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; ---------------------------------------------------------------------
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; To unsubscribe from this list, please visit:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;    &lt;a href=&quot;http://xircles.codehaus.org/manage_email&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://xircles.codehaus.org/manage_email&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; ---------------------------------------------------------------------
&lt;br&gt;&amp;gt;&amp;gt; To unsubscribe from this list, please visit:
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;     &lt;a href=&quot;http://xircles.codehaus.org/manage_email&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://xircles.codehaus.org/manage_email&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; --
&lt;br&gt;&amp;gt; View this message in context: &lt;a href=&quot;http://old.nabble.com/Handling-RESTClient-post%28%29-responses-with-no-content-type-or-body.-tp26215319p26284361.html&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://old.nabble.com/Handling-RESTClient-post%28%29-responses-with-no-content-type-or-body.-tp26215319p26284361.html&lt;/a&gt;&lt;br&gt;&amp;gt; Sent from the groovy - user mailing list archive at Nabble.com.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; ---------------------------------------------------------------------
&lt;br&gt;&amp;gt; To unsubscribe from this list, please visit:
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;    &lt;a href=&quot;http://xircles.codehaus.org/manage_email&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://xircles.codehaus.org/manage_email&lt;/a&gt;&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&lt;br&gt;---------------------------------------------------------------------
&lt;br&gt;To unsubscribe from this list, please visit:
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &lt;a href=&quot;http://xircles.codehaus.org/manage_email&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://xircles.codehaus.org/manage_email&lt;/a&gt;&lt;br&gt;&lt;br&gt;&lt;/div&gt;
&lt;/div&gt;&lt;/blockquote&gt;
&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/groovy---user-f11867.html&quot; embed=&quot;fixTarget[11867]&quot; target=&quot;_top&quot; &gt;groovy - user&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Handling-RESTClient-post%28%29-responses-with-no-content-type-or-body.-tp26215319p26287336.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26286275</id>
	<title>Re: as Integer doesn't work with GStringImpl?</title>
	<published>2009-11-10T08:14:31Z</published>
	<updated>2009-11-10T08:14:31Z</updated>
	<author>
		<name>Jochen Theodorou</name>
	</author>
	<content type="html">Tim Yates schrieb:
&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; Hiya, is this JIRA worthy?
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;quot;-1&amp;quot; as Integer
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; returns -1
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; however:
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; a = '-1'
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;quot;$a&amp;quot; as Integer
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; gives
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; org.codehaus.groovy.runtime.typehandling.GroovyCastException: Cannot cast object '-1' with class 'org.codehaus.groovy.runtime.GStringImpl' to class 'java.lang.Integer'
&lt;/div&gt;&lt;br&gt;yes, please fill a JIRA for this
&lt;br&gt;&lt;br&gt;bye blackdrag
&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;Jochen &amp;quot;blackdrag&amp;quot; Theodorou
&lt;br&gt;The Groovy Project Tech Lead (&lt;a href=&quot;http://groovy.codehaus.org&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://groovy.codehaus.org&lt;/a&gt;)
&lt;br&gt;&lt;a href=&quot;http://blackdragsview.blogspot.com/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://blackdragsview.blogspot.com/&lt;/a&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;---------------------------------------------------------------------
&lt;br&gt;To unsubscribe from this list, please visit:
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &lt;a href=&quot;http://xircles.codehaus.org/manage_email&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://xircles.codehaus.org/manage_email&lt;/a&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/groovy---user-f11867.html&quot; embed=&quot;fixTarget[11867]&quot; target=&quot;_top&quot; &gt;groovy - user&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/as-Integer-doesn%27t-work-with-GStringImpl--tp26285678p26286275.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26285832</id>
	<title>Re: Converting COBOL trailing sign numeric to  BigDecimal</title>
	<published>2009-11-10T07:51:51Z</published>
	<updated>2009-11-10T07:51:51Z</updated>
	<author>
		<name>Tim Yates</name>
	</author>
	<content type="html">Sorry...I&amp;#39;d assumed you&amp;#39;d tried the DecimalFormat method and it hadn&amp;#39;t worked...&lt;br&gt;&lt;br&gt;Why not use this:&lt;br&gt;&lt;br&gt;&lt;blockquote style=&quot;border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;&quot; class=&quot;gmail_quote&quot;&gt;

&lt;span style=&quot;font-family: courier new,monospace;&quot; class=&quot;js-keyword&quot;&gt;def &lt;/span&gt;&lt;span style=&quot;font-family: courier new,monospace;&quot; class=&quot;js-variable&quot;&gt;number &lt;/span&gt;&lt;span style=&quot;font-family: courier new,monospace;&quot; class=&quot;js-operator&quot;&gt;= &lt;/span&gt;&lt;span style=&quot;font-family: courier new,monospace;&quot; class=&quot;js-string&quot;&gt;&amp;quot;12345678-&amp;quot;&lt;/span&gt;&lt;br style=&quot;font-family: courier new,monospace;&quot;&gt;

&lt;span style=&quot;font-family: courier new,monospace;&quot; class=&quot;js-keyword&quot;&gt;new &lt;/span&gt;&lt;span style=&quot;font-family: courier new,monospace;&quot; class=&quot;js-variable&quot;&gt;java&lt;/span&gt;&lt;span style=&quot;font-family: courier new,monospace;&quot; class=&quot;js-punctuation&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;font-family: courier new,monospace;&quot; class=&quot;js-variable&quot;&gt;text&lt;/span&gt;&lt;span style=&quot;font-family: courier new,monospace;&quot; class=&quot;js-punctuation&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;font-family: courier new,monospace;&quot; class=&quot;js-variable&quot;&gt;DecimalFormat&lt;/span&gt;&lt;span style=&quot;font-family: courier new,monospace;&quot; class=&quot;js-punctuation&quot;&gt;( &lt;/span&gt;&lt;span style=&quot;font-family: courier new,monospace;&quot; class=&quot;js-string&quot;&gt;&amp;quot;00000000+;00000000-&amp;quot; &lt;/span&gt;&lt;span style=&quot;font-family: courier new,monospace;&quot; class=&quot;js-punctuation&quot;&gt;).&lt;/span&gt;&lt;span style=&quot;font-family: courier new,monospace;&quot; class=&quot;js-variable&quot;&gt;parse&lt;/span&gt;&lt;span style=&quot;font-family: courier new,monospace;&quot; class=&quot;js-punctuation&quot;&gt;( &lt;/span&gt;&lt;span style=&quot;font-family: courier new,monospace;&quot; class=&quot;js-variable&quot;&gt;number &lt;/span&gt;&lt;span style=&quot;font-family: courier new,monospace;&quot; class=&quot;js-punctuation&quot;&gt;) / 100&lt;/span&gt;&lt;br&gt;

&lt;span class=&quot;js-punctuation&quot;&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;span class=&quot;js-punctuation&quot;&gt;&lt;br&gt;And ignore my regexp madness from before...&lt;br&gt;&lt;br&gt;Tim&lt;br&gt;&lt;br&gt;&lt;/span&gt;&lt;br&gt;&lt;div class=&quot;gmail_quote&quot;&gt;On Tue, Nov 10, 2009 at 3:29 PM, Tim Yates &lt;span dir=&quot;ltr&quot;&gt;&amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26285832&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;tim.yates@...&lt;/a&gt;&amp;gt;&lt;/span&gt; wrote:&lt;br&gt;

&lt;blockquote class=&quot;gmail_quote&quot; style=&quot;border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;&quot;&gt;There&amp;#39;s probably a better way, but this works (I think)&lt;br&gt;&lt;br&gt;&lt;div style=&quot;margin-left: 40px;&quot;&gt;

&lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;cobolInt &lt;/span&gt;&lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;= &lt;/span&gt;&lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;&amp;#39;12345678-&amp;#39;&lt;/span&gt;&lt;br style=&quot;font-family: courier new,monospace;&quot;&gt;


&lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;m &lt;/span&gt;&lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;= &lt;/span&gt;&lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;cobolInt &lt;/span&gt;&lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;~ &lt;/span&gt;&lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;([&lt;/span&gt;&lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;9&lt;/span&gt;&lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;]&lt;/span&gt;&lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;+&lt;/span&gt;&lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;)([&lt;/span&gt;&lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;]{&lt;/span&gt;&lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;1&lt;/span&gt;&lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;})&lt;/span&gt;&lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;/&lt;/span&gt;&lt;br style=&quot;font-family: courier new,monospace;&quot;&gt;


&lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;value &lt;/span&gt;&lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;= &lt;/span&gt;&lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;( ( &lt;/span&gt;&lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;m&lt;/span&gt;&lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;][ &lt;/span&gt;&lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;1 &lt;/span&gt;&lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;] &lt;/span&gt;&lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;as &lt;/span&gt;&lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;Integer &lt;/span&gt;&lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;) &lt;/span&gt;&lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;* &lt;/span&gt;&lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;Integer&lt;/span&gt;&lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;parseInt&lt;/span&gt;&lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;( &lt;/span&gt;&lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;&amp;quot;${m[0][2]}1&amp;quot; &lt;/span&gt;&lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;) ) &lt;/span&gt;&lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;/ &lt;/span&gt;&lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;100&lt;/span&gt;&lt;br&gt;


&lt;span&gt;&lt;/span&gt;&lt;/div&gt;&lt;span&gt;&lt;br&gt;Tim&lt;br&gt;&lt;/span&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div class=&quot;h5&quot;&gt;&lt;br&gt;&lt;div class=&quot;gmail_quote&quot;&gt;On Tue, Nov 10, 2009 at 3:19 PM, Spark43502 &lt;span dir=&quot;ltr&quot;&gt;&amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26285832&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;root@...&lt;/a&gt;&amp;gt;&lt;/span&gt; wrote:&lt;br&gt;


&lt;blockquote class=&quot;gmail_quote&quot; style=&quot;border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;&quot;&gt;&lt;br&gt;
How do I convert a COBOL trailing sign numeric to a BigDecimal?&lt;br&gt;
&lt;br&gt;
ie.  trailing sign numeric  = 12345678-&lt;br&gt;
I want to convert this to a BigDecimal with 2 decimal positions =&lt;br&gt;
-123456.78&lt;br&gt;
&lt;br&gt;
I was able to successfully convert from a BigDecimal to COBOL trailing sign&lt;br&gt;
format using NumberFormat and DecimalFormat with the formatting string&lt;br&gt;
&amp;#39;00000000+;00000000-&amp;#39;&lt;br&gt;
&lt;br&gt;&lt;/blockquote&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;/div&gt;&lt;br&gt;
&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/groovy---user-f11867.html&quot; embed=&quot;fixTarget[11867]&quot; target=&quot;_top&quot; &gt;groovy - user&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Converting-COBOL-trailing-sign-numeric-to-BigDecimal-tp26284851p26285832.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26285678</id>
	<title>as Integer doesn't work with GStringImpl?</title>
	<published>2009-11-10T07:43:50Z</published>
	<updated>2009-11-10T07:43:50Z</updated>
	<author>
		<name>Tim Yates</name>
	</author>
	<content type="html">Hiya, is this JIRA worthy?&lt;br&gt;&lt;br&gt;&lt;blockquote style=&quot;border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex; font-family: courier new,monospace;&quot; class=&quot;gmail_quote&quot;&gt;&amp;quot;-1&amp;quot; as Integer&lt;br&gt;

&lt;/blockquote&gt;&lt;br&gt;returns -1&lt;br&gt;&lt;br&gt;however:&lt;br&gt;&lt;br&gt;&lt;blockquote style=&quot;border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex; font-family: courier new,monospace;&quot; class=&quot;gmail_quote&quot;&gt;a = &amp;#39;-1&amp;#39;&lt;br&gt;

&amp;quot;$a&amp;quot; as Integer&lt;br&gt;&lt;/blockquote&gt;&lt;br&gt;gives&lt;br&gt;&lt;blockquote style=&quot;border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;&quot; class=&quot;gmail_quote&quot;&gt;&lt;pre style=&quot;display: block;&quot; id=&quot;stacktrace&quot; class=&quot;border hidden&quot;&gt;

&lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;org.codehaus.groovy.runtime.typehandling.GroovyCastException: Cannot cast object &amp;#39;-1&amp;#39; with class &amp;#39;org.codehaus.groovy.runtime.GStringImpl&amp;#39; to class &amp;#39;java.lang.Integer&amp;#39;&lt;/span&gt;&lt;br style=&quot;font-family: courier new,monospace;&quot;&gt;

&lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;	at Script1.run(Script1.groovy:2)&lt;/span&gt;&lt;br&gt;&lt;/pre&gt;&lt;/blockquote&gt;But you can do it with:&lt;br&gt;&lt;br&gt;&lt;blockquote style=&quot;border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex; font-family: courier new,monospace;&quot; class=&quot;gmail_quote&quot;&gt;

a = &amp;#39;-1&amp;#39;&lt;br&gt;
( &amp;quot;$a&amp;quot; as String ) as Integer&lt;br&gt;&lt;/blockquote&gt;
&lt;br&gt;Tim&lt;br&gt;
&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/groovy---user-f11867.html&quot; embed=&quot;fixTarget[11867]&quot; target=&quot;_top&quot; &gt;groovy - user&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/as-Integer-doesn%27t-work-with-GStringImpl--tp26285678p26285678.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26285436</id>
	<title>Re: Converting COBOL trailing sign numeric to  BigDecimal</title>
	<published>2009-11-10T07:29:50Z</published>
	<updated>2009-11-10T07:29:50Z</updated>
	<author>
		<name>Tim Yates</name>
	</author>
	<content type="html">There&amp;#39;s probably a better way, but this works (I think)&lt;br&gt;&lt;br&gt;&lt;div style=&quot;margin-left: 40px;&quot;&gt;&lt;span style=&quot;font-family: courier new,monospace;&quot; class=&quot;js-variable&quot;&gt;cobolInt &lt;/span&gt;&lt;span style=&quot;font-family: courier new,monospace;&quot; class=&quot;js-operator&quot;&gt;= &lt;/span&gt;&lt;span style=&quot;font-family: courier new,monospace;&quot; class=&quot;js-string&quot;&gt;&amp;#39;12345678-&amp;#39;&lt;/span&gt;&lt;br style=&quot;font-family: courier new,monospace;&quot;&gt;

&lt;span style=&quot;font-family: courier new,monospace;&quot; class=&quot;js-variable&quot;&gt;m &lt;/span&gt;&lt;span style=&quot;font-family: courier new,monospace;&quot; class=&quot;js-operator&quot;&gt;= &lt;/span&gt;&lt;span style=&quot;font-family: courier new,monospace;&quot; class=&quot;js-variable&quot;&gt;cobolInt &lt;/span&gt;&lt;span style=&quot;font-family: courier new,monospace;&quot; class=&quot;js-operator&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;font-family: courier new,monospace;&quot; class=&quot;js-variable&quot;&gt;~ &lt;/span&gt;&lt;span style=&quot;font-family: courier new,monospace;&quot; class=&quot;js-operator&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;font-family: courier new,monospace;&quot; class=&quot;js-punctuation&quot;&gt;([&lt;/span&gt;&lt;span style=&quot;font-family: courier new,monospace;&quot; class=&quot;js-atom&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;font-family: courier new,monospace;&quot; class=&quot;js-operator&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;font-family: courier new,monospace;&quot; class=&quot;js-atom&quot;&gt;9&lt;/span&gt;&lt;span style=&quot;font-family: courier new,monospace;&quot; class=&quot;js-punctuation&quot;&gt;]&lt;/span&gt;&lt;span style=&quot;font-family: courier new,monospace;&quot; class=&quot;js-operator&quot;&gt;+&lt;/span&gt;&lt;span style=&quot;font-family: courier new,monospace;&quot; class=&quot;js-punctuation&quot;&gt;)([&lt;/span&gt;&lt;span style=&quot;font-family: courier new,monospace;&quot; class=&quot;js-operator&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;font-family: courier new,monospace;&quot; class=&quot;js-punctuation&quot;&gt;]{&lt;/span&gt;&lt;span style=&quot;font-family: courier new,monospace;&quot; class=&quot;js-atom&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;font-family: courier new,monospace;&quot; class=&quot;js-punctuation&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;font-family: courier new,monospace;&quot; class=&quot;js-atom&quot;&gt;1&lt;/span&gt;&lt;span style=&quot;font-family: courier new,monospace;&quot; class=&quot;js-punctuation&quot;&gt;})&lt;/span&gt;&lt;span style=&quot;font-family: courier new,monospace;&quot; class=&quot;js-operator&quot;&gt;/&lt;/span&gt;&lt;br style=&quot;font-family: courier new,monospace;&quot;&gt;

&lt;span style=&quot;font-family: courier new,monospace;&quot; class=&quot;js-variable&quot;&gt;value &lt;/span&gt;&lt;span style=&quot;font-family: courier new,monospace;&quot; class=&quot;js-operator&quot;&gt;= &lt;/span&gt;&lt;span style=&quot;font-family: courier new,monospace;&quot; class=&quot;js-punctuation&quot;&gt;( ( &lt;/span&gt;&lt;span style=&quot;font-family: courier new,monospace;&quot; class=&quot;js-variable&quot;&gt;m&lt;/span&gt;&lt;span style=&quot;font-family: courier new,monospace;&quot; class=&quot;js-punctuation&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;font-family: courier new,monospace;&quot; class=&quot;js-atom&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;font-family: courier new,monospace;&quot; class=&quot;js-punctuation&quot;&gt;][ &lt;/span&gt;&lt;span style=&quot;font-family: courier new,monospace;&quot; class=&quot;js-atom&quot;&gt;1 &lt;/span&gt;&lt;span style=&quot;font-family: courier new,monospace;&quot; class=&quot;js-punctuation&quot;&gt;] &lt;/span&gt;&lt;span style=&quot;font-family: courier new,monospace;&quot; class=&quot;js-keyword&quot;&gt;as &lt;/span&gt;&lt;span style=&quot;font-family: courier new,monospace;&quot; class=&quot;js-variable&quot;&gt;Integer &lt;/span&gt;&lt;span style=&quot;font-family: courier new,monospace;&quot; class=&quot;js-punctuation&quot;&gt;) &lt;/span&gt;&lt;span style=&quot;font-family: courier new,monospace;&quot; class=&quot;js-operator&quot;&gt;* &lt;/span&gt;&lt;span style=&quot;font-family: courier new,monospace;&quot; class=&quot;js-variable&quot;&gt;Integer&lt;/span&gt;&lt;span style=&quot;font-family: courier new,monospace;&quot; class=&quot;js-punctuation&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;font-family: courier new,monospace;&quot; class=&quot;js-variable&quot;&gt;parseInt&lt;/span&gt;&lt;span style=&quot;font-family: courier new,monospace;&quot; class=&quot;js-punctuation&quot;&gt;( &lt;/span&gt;&lt;span style=&quot;font-family: courier new,monospace;&quot; class=&quot;js-string&quot;&gt;&amp;quot;${m[0][2]}1&amp;quot; &lt;/span&gt;&lt;span style=&quot;font-family: courier new,monospace;&quot; class=&quot;js-punctuation&quot;&gt;) ) &lt;/span&gt;&lt;span style=&quot;font-family: courier new,monospace;&quot; class=&quot;js-operator&quot;&gt;/ &lt;/span&gt;&lt;span style=&quot;font-family: courier new,monospace;&quot; class=&quot;js-atom&quot;&gt;100&lt;/span&gt;&lt;br&gt;

&lt;span class=&quot;js-atom&quot;&gt;&lt;/span&gt;&lt;/div&gt;&lt;span class=&quot;js-atom&quot;&gt;&lt;br&gt;Tim&lt;br&gt;&lt;/span&gt;&lt;br&gt;&lt;div class=&quot;gmail_quote&quot;&gt;On Tue, Nov 10, 2009 at 3:19 PM, Spark43502 &lt;span dir=&quot;ltr&quot;&gt;&amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26285436&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;root@...&lt;/a&gt;&amp;gt;&lt;/span&gt; wrote:&lt;br&gt;

&lt;blockquote class=&quot;gmail_quote&quot; style=&quot;border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;&quot;&gt;&lt;br&gt;
How do I convert a COBOL trailing sign numeric to a BigDecimal?&lt;br&gt;
&lt;br&gt;
ie.  trailing sign numeric  = 12345678-&lt;br&gt;
I want to convert this to a BigDecimal with 2 decimal positions =&lt;br&gt;
-123456.78&lt;br&gt;
&lt;br&gt;
I was able to successfully convert from a BigDecimal to COBOL trailing sign&lt;br&gt;
format using NumberFormat and DecimalFormat with the formatting string&lt;br&gt;
&amp;#39;00000000+;00000000-&amp;#39;&lt;br&gt;
&lt;br&gt;
--&lt;br&gt;
View this message in context: &lt;a href=&quot;http://old.nabble.com/Converting-COBOL-trailing-sign-numeric-to-BigDecimal-tp26284851p26284851.html&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot;&gt;http://old.nabble.com/Converting-COBOL-trailing-sign-numeric-to-BigDecimal-tp26284851p26284851.html&lt;/a&gt;&lt;br&gt;


Sent from the groovy - user mailing list archive at Nabble.com.&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
---------------------------------------------------------------------&lt;br&gt;
To unsubscribe from this list, please visit:&lt;br&gt;
&lt;br&gt;
    &lt;a href=&quot;http://xircles.codehaus.org/manage_email&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot;&gt;http://xircles.codehaus.org/manage_email&lt;/a&gt;&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;/blockquote&gt;&lt;/div&gt;&lt;br&gt;
&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/groovy---user-f11867.html&quot; embed=&quot;fixTarget[11867]&quot; target=&quot;_top&quot; &gt;groovy - user&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Converting-COBOL-trailing-sign-numeric-to-BigDecimal-tp26284851p26285436.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26284851</id>
	<title>Converting COBOL trailing sign numeric to BigDecimal</title>
	<published>2009-11-10T07:19:02Z</published>
	<updated>2009-11-10T07:19:02Z</updated>
	<author>
		<name>Spark43502</name>
	</author>
	<content type="html">How do I convert a COBOL trailing sign numeric to a BigDecimal?
&lt;br&gt;&lt;br&gt;ie. &amp;nbsp;trailing sign numeric &amp;nbsp;= 12345678-
&lt;br&gt;I want to convert this to a BigDecimal with 2 decimal positions = &amp;nbsp;-123456.78
&lt;br&gt;&lt;br&gt;I was able to successfully convert from a BigDecimal to COBOL trailing sign format using NumberFormat and DecimalFormat with the formatting string '00000000+;00000000-'
&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/groovy---user-f11867.html&quot; embed=&quot;fixTarget[11867]&quot; target=&quot;_top&quot; &gt;groovy - user&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Converting-COBOL-trailing-sign-numeric-to-BigDecimal-tp26284851p26284851.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26285051</id>
	<title>Re: Handling RESTClient post() responses with no  content-type or body.</title>
	<published>2009-11-10T07:09:31Z</published>
	<updated>2009-11-10T07:09:31Z</updated>
	<author>
		<name>Tom Nichols</name>
	</author>
	<content type="html">Hi Jon,
&lt;br&gt;&lt;br&gt;Are you sure you got an updated snapshot? &amp;nbsp;It was published on Nov
&lt;br&gt;6th. &amp;nbsp;You can get the timestamped version of the JAR here:
&lt;br&gt;&lt;a href=&quot;http://snapshots.repository.codehaus.org/org/codehaus/groovy/modules/http-builder/http-builder/0.5.0-SNAPSHOT/http-builder-0.5.0-20091107.042829-12.jar&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://snapshots.repository.codehaus.org/org/codehaus/groovy/modules/http-builder/http-builder/0.5.0-SNAPSHOT/http-builder-0.5.0-20091107.042829-12.jar&lt;/a&gt;&lt;br&gt;&lt;br&gt;I'm surprised that you'd see _no_ change in the behavior. &amp;nbsp;Although
&lt;br&gt;part of the problem is I'm trying to fix this &amp;quot;blind,&amp;quot; so to speak,
&lt;br&gt;without being able to reproduce it myself. &amp;nbsp;Can you point me to a
&lt;br&gt;public GeoServer instance, or your dev server which I can use to test
&lt;br&gt;things while I develop the fix? &amp;nbsp;I'm certain this is not just
&lt;br&gt;GeoServer's fault. &amp;nbsp;While uncommon, it's not a requirement for a
&lt;br&gt;response to contain a body. &amp;nbsp;Therefore RESTClient should be able to
&lt;br&gt;handle the case and I'm more than willing to work with you to get it
&lt;br&gt;fixed in the HTTPBuilder code.
&lt;br&gt;&lt;br&gt;Can you please also verify that the exception stack trace is
&lt;br&gt;identical, once you've verified that you're using an updated snapshot?
&lt;br&gt;&amp;nbsp;Thanks.
&lt;br&gt;&lt;br&gt;-Tom
&lt;br&gt;&lt;br&gt;On Tue, Nov 10, 2009 at 9:29 AM, Jon Britton
&lt;br&gt;&amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26285051&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;man_kills_everything@...&lt;/a&gt;&amp;gt; wrote:
&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Hi Tom,
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; I've just tried again with 0.5.0-SNAPSHOT and my original code (the
&lt;br&gt;&amp;gt; RESTClient one) and I'm still getting the same exceptions
&lt;br&gt;&amp;gt; (NullPointerException, IllegalArgumentException and ResponseParseException).
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Again, here is the code I'm using:
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; def createWorkspace(workspace, geoserverUrl, user, pass){
&lt;br&gt;&amp;gt;        // setup the restclient
&lt;br&gt;&amp;gt;        def geoserver = new RESTClient(geoserverUrl)
&lt;br&gt;&amp;gt;        // do the authing
&lt;br&gt;&amp;gt;        geoserver.auth.basic user, pass
&lt;br&gt;&amp;gt;        // post it
&lt;br&gt;&amp;gt;        def res = geoserver.post( path: &amp;quot;/geoserver/rest/workspaces&amp;quot;,
&lt;br&gt;&amp;gt;                        requestContentType: XML,
&lt;br&gt;&amp;gt;                body: &amp;quot;&amp;lt;workspace&amp;gt;&amp;lt;name&amp;gt;${workspace}&amp;lt;/name&amp;gt;&amp;lt;/workspace&amp;gt;&amp;quot;
&lt;br&gt;&amp;gt;        ).getStatus()
&lt;br&gt;&amp;gt; }
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; I guess this is all GeoServers fault?
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Jon
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Tom Nichols wrote:
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Hi Jon,
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; I just deployed a new 0.5.0-SNAPSHOT release; this should fix the
&lt;br&gt;&amp;gt;&amp;gt; empty response body issue.  For RESTClient responses, response.data
&lt;br&gt;&amp;gt;&amp;gt; should simply be null.  But all header/ response code information
&lt;br&gt;&amp;gt;&amp;gt; should be readily available.  Please give it a try and let me know
&lt;br&gt;&amp;gt;&amp;gt; what you find.
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Thanks.
&lt;br&gt;&amp;gt;&amp;gt; -Tom
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; On Fri, Nov 6, 2009 at 11:11 AM, Tom Nichols &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26285051&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;tmnichols@...&lt;/a&gt;&amp;gt; wrote:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; hmm, I'm not sure what to tell you; I just copied your example into a
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; Groovy console and ran it, and I didn't get the MissingMethodException
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; that you're seeing there, using 0.5.0-RC2.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; Try this variation:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; def http = new groovyx.net.http.HTTPBuilder(
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;quot;&lt;a href=&quot;http://localhost:8080/geoserver/rest/workspaces&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://localhost:8080/geoserver/rest/workspaces&lt;/a&gt;&amp;quot; )
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; http.handler.SUCCESS = { return it }
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; def response = http.post( headers:['Content-Type': 'text/xml'],
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;    body: &amp;quot;&amp;lt;workspace&amp;gt;&amp;lt;name&amp;gt;bob&amp;lt;/name&amp;gt;&amp;lt;/workspace&amp;gt;&amp;quot; )
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; assert response.status == 201
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; 2009/11/6 Jon Britton &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26285051&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;man_kills_everything@...&lt;/a&gt;&amp;gt;:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Hi again, I'm just trying your example without using RESTClient but it
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; doesn't work. My code is below, followed by the error I receive.  What's
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; could be causing this?
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Thanks,
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Jon
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; CODE:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; def createWorkspace(def wsName, def geoserverUrl, def user, def pass){
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        def http = new HTTPBuilder(
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;quot;${geoserverUrl}/geoserver/rest/workspaces&amp;quot; )
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        http.handler.SUCCESS = { return it }
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        def response = http.request( POST, XML ) {
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;                body = &amp;quot;&amp;lt;workspace&amp;gt;&amp;lt;name&amp;gt;${wsName}&amp;lt;/name&amp;gt;&amp;lt;/workspace&amp;gt;&amp;quot;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        }
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        assert response.status == 201
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; }
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; //Call method
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; def code = createWorkspace(&amp;quot;hello1&amp;quot;,
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;quot;&lt;a href=&quot;http://admin:geoserver@localhost:8080/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://admin:geoserver@localhost:8080/&lt;/a&gt;&amp;quot;, &amp;quot;admin&amp;quot;, &amp;quot;geoserver&amp;quot;)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; OUTPUT:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Caught: groovy.lang.MissingMethodException: No signature of method:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; groovyx.net.http.HTTPBuilder.request() is applicable
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;  for argument types: (groovyx.net.http.Method,
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; groovyx.net.http.ContentType,
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; uk.ac.glam.rest.GroovyTest$_createWorkspace
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; _closure2) values: [POST, application/xml,
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; uk.ac.glam.rest.GroovyTest$_createWorkspace_closure2@2fb002]
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; uk.ac.glam.rest.GroovyTest.createWorkspace(GroovyTest.groovy:54)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at uk.ac.glam.rest.GroovyTest.run(GroovyTest.groovy:70)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Tom Nichols wrote:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Nope, you're right; in that case, the response object should be
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; available, and the 'data' property (which is the parsed response body)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; should just be null.  Definitely a bug.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; However, after looking at the stack trace, I don't think you should be
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; getting an NPE but an IllegalArgumentException (this is still
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; erroneous in the case of RESTClient, but it's due to RESTClient's
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; underlying use of HTTPBuilder).  What version of HTTPBuilder are you
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; using?
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; In either case, the bug still stands; I'll start working on it
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; soon-ish.  You can work around it for now by using the HTTPBuilder
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; class directly, which other than being slightly more verbose can do
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; the exact thing you're doing with RESTClient.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; import static groovyx.net.http.Method.POST
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; import static groovyx.net.http.ContentType.XML
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; def http = new HTTPBuilder(
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; '&lt;a href=&quot;http://admin:geoserver@localhost:8080/geoserver/rest/workspaces'&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://admin:geoserver@localhost:8080/geoserver/rest/workspaces'&lt;/a&gt;&amp;nbsp;)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; http.handler.SUCCESS = { return it }
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; def response = http.request( POST, XML ) {
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;   body = '&amp;lt;workspace&amp;gt;&amp;lt;name&amp;gt;dwins&amp;lt;/name&amp;gt;&amp;lt;/workspace&amp;gt;'
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; }
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; assert response.status == 201
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Let me know if you have any trouble with the above example.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; -Tom
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; On Thu, Nov 5, 2009 at 9:45 AM, Jon Britton
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26285051&amp;i=3&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;man_kills_everything@...&lt;/a&gt;&amp;gt; wrote:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Sorry, forgot the full stack trace:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; 05-Nov-2009 14:45:22 groovyx.net.http.ParserRegistry getContentType
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; WARNING: Could not parse content-type header in response
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; java.lang.NullPointerException
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; groovyx.net.http.ParserRegistry.getContentType(ParserRegistry.java:153)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; groovyx.net.http.HTTPBuilder.parseResponse(HTTPBuilder.java:510)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at groovyx.net.http.HTTPBuilder.doRequest(HTTPBuilder.java:460)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at groovyx.net.http.RESTClient.post(RESTClient.java:140)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Source)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at java.lang.reflect.Method.invoke(Unknown Source)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite$PojoCachedMethodSiteNoUnwrapNoCoerce.invoke(PojoMetaMethodSite.java:229)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite.call(PojoMetaMethodSite.java:52)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:40)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:117)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:125)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; com.example.jon.GroovyTest.createWorkspace(GroovyTest.groovy:45)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; com.example.jon.GroovyTest$createWorkspace.callCurrent(Unknown
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Source)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:44)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:143)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:163)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at com.example.jon.GroovyTest.run(GroovyTest.groovy:60)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; groovy.lang.GroovyShell.runScriptOrMainOrTestOrRunnable(GroovyShell.java:256)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at groovy.lang.GroovyShell.run(GroovyShell.java:219)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at groovy.lang.GroovyShell.run(GroovyShell.java:149)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at groovy.ui.GroovyMain.processOnce(GroovyMain.java:494)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at groovy.ui.GroovyMain.run(GroovyMain.java:309)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at groovy.ui.GroovyMain.process(GroovyMain.java:295)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at groovy.ui.GroovyMain.processArgs(GroovyMain.java:112)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at groovy.ui.GroovyMain.main(GroovyMain.java:93)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Source)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at java.lang.reflect.Method.invoke(Unknown Source)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; org.codehaus.groovy.tools.GroovyStarter.rootLoader(GroovyStarter.java:108)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; org.codehaus.groovy.tools.GroovyStarter.main(GroovyStarter.java:130)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; 05-Nov-2009 14:45:22 groovyx.net.http.HTTPBuilder doRequest
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; WARNING: Error parsing 'null' response
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; java.lang.IllegalArgumentException: Could not parse content-type from
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; response
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; groovyx.net.http.ParserRegistry.getContentType(ParserRegistry.java:157)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; groovyx.net.http.HTTPBuilder.parseResponse(HTTPBuilder.java:510)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at groovyx.net.http.HTTPBuilder.doRequest(HTTPBuilder.java:460)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at groovyx.net.http.RESTClient.post(RESTClient.java:140)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Source)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at java.lang.reflect.Method.invoke(Unknown Source)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite$PojoCachedMethodSiteNoUnwrapNoCoerce.invoke(PojoMetaMethodSite.java:229)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite.call(PojoMetaMethodSite.java:52)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:40)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:117)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:125)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; com.example.jon.GroovyTest.createWorkspace(GroovyTest.groovy:45)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; com.example.jon.GroovyTest$createWorkspace.callCurrent(Unknown
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Source)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:44)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:143)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:163)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at com.example.jon.GroovyTest.run(GroovyTest.groovy:60)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; groovy.lang.GroovyShell.runScriptOrMainOrTestOrRunnable(GroovyShell.java:256)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at groovy.lang.GroovyShell.run(GroovyShell.java:219)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at groovy.lang.GroovyShell.run(GroovyShell.java:149)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at groovy.ui.GroovyMain.processOnce(GroovyMain.java:494)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at groovy.ui.GroovyMain.run(GroovyMain.java:309)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at groovy.ui.GroovyMain.process(GroovyMain.java:295)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at groovy.ui.GroovyMain.processArgs(GroovyMain.java:112)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at groovy.ui.GroovyMain.main(GroovyMain.java:93)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Source)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at java.lang.reflect.Method.invoke(Unknown Source)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; org.codehaus.groovy.tools.GroovyStarter.rootLoader(GroovyStarter.java:108)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; org.codehaus.groovy.tools.GroovyStarter.main(GroovyStarter.java:130)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Caught: groovyx.net.http.ResponseParseException: Created
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; com.example.jon.GroovyTest.createWorkspace(GroovyTest.groovy:45)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at com.example.jon.GroovyTest.run(GroovyTest.groovy:60)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Tom Nichols wrote:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Hmm interesting.  I was under the assumption that a POST response
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; should include _some_ sort of response body, but maybe that's not
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; technically required by the HTTP spec.  If you can send me the
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; exception stack trace I'm sure I can fix it, but I can't tell you
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; what
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; you yourself can do until you give me some more details.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Better yet, if you can file a JIRA here:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &lt;a href=&quot;http://jira.codehaus.org/browse/GMOD&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://jira.codehaus.org/browse/GMOD&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; that would be super awesome (put the bug under the &amp;quot;HTTPBuilder&amp;quot;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; module).  And If you really want to earn karma points, give enough of
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; an example that I can reproduce the error condition myself :)  I
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; don't
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; konw if GeoServer has an open API, but if they do I can add it to the
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; unit tests.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Thanks.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; -Tom
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; On Thu, Nov 5, 2009 at 9:22 AM, Jon Britton
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26285051&amp;i=4&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;man_kills_everything@...&lt;/a&gt;&amp;gt; wrote:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Hi,
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; I'm using RESTClient from the HTTP Builder module to send a POST
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; request
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; to
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; GeoServer.  However, the response to my request doesn't contain a
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; content-type or body so I get the following followed by a number of
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; exceptions:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; 05-Nov-2009 14:12:42 groovyx.net.http.ParserRegistry getContentType
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; WARNING: Could not parse content-type header in response
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Followed by exceptions.  How can I get around this?  All I want from
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; the
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; response is the status code, I'm not interested in anything else.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;  My
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; code
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; is shown below.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Thanks,
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Jon
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Code:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; def createWorkspace(def wsName, def geoserverUrl, def user, def
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; pass){
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        // setup the restclient
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        def geoserver = new RESTClient(geoserverUrl)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        // do the authing
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        geoserver.auth.basic user, pass
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        // post it
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        def res = geoserver.post( path: &amp;quot;geoserver/rest/workspaces&amp;quot;,
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;                        requestContentType: XML,
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;                body: &amp;quot;&amp;lt;workspace&amp;gt;&amp;lt;name&amp;gt;${wsName}&amp;lt;/name&amp;gt;&amp;lt;/workspace&amp;gt;&amp;quot;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        )
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; }
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; def code = createWorkspace(&amp;quot;hello&amp;quot;, &amp;quot;&lt;a href=&quot;http://localhost:8080/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://localhost:8080/&lt;/a&gt;&amp;quot;,
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;quot;admin&amp;quot;,
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;quot;geoserver&amp;quot;)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; --
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; View this message in context:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &lt;a href=&quot;http://old.nabble.com/Handling-RESTClient-post%28%29-responses-with-no-content-type-or-body.-tp26215319p26215319.html&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://old.nabble.com/Handling-RESTClient-post%28%29-responses-with-no-content-type-or-body.-tp26215319p26215319.html&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Sent from the groovy - user mailing list archive at Nabble.com.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; ---------------------------------------------------------------------
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; To unsubscribe from this list, please visit:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;    &lt;a href=&quot;http://xircles.codehaus.org/manage_email&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://xircles.codehaus.org/manage_email&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; ---------------------------------------------------------------------
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; To unsubscribe from this list, please visit:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;     &lt;a href=&quot;http://xircles.codehaus.org/manage_email&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://xircles.codehaus.org/manage_email&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; --
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; View this message in context:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &lt;a href=&quot;http://old.nabble.com/Handling-RESTClient-post%28%29-responses-with-no-content-type-or-body.-tp26215319p26215728.html&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://old.nabble.com/Handling-RESTClient-post%28%29-responses-with-no-content-type-or-body.-tp26215319p26215728.html&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Sent from the groovy - user mailing list archive at Nabble.com.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; ---------------------------------------------------------------------
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; To unsubscribe from this list, please visit:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;    &lt;a href=&quot;http://xircles.codehaus.org/manage_email&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://xircles.codehaus.org/manage_email&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; ---------------------------------------------------------------------
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; To unsubscribe from this list, please visit:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;     &lt;a href=&quot;http://xircles.codehaus.org/manage_email&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://xircles.codehaus.org/manage_email&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; --
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; View this message in context:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &lt;a href=&quot;http://old.nabble.com/Handling-RESTClient-post%28%29-responses-with-no-content-type-or-body.-tp26215319p26230809.html&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://old.nabble.com/Handling-RESTClient-post%28%29-responses-with-no-content-type-or-body.-tp26215319p26230809.html&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Sent from the groovy - user mailing list archive at Nabble.com.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; ---------------------------------------------------------------------
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; To unsubscribe from this list, please visit:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;    &lt;a href=&quot;http://xircles.codehaus.org/manage_email&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://xircles.codehaus.org/manage_email&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; ---------------------------------------------------------------------
&lt;br&gt;&amp;gt;&amp;gt; To unsubscribe from this list, please visit:
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;     &lt;a href=&quot;http://xircles.codehaus.org/manage_email&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://xircles.codehaus.org/manage_email&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; --
&lt;br&gt;&amp;gt; View this message in context: &lt;a href=&quot;http://old.nabble.com/Handling-RESTClient-post%28%29-responses-with-no-content-type-or-body.-tp26215319p26284361.html&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://old.nabble.com/Handling-RESTClient-post%28%29-responses-with-no-content-type-or-body.-tp26215319p26284361.html&lt;/a&gt;&lt;br&gt;&amp;gt; Sent from the groovy - user mailing list archive at Nabble.com.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; ---------------------------------------------------------------------
&lt;br&gt;&amp;gt; To unsubscribe from this list, please visit:
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;    &lt;a href=&quot;http://xircles.codehaus.org/manage_email&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://xircles.codehaus.org/manage_email&lt;/a&gt;&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;/div&gt;&lt;br&gt;---------------------------------------------------------------------
&lt;br&gt;To unsubscribe from this list, please visit:
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &lt;a href=&quot;http://xircles.codehaus.org/manage_email&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://xircles.codehaus.org/manage_email&lt;/a&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/groovy---user-f11867.html&quot; embed=&quot;fixTarget[11867]&quot; target=&quot;_top&quot; &gt;groovy - user&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Handling-RESTClient-post%28%29-responses-with-no-content-type-or-body.-tp26215319p26285051.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26284713</id>
	<title>Re: On static compilation of Groovy</title>
	<published>2009-11-10T06:50:46Z</published>
	<updated>2009-11-10T06:50:46Z</updated>
	<author>
		<name>Jochen Theodorou</name>
	</author>
	<content type="html">Michael Baehr schrieb:
&lt;br&gt;&amp;gt; This reminds me of the discussion about having a joint compiler for
&lt;br&gt;&amp;gt; Java and Groovy.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; All the Groovy bigger heads were totally against it (do a search and
&lt;br&gt;&amp;gt; you will find a similar list of threads), 'til somebody by the name
&lt;br&gt;&amp;gt; Alex Tkachman just created one - and since then the project leads
&lt;br&gt;&amp;gt; declared it as the best thing since sliced bread.
&lt;br&gt;&lt;br&gt;I was not against a joint compiler, I just had another idea of how to do 
&lt;br&gt;it, because the current joint compiler cannot compile all cases. I 
&lt;br&gt;suggested for example that using the eclipse compiler might be an 
&lt;br&gt;option. But because Alex just did that the joint compiler proofed to 
&lt;br&gt;handle enough cases after some problematic cases has been resolved.
&lt;br&gt;&lt;br&gt;Currently transforms are the biggest problem for the joint compiler. And 
&lt;br&gt;not all of these problems can be resolved with the joint compiler 
&lt;br&gt;because of its nature. I still think the eclipse compiler might be a 
&lt;br&gt;better solution in the end.
&lt;br&gt;&lt;br&gt;&amp;gt; So Alex, just go for it - there are obviously enough people who would
&lt;br&gt;&amp;gt; want to have something like that.
&lt;br&gt;&lt;br&gt;I always said that this is possible as transform. If Alex wants to write 
&lt;br&gt;one, then he should do. Just if that then goes in groovy-core is a 
&lt;br&gt;different thing. If Alex wants to makes a project/module for it and 
&lt;br&gt;maintains it, then I sure would say this is good. From my experience 
&lt;br&gt;Alex has not enough time to maintain something like that, so it should 
&lt;br&gt;be more than only him. How about all the people that think that such a 
&lt;br&gt;transform would be a good idea help Alex in developing something like that?
&lt;br&gt;&lt;br&gt;bye blackdrag
&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;Jochen &amp;quot;blackdrag&amp;quot; Theodorou
&lt;br&gt;The Groovy Project Tech Lead (&lt;a href=&quot;http://groovy.codehaus.org&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://groovy.codehaus.org&lt;/a&gt;)
&lt;br&gt;&lt;a href=&quot;http://blackdragsview.blogspot.com/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://blackdragsview.blogspot.com/&lt;/a&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;---------------------------------------------------------------------
&lt;br&gt;To unsubscribe from this list, please visit:
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &lt;a href=&quot;http://xircles.codehaus.org/manage_email&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://xircles.codehaus.org/manage_email&lt;/a&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/groovy---user-f11867.html&quot; embed=&quot;fixTarget[11867]&quot; target=&quot;_top&quot; &gt;groovy - user&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/On-static-compilation-of-Groovy-tp26269191p26284713.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26284361</id>
	<title>Re: Handling RESTClient post() responses with no  content-type or body.</title>
	<published>2009-11-10T06:29:08Z</published>
	<updated>2009-11-10T06:29:08Z</updated>
	<author>
		<name>Jon Britton</name>
	</author>
	<content type="html">Hi Tom,
&lt;br&gt;&lt;br&gt;I've just tried again with 0.5.0-SNAPSHOT and my original code (the RESTClient one) and I'm still getting the same exceptions (NullPointerException, IllegalArgumentException and ResponseParseException).
&lt;br&gt;&lt;br&gt;Again, here is the code I'm using:
&lt;br&gt;&lt;br&gt;def createWorkspace(workspace, geoserverUrl, user, pass){
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // setup the restclient
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; def geoserver = new RESTClient(geoserverUrl)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // do the authing
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; geoserver.auth.basic user, pass
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // post it
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; def res = geoserver.post( path: &amp;quot;/geoserver/rest/workspaces&amp;quot;,
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; requestContentType: XML,
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; body: &amp;quot;&amp;lt;workspace&amp;gt;&amp;lt;name&amp;gt;${workspace}&amp;lt;/name&amp;gt;&amp;lt;/workspace&amp;gt;&amp;quot;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ).getStatus()
&lt;br&gt;}
&lt;br&gt;&lt;br&gt;I guess this is all GeoServers fault?
&lt;br&gt;&lt;br&gt;Jon
&lt;br&gt;&lt;br&gt;&lt;blockquote class=&quot;quote light-black dark-border-color&quot;&gt;&lt;div class=&quot;quote light-border-color&quot;&gt;
&lt;div class=&quot;quote-author&quot; style=&quot;font-weight: bold;&quot;&gt;Tom Nichols wrote:&lt;/div&gt;
&lt;div class=&quot;quote-message shrinkable-quote&quot;&gt;Hi Jon,
&lt;br&gt;&lt;br&gt;I just deployed a new 0.5.0-SNAPSHOT release; this should fix the
&lt;br&gt;empty response body issue. &amp;nbsp;For RESTClient responses, response.data
&lt;br&gt;should simply be null. &amp;nbsp;But all header/ response code information
&lt;br&gt;should be readily available. &amp;nbsp;Please give it a try and let me know
&lt;br&gt;what you find.
&lt;br&gt;&lt;br&gt;Thanks.
&lt;br&gt;-Tom
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;On Fri, Nov 6, 2009 at 11:11 AM, Tom Nichols &amp;lt;tmnichols@gmail.com&amp;gt; wrote:
&lt;br&gt;&amp;gt; hmm, I'm not sure what to tell you; I just copied your example into a
&lt;br&gt;&amp;gt; Groovy console and ran it, and I didn't get the MissingMethodException
&lt;br&gt;&amp;gt; that you're seeing there, using 0.5.0-RC2.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Try this variation:
&lt;br&gt;&amp;gt; def http = new groovyx.net.http.HTTPBuilder(
&lt;br&gt;&amp;gt; &amp;quot;&lt;a href=&quot;http://localhost:8080/geoserver/rest/workspaces&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://localhost:8080/geoserver/rest/workspaces&lt;/a&gt;&amp;quot; )
&lt;br&gt;&amp;gt; http.handler.SUCCESS = { return it }
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; def response = http.post( headers:['Content-Type': 'text/xml'],
&lt;br&gt;&amp;gt;    body: &amp;quot;&amp;lt;workspace&amp;gt;&amp;lt;name&amp;gt;bob&amp;lt;/name&amp;gt;&amp;lt;/workspace&amp;gt;&amp;quot; )
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; assert response.status == 201
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; 2009/11/6 Jon Britton &amp;lt;man_kills_everything@hotmail.com&amp;gt;:
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Hi again, I'm just trying your example without using RESTClient but it
&lt;br&gt;&amp;gt;&amp;gt; doesn't work. My code is below, followed by the error I receive.  What's
&lt;br&gt;&amp;gt;&amp;gt; could be causing this?
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Thanks,
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Jon
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; CODE:
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; def createWorkspace(def wsName, def geoserverUrl, def user, def pass){
&lt;br&gt;&amp;gt;&amp;gt;        def http = new HTTPBuilder( &amp;quot;${geoserverUrl}/geoserver/rest/workspaces&amp;quot; )
&lt;br&gt;&amp;gt;&amp;gt;        http.handler.SUCCESS = { return it }
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;        def response = http.request( POST, XML ) {
&lt;br&gt;&amp;gt;&amp;gt;                body = &amp;quot;&amp;lt;workspace&amp;gt;&amp;lt;name&amp;gt;${wsName}&amp;lt;/name&amp;gt;&amp;lt;/workspace&amp;gt;&amp;quot;
&lt;br&gt;&amp;gt;&amp;gt;        }
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;        assert response.status == 201
&lt;br&gt;&amp;gt;&amp;gt; }
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; //Call method
&lt;br&gt;&amp;gt;&amp;gt; def code = createWorkspace(&amp;quot;hello1&amp;quot;,
&lt;br&gt;&amp;gt;&amp;gt; &amp;quot;&lt;a href=&quot;http://admin:geoserver@localhost:8080/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://admin:geoserver@localhost:8080/&lt;/a&gt;&amp;quot;, &amp;quot;admin&amp;quot;, &amp;quot;geoserver&amp;quot;)
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; OUTPUT:
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Caught: groovy.lang.MissingMethodException: No signature of method:
&lt;br&gt;&amp;gt;&amp;gt; groovyx.net.http.HTTPBuilder.request() is applicable
&lt;br&gt;&amp;gt;&amp;gt;  for argument types: (groovyx.net.http.Method, groovyx.net.http.ContentType,
&lt;br&gt;&amp;gt;&amp;gt; uk.ac.glam.rest.GroovyTest$_createWorkspace
&lt;br&gt;&amp;gt;&amp;gt; _closure2) values: [POST, application/xml,
&lt;br&gt;&amp;gt;&amp;gt; uk.ac.glam.rest.GroovyTest$_createWorkspace_closure2@2fb002]
&lt;br&gt;&amp;gt;&amp;gt;        at uk.ac.glam.rest.GroovyTest.createWorkspace(GroovyTest.groovy:54)
&lt;br&gt;&amp;gt;&amp;gt;        at uk.ac.glam.rest.GroovyTest.run(GroovyTest.groovy:70)
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Tom Nichols wrote:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; Nope, you're right; in that case, the response object should be
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; available, and the 'data' property (which is the parsed response body)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; should just be null.  Definitely a bug.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; However, after looking at the stack trace, I don't think you should be
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; getting an NPE but an IllegalArgumentException (this is still
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; erroneous in the case of RESTClient, but it's due to RESTClient's
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; underlying use of HTTPBuilder).  What version of HTTPBuilder are you
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; using?
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; In either case, the bug still stands; I'll start working on it
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; soon-ish.  You can work around it for now by using the HTTPBuilder
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; class directly, which other than being slightly more verbose can do
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; the exact thing you're doing with RESTClient.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; import static groovyx.net.http.Method.POST
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; import static groovyx.net.http.ContentType.XML
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; def http = new HTTPBuilder(
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; '&lt;a href=&quot;http://admin:geoserver@localhost:8080/geoserver/rest/workspaces'&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://admin:geoserver@localhost:8080/geoserver/rest/workspaces'&lt;/a&gt;&amp;nbsp;)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; http.handler.SUCCESS = { return it }
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; def response = http.request( POST, XML ) {
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;   body = '&amp;lt;workspace&amp;gt;&amp;lt;name&amp;gt;dwins&amp;lt;/name&amp;gt;&amp;lt;/workspace&amp;gt;'
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; }
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; assert response.status == 201
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; Let me know if you have any trouble with the above example.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; -Tom
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; On Thu, Nov 5, 2009 at 9:45 AM, Jon Britton
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;lt;man_kills_everything@hotmail.com&amp;gt; wrote:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Sorry, forgot the full stack trace:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; 05-Nov-2009 14:45:22 groovyx.net.http.ParserRegistry getContentType
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; WARNING: Could not parse content-type header in response
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; java.lang.NullPointerException
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; groovyx.net.http.ParserRegistry.getContentType(ParserRegistry.java:153)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; groovyx.net.http.HTTPBuilder.parseResponse(HTTPBuilder.java:510)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at groovyx.net.http.HTTPBuilder.doRequest(HTTPBuilder.java:460)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at groovyx.net.http.RESTClient.post(RESTClient.java:140)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at java.lang.reflect.Method.invoke(Unknown Source)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite$PojoCachedMethodSiteNoUnwrapNoCoerce.invoke(PojoMetaMethodSite.java:229)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite.call(PojoMetaMethodSite.java:52)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:40)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:117)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:125)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; com.example.jon.GroovyTest.createWorkspace(GroovyTest.groovy:45)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at com.example.jon.GroovyTest$createWorkspace.callCurrent(Unknown
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Source)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:44)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:143)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:163)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at com.example.jon.GroovyTest.run(GroovyTest.groovy:60)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; groovy.lang.GroovyShell.runScriptOrMainOrTestOrRunnable(GroovyShell.java:256)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at groovy.lang.GroovyShell.run(GroovyShell.java:219)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at groovy.lang.GroovyShell.run(GroovyShell.java:149)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at groovy.ui.GroovyMain.processOnce(GroovyMain.java:494)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at groovy.ui.GroovyMain.run(GroovyMain.java:309)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at groovy.ui.GroovyMain.process(GroovyMain.java:295)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at groovy.ui.GroovyMain.processArgs(GroovyMain.java:112)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at groovy.ui.GroovyMain.main(GroovyMain.java:93)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at java.lang.reflect.Method.invoke(Unknown Source)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; org.codehaus.groovy.tools.GroovyStarter.rootLoader(GroovyStarter.java:108)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; org.codehaus.groovy.tools.GroovyStarter.main(GroovyStarter.java:130)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; 05-Nov-2009 14:45:22 groovyx.net.http.HTTPBuilder doRequest
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; WARNING: Error parsing 'null' response
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; java.lang.IllegalArgumentException: Could not parse content-type from
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; response
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; groovyx.net.http.ParserRegistry.getContentType(ParserRegistry.java:157)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; groovyx.net.http.HTTPBuilder.parseResponse(HTTPBuilder.java:510)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at groovyx.net.http.HTTPBuilder.doRequest(HTTPBuilder.java:460)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at groovyx.net.http.RESTClient.post(RESTClient.java:140)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at java.lang.reflect.Method.invoke(Unknown Source)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite$PojoCachedMethodSiteNoUnwrapNoCoerce.invoke(PojoMetaMethodSite.java:229)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite.call(PojoMetaMethodSite.java:52)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:40)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:117)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:125)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; com.example.jon.GroovyTest.createWorkspace(GroovyTest.groovy:45)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at com.example.jon.GroovyTest$createWorkspace.callCurrent(Unknown
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Source)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:44)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:143)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:163)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at com.example.jon.GroovyTest.run(GroovyTest.groovy:60)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; groovy.lang.GroovyShell.runScriptOrMainOrTestOrRunnable(GroovyShell.java:256)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at groovy.lang.GroovyShell.run(GroovyShell.java:219)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at groovy.lang.GroovyShell.run(GroovyShell.java:149)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at groovy.ui.GroovyMain.processOnce(GroovyMain.java:494)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at groovy.ui.GroovyMain.run(GroovyMain.java:309)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at groovy.ui.GroovyMain.process(GroovyMain.java:295)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at groovy.ui.GroovyMain.processArgs(GroovyMain.java:112)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at groovy.ui.GroovyMain.main(GroovyMain.java:93)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at java.lang.reflect.Method.invoke(Unknown Source)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; org.codehaus.groovy.tools.GroovyStarter.rootLoader(GroovyStarter.java:108)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; org.codehaus.groovy.tools.GroovyStarter.main(GroovyStarter.java:130)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Caught: groovyx.net.http.ResponseParseException: Created
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; com.example.jon.GroovyTest.createWorkspace(GroovyTest.groovy:45)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        at com.example.jon.GroovyTest.run(GroovyTest.groovy:60)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Tom Nichols wrote:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Hmm interesting.  I was under the assumption that a POST response
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; should include _some_ sort of response body, but maybe that's not
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; technically required by the HTTP spec.  If you can send me the
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; exception stack trace I'm sure I can fix it, but I can't tell you what
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; you yourself can do until you give me some more details.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Better yet, if you can file a JIRA here:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &lt;a href=&quot;http://jira.codehaus.org/browse/GMOD&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://jira.codehaus.org/browse/GMOD&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; that would be super awesome (put the bug under the &amp;quot;HTTPBuilder&amp;quot;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; module).  And If you really want to earn karma points, give enough of
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; an example that I can reproduce the error condition myself :)  I don't
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; konw if GeoServer has an open API, but if they do I can add it to the
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; unit tests.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Thanks.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; -Tom
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; On Thu, Nov 5, 2009 at 9:22 AM, Jon Britton
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;lt;man_kills_everything@hotmail.com&amp;gt; wrote:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Hi,
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; I'm using RESTClient from the HTTP Builder module to send a POST
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; request
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; to
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; GeoServer.  However, the response to my request doesn't contain a
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; content-type or body so I get the following followed by a number of
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; exceptions:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; 05-Nov-2009 14:12:42 groovyx.net.http.ParserRegistry getContentType
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; WARNING: Could not parse content-type header in response
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Followed by exceptions.  How can I get around this?  All I want from
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; the
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; response is the status code, I'm not interested in anything else.  My
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; code
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; is shown below.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Thanks,
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Jon
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Code:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; def createWorkspace(def wsName, def geoserverUrl, def user, def pass){
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        // setup the restclient
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        def geoserver = new RESTClient(geoserverUrl)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        // do the authing
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        geoserver.auth.basic user, pass
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        // post it
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        def res = geoserver.post( path: &amp;quot;geoserver/rest/workspaces&amp;quot;,
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;                        requestContentType: XML,
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;                body: &amp;quot;&amp;lt;workspace&amp;gt;&amp;lt;name&amp;gt;${wsName}&amp;lt;/name&amp;gt;&amp;lt;/workspace&amp;gt;&amp;quot;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;        )
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; }
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; def code = createWorkspace(&amp;quot;hello&amp;quot;, &amp;quot;&lt;a href=&quot;http://localhost:8080/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://localhost:8080/&lt;/a&gt;&amp;quot;, &amp;quot;admin&amp;quot;,
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;quot;geoserver&amp;quot;)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; --
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; View this message in context:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &lt;a href=&quot;http://old.nabble.com/Handling-RESTClient-post%28%29-responses-with-no-content-type-or-body.-tp26215319p26215319.html&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://old.nabble.com/Handling-RESTClient-post%28%29-responses-with-no-content-type-or-body.-tp26215319p26215319.html&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Sent from the groovy - user mailing list archive at Nabble.com.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; ---------------------------------------------------------------------
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; To unsubscribe from this list, please visit:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;    &lt;a href=&quot;http://xircles.codehaus.org/manage_email&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://xircles.codehaus.org/manage_email&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; ---------------------------------------------------------------------
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; To unsubscribe from this list, please visit:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;     &lt;a href=&quot;http://xircles.codehaus.org/manage_email&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://xircles.codehaus.org/manage_email&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; --
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; View this message in context:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &lt;a href=&quot;http://old.nabble.com/Handling-RESTClient-post%28%29-responses-with-no-content-type-or-body.-tp26215319p26215728.html&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://old.nabble.com/Handling-RESTClient-post%28%29-responses-with-no-content-type-or-body.-tp26215319p26215728.html&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Sent from the groovy - user mailing list archive at Nabble.com.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; ---------------------------------------------------------------------
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; To unsubscribe from this list, please visit:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;    &lt;a href=&quot;http://xircles.codehaus.org/manage_email&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://xircles.codehaus.org/manage_email&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; ---------------------------------------------------------------------
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; To unsubscribe from this list, please visit:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;     &lt;a href=&quot;http://xircles.codehaus.org/manage_email&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://xircles.codehaus.org/manage_email&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; --
&lt;br&gt;&amp;gt;&amp;gt; View this message in context: &lt;a href=&quot;http://old.nabble.com/Handling-RESTClient-post%28%29-responses-with-no-content-type-or-body.-tp26215319p26230809.html&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://old.nabble.com/Handling-RESTClient-post%28%29-responses-with-no-content-type-or-body.-tp26215319p26230809.html&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt; Sent from the groovy - user mailing list archive at Nabble.com.
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; ---------------------------------------------------------------------
&lt;br&gt;&amp;gt;&amp;gt; To unsubscribe from this list, please visit:
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;    &lt;a href=&quot;http://xircles.codehaus.org/manage_email&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://xircles.codehaus.org/manage_email&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&lt;br&gt;---------------------------------------------------------------------
&lt;br&gt;To unsubscribe from this list, please visit:
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &lt;a href=&quot;http://xircles.codehaus.org/manage_email&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://xircles.codehaus.org/manage_email&lt;/a&gt;&lt;br&gt;&lt;br&gt;&lt;/div&gt;
&lt;/div&gt;&lt;/blockquote&gt;
&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/groovy---user-f11867.html&quot; embed=&quot;fixTarget[11867]&quot; target=&quot;_top&quot; &gt;groovy - user&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Handling-RESTClient-post%28%29-responses-with-no-content-type-or-body.-tp26215319p26284361.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26284078</id>
	<title>Re: getClass() and @Mixin</title>
	<published>2009-11-10T06:10:11Z</published>
	<updated>2009-11-10T06:10:11Z</updated>
	<author>
		<name>Roshan Dawrani-2</name>
	</author>
	<content type="html">This issue is already fixed in 1.7 (since beta-1, I guess) (However 1.6.6 still retains the behavior you are seeing)&lt;br&gt;&lt;br&gt;Some related discussion can be found here: &lt;a href=&quot;http://groovy.markmail.org/message/ezquvigs3q3fbpk7?q=jaxb+mixin&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://groovy.markmail.org/message/ezquvigs3q3fbpk7?q=jaxb+mixin&lt;/a&gt;&lt;br&gt;
&lt;br&gt;Basically, now the methods of class Object are excluded from being forwarded to mixed-in class (except toString())&lt;br&gt;&lt;br&gt;-- Roshan&lt;br&gt;&lt;br&gt;&lt;div class=&quot;gmail_quote&quot;&gt;On Tue, Nov 10, 2009 at 7:20 PM, Marc Guillemot &lt;span dir=&quot;ltr&quot;&gt;&amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26284078&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;mguillemot@...&lt;/a&gt;&amp;gt;&lt;/span&gt; wrote:&lt;br&gt;
&lt;blockquote class=&quot;gmail_quote&quot; style=&quot;border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;&quot;&gt;Hi,&lt;br&gt;
&lt;br&gt;
I&amp;#39;m not sure if it is a known problem or not as I couldn&amp;#39;t find any issue related to that.&lt;br&gt;
&lt;br&gt;
getClass() is not resolved against the real class but against the @Mixin class:&lt;br&gt;
&lt;br&gt;
// ---------------------------------------------&lt;br&gt;
class A {}&lt;br&gt;
&lt;br&gt;
@Mixin ([A])&lt;br&gt;
class B {&lt;br&gt;
  def foo() { assert B == this.class }&lt;br&gt;
}&lt;br&gt;
&lt;br&gt;
new B().foo()&lt;br&gt;
// ---------------------------------------------&lt;br&gt;
&lt;br&gt;
Should I open an issue for it?&lt;br&gt;
&lt;br&gt;
A workaround seems to use this.metaClass.theClass. I&amp;#39;m not sure how safe it is.&lt;br&gt;
&lt;br&gt;
Cheers,&lt;br&gt;
Marc.&lt;br&gt;
&lt;br&gt;
---------------------------------------------------------------------&lt;br&gt;
To unsubscribe from this list, please visit:&lt;br&gt;
&lt;br&gt;
   &lt;a href=&quot;http://xircles.codehaus.org/manage_email&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot;&gt;http://xircles.codehaus.org/manage_email&lt;/a&gt;&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;/blockquote&gt;&lt;/div&gt;&lt;br&gt;
&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/groovy---user-f11867.html&quot; embed=&quot;fixTarget[11867]&quot; target=&quot;_top&quot; &gt;groovy - user&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/getClass%28%29-and-%40Mixin-tp26283729p26284078.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26283930</id>
	<title>Re: On static compilation of Groovy</title>
	<published>2009-11-10T06:03:22Z</published>
	<updated>2009-11-10T06:03:22Z</updated>
	<author>
		<name>Michael Baehr-2</name>
	</author>
	<content type="html">Thought so ... ;-)
&lt;br&gt;&lt;br&gt;On 10. Nov 2009, at 8:59, Alex Tkachman wrote:
&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; Alex Tkachman?
&lt;br&gt;&amp;gt; Yes, I heard that name.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; On Tue, Nov 10, 2009 at 3:28 PM, Michael Baehr &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26283930&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;codex69@...&lt;/a&gt;&amp;gt; wrote:
&lt;br&gt;&amp;gt;&amp;gt; This reminds me of the discussion about having a joint compiler for Java and Groovy.
&lt;br&gt;&amp;gt;&amp;gt; 
&lt;br&gt;&amp;gt;&amp;gt; All the Groovy bigger heads were totally against it (do a search and you will find a similar list of threads), 'til somebody by the name Alex Tkachman just created one - and since then the project leads declared it as the best thing since sliced bread.
&lt;br&gt;&amp;gt;&amp;gt; 
&lt;br&gt;&amp;gt;&amp;gt; So Alex, just go for it - there are obviously enough people who would want to have something like that.
&lt;br&gt;&amp;gt;&amp;gt; 
&lt;br&gt;&amp;gt;&amp;gt; cu
&lt;br&gt;&amp;gt;&amp;gt; 
&lt;br&gt;&amp;gt;&amp;gt; Michael
&lt;br&gt;&amp;gt;&amp;gt; 
&lt;br&gt;&amp;gt;&amp;gt; On 10. Nov 2009, at 6:19, Robert Fischer wrote:
&lt;br&gt;&amp;gt;&amp;gt; 
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; All this idea of a &amp;quot;static groovy&amp;quot; mode has been debated so many times
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; in the past on the mailing-list that I'm lazy reiterating all the bad
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; points about it.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Just a one minute search brought me numerous threads on the topics, on
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; the challenges and issues about this static groovy idea:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &lt;a href=&quot;http://markmail.org/thread/ncv4uhcsd4qgtsni&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://markmail.org/thread/ncv4uhcsd4qgtsni&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &lt;a href=&quot;http://markmail.org/thread/rar6j5j47kl7yjlp&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://markmail.org/thread/rar6j5j47kl7yjlp&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &lt;a href=&quot;http://markmail.org/thread/wslb4sc75xsykbq3&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://markmail.org/thread/wslb4sc75xsykbq3&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &lt;a href=&quot;http://markmail.org/thread/ufo6ekbvlie3j3pm&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://markmail.org/thread/ufo6ekbvlie3j3pm&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &lt;a href=&quot;http://markmail.org/thread/hxfh5tpp6psyg6rg&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://markmail.org/thread/hxfh5tpp6psyg6rg&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &lt;a href=&quot;http://markmail.org/thread/p7hnerkarsyx3te7&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://markmail.org/thread/p7hnerkarsyx3te7&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &lt;a href=&quot;http://markmail.org/thread/p7hnerkarsyx3te7&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://markmail.org/thread/p7hnerkarsyx3te7&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &lt;a href=&quot;http://markmail.org/thread/g2a2gxahspj2iilt&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://markmail.org/thread/g2a2gxahspj2iilt&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &lt;a href=&quot;http://markmail.org/thread/nxt4e2oxfnf6m647&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://markmail.org/thread/nxt4e2oxfnf6m647&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; 
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; Best. &amp;nbsp;Rebuttal. &amp;nbsp;EVAR.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; 
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; 
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; ~~ Robert Fischer, Smokejumper IT Consulting.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; Enfranchised Mind Blog &lt;a href=&quot;http://EnfranchisedMind.com/blog&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://EnfranchisedMind.com/blog&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; 
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; Grails Expert Retainer Services
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &lt;a href=&quot;http://smokejumperit.com/grails-retainer/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://smokejumperit.com/grails-retainer/&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; 
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; 
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; Guillaume Laforge wrote:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; On Mon, Nov 9, 2009 at 19:09, David Clark &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26283930&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;davidclark@...&lt;/a&gt;&amp;gt; wrote:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; In your article you make the assertion, &amp;quot;due to performance reasons Groovy is
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; almost useless today for multi-core programming&amp;quot; without giving any reasons or
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; data to defend the assertion. &amp;nbsp;I can't think of why this assertion should
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; hold. &amp;nbsp;Of course Groovy is inappropriate for computation intensive code, but
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; this holds for any number of threads and any number of cores. &amp;nbsp;Why would
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; properly parallelized Groovy code be inappropriate for code that engages in
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; lots of IO, which is the bulk of what business oriented code does?
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Indeed. Despite Groovy being slower than pure Java, the overhead is
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; usually ridiculous compared to the time software waits for data to
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; come up from the database. And optimizing the IO access is usually
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; going to offer leaps in the scalability and/or performance of your
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; code.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; As for statically compiling Groovy code I'm all for it provided that 1) It's
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; entirely transparent for end users, 2) It does not increase the complexity of
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; the Groovy compiler thereby increasing bugs and slowing down development of
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; other features, and 3) It changes none of the semantics of current Groovy
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; code. &amp;nbsp;I doubt those three things are possible, but I am willing to be proved
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; wrong.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; All this idea of a &amp;quot;static groovy&amp;quot; mode has been debated so many times
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; in the past on the mailing-list that I'm lazy reiterating all the bad
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; points about it.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Just a one minute search brought me numerous threads on the topics, on
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; the challenges and issues about this static groovy idea:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &lt;a href=&quot;http://markmail.org/thread/ncv4uhcsd4qgtsni&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://markmail.org/thread/ncv4uhcsd4qgtsni&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &lt;a href=&quot;http://markmail.org/thread/rar6j5j47kl7yjlp&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://markmail.org/thread/rar6j5j47kl7yjlp&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &lt;a href=&quot;http://markmail.org/thread/wslb4sc75xsykbq3&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://markmail.org/thread/wslb4sc75xsykbq3&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &lt;a href=&quot;http://markmail.org/thread/ufo6ekbvlie3j3pm&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://markmail.org/thread/ufo6ekbvlie3j3pm&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &lt;a href=&quot;http://markmail.org/thread/hxfh5tpp6psyg6rg&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://markmail.org/thread/hxfh5tpp6psyg6rg&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &lt;a href=&quot;http://markmail.org/thread/p7hnerkarsyx3te7&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://markmail.org/thread/p7hnerkarsyx3te7&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &lt;a href=&quot;http://markmail.org/thread/p7hnerkarsyx3te7&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://markmail.org/thread/p7hnerkarsyx3te7&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &lt;a href=&quot;http://markmail.org/thread/g2a2gxahspj2iilt&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://markmail.org/thread/g2a2gxahspj2iilt&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &lt;a href=&quot;http://markmail.org/thread/nxt4e2oxfnf6m647&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://markmail.org/thread/nxt4e2oxfnf6m647&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; And I'm sure there are even older threads on the topic.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; But to answer your points: 1) It won't be transparent in the sense
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; that you would have to demarcate the code that would be made &amp;quot;static&amp;quot;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; (not a bad thing per se, though), but then avoid mixing static /
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; non-static code, otherwise you wouldn't be able to really know what is
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; or what is not statically compiled. 2) Of course it'll increase the
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; complexity of the compiler. More advanced / complex features means
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; more complexity to deal with, more bugs, a longer time to get it
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; right, less resource / time to work on other features. And 3) it'd
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; definitely change the semantics of current Groovy code, as for
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; instance, the method resolution in a static mode is different from a
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; dynamic mode. Groovy's multimethods wouldn't work, meaning that
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; calling foo(a) wouldn't call the same method foo(Object) or foo(A) in
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; static vs non-static mode. Groovy choses the method according to the
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; runtime type, a static mode wouldn't.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; So this is all far from seamless, transparent. In the end, it somehow
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; means maintaining two compilers in one.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Also, how many of the speed problems with dynamic dispatch will be alleviated
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; with the new invokedynamic that is supposed to start appearing in JVM's
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; sometime in the future?
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; It's still early to really tell, as &amp;quot;invokedynamic&amp;quot; is still a work in
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; progress. But hopefully, some significant gains will come from it,
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; although it's still difficult to know what the real gains will be till
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; there's a definitive working version available and testable.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; But I'd much rather see efforts improving &amp;quot;dynamic Groovy&amp;quot;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; (performance, features, etc), than abandonning this idea and turning
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Groovy into Java plus some syntaxic sugar only.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Also, if the objections to static compiling that I raised above cannot be met
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; there are alternatives to speeding up Groovy code that seem easier to
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; implement but would give big speedups to performance critical code. &amp;nbsp;One would
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; be to allow embedding java or scala code like C/C++ compiles allow embedding
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; of ASM code. &amp;nbsp;Granted it is already possible to mix and match Groovy, Java,
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; and Scala, so this doesn't provide anything that can't already be done, it
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; simply provides convenience to the programmer.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; The integration is pretty much seamless already.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Adding a small Java class for a routine that needs to be speed up is so easy.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Once you've got your project build using the groovyc compiler (Ant
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; build, GMaven, Gradle, whatever), you usually don't have much work to
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; do to joint-compile Groovy and Java together -- perhaps just a few
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; lines to customize the javac call.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; The benefit also is it clearly demarcates what's statically-compiled
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; (Java) and what's your dynamic code (Groovy).
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; [...]
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; 
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; ---------------------------------------------------------------------
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; To unsubscribe from this list, please visit:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; 
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &lt;a href=&quot;http://xircles.codehaus.org/manage_email&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://xircles.codehaus.org/manage_email&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; 
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; 
&lt;br&gt;&amp;gt;&amp;gt; 
&lt;br&gt;&amp;gt;&amp;gt; 
&lt;br&gt;&amp;gt;&amp;gt; ---------------------------------------------------------------------
&lt;br&gt;&amp;gt;&amp;gt; To unsubscribe from this list, please visit:
&lt;br&gt;&amp;gt;&amp;gt; 
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp;&lt;a href=&quot;http://xircles.codehaus.org/manage_email&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://xircles.codehaus.org/manage_email&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt; 
&lt;br&gt;&amp;gt;&amp;gt; 
&lt;br&gt;&amp;gt;&amp;gt; 
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; ---------------------------------------------------------------------
&lt;br&gt;&amp;gt; To unsubscribe from this list, please visit:
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;&lt;a href=&quot;http://xircles.codehaus.org/manage_email&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://xircles.codehaus.org/manage_email&lt;/a&gt;&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; 
&lt;/div&gt;&lt;br&gt;&lt;br&gt;---------------------------------------------------------------------
&lt;br&gt;To unsubscribe from this list, please visit:
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &lt;a href=&quot;http://xircles.codehaus.org/manage_email&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://xircles.codehaus.org/manage_email&lt;/a&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/groovy---user-f11867.html&quot; embed=&quot;fixTarget[11867]&quot; target=&quot;_top&quot; &gt;groovy - user&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/On-static-compilation-of-Groovy-tp26269191p26283930.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26283860</id>
	<title>Re: On static compilation of Groovy</title>
	<published>2009-11-10T05:59:34Z</published>
	<updated>2009-11-10T05:59:34Z</updated>
	<author>
		<name>Alex Tkachman</name>
	</author>
	<content type="html">Alex Tkachman?
&lt;br&gt;Yes, I heard that name.
&lt;br&gt;&lt;br&gt;On Tue, Nov 10, 2009 at 3:28 PM, Michael Baehr &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26283860&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;codex69@...&lt;/a&gt;&amp;gt; wrote:
&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; This reminds me of the discussion about having a joint compiler for Java and Groovy.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; All the Groovy bigger heads were totally against it (do a search and you will find a similar list of threads), 'til somebody by the name Alex Tkachman just created one - and since then the project leads declared it as the best thing since sliced bread.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; So Alex, just go for it - there are obviously enough people who would want to have something like that.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; cu
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Michael
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; On 10. Nov 2009, at 6:19, Robert Fischer wrote:
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt; All this idea of a &amp;quot;static groovy&amp;quot; mode has been debated so many times
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt; in the past on the mailing-list that I'm lazy reiterating all the bad
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt; points about it.
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt; Just a one minute search brought me numerous threads on the topics, on
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt; the challenges and issues about this static groovy idea:
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt; &lt;a href=&quot;http://markmail.org/thread/ncv4uhcsd4qgtsni&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://markmail.org/thread/ncv4uhcsd4qgtsni&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt; &amp;gt; &lt;a href=&quot;http://markmail.org/thread/rar6j5j47kl7yjlp&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://markmail.org/thread/rar6j5j47kl7yjlp&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt; &amp;gt; &lt;a href=&quot;http://markmail.org/thread/wslb4sc75xsykbq3&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://markmail.org/thread/wslb4sc75xsykbq3&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt; &amp;gt; &lt;a href=&quot;http://markmail.org/thread/ufo6ekbvlie3j3pm&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://markmail.org/thread/ufo6ekbvlie3j3pm&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt; &amp;gt; &lt;a href=&quot;http://markmail.org/thread/hxfh5tpp6psyg6rg&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://markmail.org/thread/hxfh5tpp6psyg6rg&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt; &amp;gt; &lt;a href=&quot;http://markmail.org/thread/p7hnerkarsyx3te7&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://markmail.org/thread/p7hnerkarsyx3te7&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt; &amp;gt; &lt;a href=&quot;http://markmail.org/thread/p7hnerkarsyx3te7&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://markmail.org/thread/p7hnerkarsyx3te7&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt; &amp;gt; &lt;a href=&quot;http://markmail.org/thread/g2a2gxahspj2iilt&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://markmail.org/thread/g2a2gxahspj2iilt&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt; &amp;gt; &lt;a href=&quot;http://markmail.org/thread/nxt4e2oxfnf6m647&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://markmail.org/thread/nxt4e2oxfnf6m647&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Best.  Rebuttal.  EVAR.
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; ~~ Robert Fischer, Smokejumper IT Consulting.
&lt;br&gt;&amp;gt;&amp;gt; Enfranchised Mind Blog &lt;a href=&quot;http://EnfranchisedMind.com/blog&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://EnfranchisedMind.com/blog&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Grails Expert Retainer Services
&lt;br&gt;&amp;gt;&amp;gt; &lt;a href=&quot;http://smokejumperit.com/grails-retainer/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://smokejumperit.com/grails-retainer/&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Guillaume Laforge wrote:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; On Mon, Nov 9, 2009 at 19:09, David Clark &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26283860&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;davidclark@...&lt;/a&gt;&amp;gt; wrote:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; In your article you make the assertion, &amp;quot;due to performance reasons Groovy is
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; almost useless today for multi-core programming&amp;quot; without giving any reasons or
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; data to defend the assertion.  I can't think of why this assertion should
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; hold.  Of course Groovy is inappropriate for computation intensive code, but
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; this holds for any number of threads and any number of cores.  Why would
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; properly parallelized Groovy code be inappropriate for code that engages in
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; lots of IO, which is the bulk of what business oriented code does?
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; Indeed. Despite Groovy being slower than pure Java, the overhead is
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; usually ridiculous compared to the time software waits for data to
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; come up from the database. And optimizing the IO access is usually
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; going to offer leaps in the scalability and/or performance of your
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; code.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; As for statically compiling Groovy code I'm all for it provided that 1) It's
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; entirely transparent for end users, 2) It does not increase the complexity of
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; the Groovy compiler thereby increasing bugs and slowing down development of
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; other features, and 3) It changes none of the semantics of current Groovy
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; code.  I doubt those three things are possible, but I am willing to be proved
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; wrong.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; All this idea of a &amp;quot;static groovy&amp;quot; mode has been debated so many times
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; in the past on the mailing-list that I'm lazy reiterating all the bad
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; points about it.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; Just a one minute search brought me numerous threads on the topics, on
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; the challenges and issues about this static groovy idea:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &lt;a href=&quot;http://markmail.org/thread/ncv4uhcsd4qgtsni&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://markmail.org/thread/ncv4uhcsd4qgtsni&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &lt;a href=&quot;http://markmail.org/thread/rar6j5j47kl7yjlp&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://markmail.org/thread/rar6j5j47kl7yjlp&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &lt;a href=&quot;http://markmail.org/thread/wslb4sc75xsykbq3&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://markmail.org/thread/wslb4sc75xsykbq3&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &lt;a href=&quot;http://markmail.org/thread/ufo6ekbvlie3j3pm&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://markmail.org/thread/ufo6ekbvlie3j3pm&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &lt;a href=&quot;http://markmail.org/thread/hxfh5tpp6psyg6rg&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://markmail.org/thread/hxfh5tpp6psyg6rg&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &lt;a href=&quot;http://markmail.org/thread/p7hnerkarsyx3te7&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://markmail.org/thread/p7hnerkarsyx3te7&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &lt;a href=&quot;http://markmail.org/thread/p7hnerkarsyx3te7&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://markmail.org/thread/p7hnerkarsyx3te7&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &lt;a href=&quot;http://markmail.org/thread/g2a2gxahspj2iilt&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://markmail.org/thread/g2a2gxahspj2iilt&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &lt;a href=&quot;http://markmail.org/thread/nxt4e2oxfnf6m647&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://markmail.org/thread/nxt4e2oxfnf6m647&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; And I'm sure there are even older threads on the topic.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; But to answer your points: 1) It won't be transparent in the sense
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; that you would have to demarcate the code that would be made &amp;quot;static&amp;quot;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; (not a bad thing per se, though), but then avoid mixing static /
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; non-static code, otherwise you wouldn't be able to really know what is
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; or what is not statically compiled. 2) Of course it'll increase the
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; complexity of the compiler. More advanced / complex features means
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; more complexity to deal with, more bugs, a longer time to get it
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; right, less resource / time to work on other features. And 3) it'd
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; definitely change the semantics of current Groovy code, as for
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; instance, the method resolution in a static mode is different from a
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; dynamic mode. Groovy's multimethods wouldn't work, meaning that
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; calling foo(a) wouldn't call the same method foo(Object) or foo(A) in
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; static vs non-static mode. Groovy choses the method according to the
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; runtime type, a static mode wouldn't.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; So this is all far from seamless, transparent. In the end, it somehow
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; means maintaining two compilers in one.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Also, how many of the speed problems with dynamic dispatch will be alleviated
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; with the new invokedynamic that is supposed to start appearing in JVM's
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; sometime in the future?
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; It's still early to really tell, as &amp;quot;invokedynamic&amp;quot; is still a work in
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; progress. But hopefully, some significant gains will come from it,
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; although it's still difficult to know what the real gains will be till
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; there's a definitive working version available and testable.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; But I'd much rather see efforts improving &amp;quot;dynamic Groovy&amp;quot;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; (performance, features, etc), than abandonning this idea and turning
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; Groovy into Java plus some syntaxic sugar only.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Also, if the objections to static compiling that I raised above cannot be met
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; there are alternatives to speeding up Groovy code that seem easier to
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; implement but would give big speedups to performance critical code.  One would
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; be to allow embedding java or scala code like C/C++ compiles allow embedding
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; of ASM code.  Granted it is already possible to mix and match Groovy, Java,
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; and Scala, so this doesn't provide anything that can't already be done, it
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; simply provides convenience to the programmer.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; The integration is pretty much seamless already.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; Adding a small Java class for a routine that needs to be speed up is so easy.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; Once you've got your project build using the groovyc compiler (Ant
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; build, GMaven, Gradle, whatever), you usually don't have much work to
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; do to joint-compile Groovy and Java together -- perhaps just a few
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; lines to customize the javac call.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; The benefit also is it clearly demarcates what's statically-compiled
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; (Java) and what's your dynamic code (Groovy).
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; [...]
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; ---------------------------------------------------------------------
&lt;br&gt;&amp;gt;&amp;gt; To unsubscribe from this list, please visit:
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;   &lt;a href=&quot;http://xircles.codehaus.org/manage_email&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://xircles.codehaus.org/manage_email&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; ---------------------------------------------------------------------
&lt;br&gt;&amp;gt; To unsubscribe from this list, please visit:
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;    &lt;a href=&quot;http://xircles.codehaus.org/manage_email&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://xircles.codehaus.org/manage_email&lt;/a&gt;&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;/div&gt;&lt;br&gt;---------------------------------------------------------------------
&lt;br&gt;To unsubscribe from this list, please visit:
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &lt;a href=&quot;http://xircles.codehaus.org/manage_email&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://xircles.codehaus.org/manage_email&lt;/a&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/groovy---user-f11867.html&quot; embed=&quot;fixTarget[11867]&quot; target=&quot;_top&quot; &gt;groovy - user&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/On-static-compilation-of-Groovy-tp26269191p26283860.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26283729</id>
	<title>getClass() and @Mixin</title>
	<published>2009-11-10T05:50:27Z</published>
	<updated>2009-11-10T05:50:27Z</updated>
	<author>
		<name>Marc Guillemot</name>
	</author>
	<content type="html">Hi,
&lt;br&gt;&lt;br&gt;I'm not sure if it is a known problem or not as I couldn't find any 
&lt;br&gt;issue related to that.
&lt;br&gt;&lt;br&gt;getClass() is not resolved against the real class but against the @Mixin 
&lt;br&gt;class:
&lt;br&gt;&lt;br&gt;// ---------------------------------------------
&lt;br&gt;class A {}
&lt;br&gt;&lt;br&gt;@Mixin ([A])
&lt;br&gt;class B {
&lt;br&gt;&amp;nbsp; &amp;nbsp;def foo() { assert B == this.class }
&lt;br&gt;}
&lt;br&gt;&lt;br&gt;new B().foo()
&lt;br&gt;// ---------------------------------------------
&lt;br&gt;&lt;br&gt;Should I open an issue for it?
&lt;br&gt;&lt;br&gt;A workaround seems to use this.metaClass.theClass. I'm not sure how safe 
&lt;br&gt;it is.
&lt;br&gt;&lt;br&gt;Cheers,
&lt;br&gt;Marc.
&lt;br&gt;&lt;br&gt;---------------------------------------------------------------------
&lt;br&gt;To unsubscribe from this list, please visit:
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &lt;a href=&quot;http://xircles.codehaus.org/manage_email&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://xircles.codehaus.org/manage_email&lt;/a&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/groovy---user-f11867.html&quot; embed=&quot;fixTarget[11867]&quot; target=&quot;_top&quot; &gt;groovy - user&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/getClass%28%29-and-%40Mixin-tp26283729p26283729.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26283441</id>
	<title>Re: On static compilation of Groovy</title>
	<published>2009-11-10T05:28:14Z</published>
	<updated>2009-11-10T05:28:14Z</updated>
	<author>
		<name>Michael Baehr-2</name>
	</author>
	<content type="html">This reminds me of the discussion about having a joint compiler for Java and Groovy.
&lt;br&gt;&lt;br&gt;All the Groovy bigger heads were totally against it (do a search and you will find a similar list of threads), 'til somebody by the name Alex Tkachman just created one - and since then the project leads declared it as the best thing since sliced bread.
&lt;br&gt;&lt;br&gt;So Alex, just go for it - there are obviously enough people who would want to have something like that.
&lt;br&gt;&lt;br&gt;cu
&lt;br&gt;&lt;br&gt;Michael
&lt;br&gt;&lt;br&gt;On 10. Nov 2009, at 6:19, Robert Fischer wrote:
&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; &amp;gt; All this idea of a &amp;quot;static groovy&amp;quot; mode has been debated so many times
&lt;br&gt;&amp;gt; &amp;gt; in the past on the mailing-list that I'm lazy reiterating all the bad
&lt;br&gt;&amp;gt; &amp;gt; points about it.
&lt;br&gt;&amp;gt; &amp;gt; Just a one minute search brought me numerous threads on the topics, on
&lt;br&gt;&amp;gt; &amp;gt; the challenges and issues about this static groovy idea:
&lt;br&gt;&amp;gt; &amp;gt; &lt;a href=&quot;http://markmail.org/thread/ncv4uhcsd4qgtsni&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://markmail.org/thread/ncv4uhcsd4qgtsni&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;gt; &lt;a href=&quot;http://markmail.org/thread/rar6j5j47kl7yjlp&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://markmail.org/thread/rar6j5j47kl7yjlp&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;gt; &lt;a href=&quot;http://markmail.org/thread/wslb4sc75xsykbq3&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://markmail.org/thread/wslb4sc75xsykbq3&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;gt; &lt;a href=&quot;http://markmail.org/thread/ufo6ekbvlie3j3pm&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://markmail.org/thread/ufo6ekbvlie3j3pm&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;gt; &lt;a href=&quot;http://markmail.org/thread/hxfh5tpp6psyg6rg&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://markmail.org/thread/hxfh5tpp6psyg6rg&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;gt; &lt;a href=&quot;http://markmail.org/thread/p7hnerkarsyx3te7&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://markmail.org/thread/p7hnerkarsyx3te7&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;gt; &lt;a href=&quot;http://markmail.org/thread/p7hnerkarsyx3te7&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://markmail.org/thread/p7hnerkarsyx3te7&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;gt; &lt;a href=&quot;http://markmail.org/thread/g2a2gxahspj2iilt&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://markmail.org/thread/g2a2gxahspj2iilt&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;gt; &lt;a href=&quot;http://markmail.org/thread/nxt4e2oxfnf6m647&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://markmail.org/thread/nxt4e2oxfnf6m647&lt;/a&gt;&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; Best. &amp;nbsp;Rebuttal. &amp;nbsp;EVAR.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; ~~ Robert Fischer, Smokejumper IT Consulting.
&lt;br&gt;&amp;gt; Enfranchised Mind Blog &lt;a href=&quot;http://EnfranchisedMind.com/blog&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://EnfranchisedMind.com/blog&lt;/a&gt;&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; Grails Expert Retainer Services
&lt;br&gt;&amp;gt; &lt;a href=&quot;http://smokejumperit.com/grails-retainer/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://smokejumperit.com/grails-retainer/&lt;/a&gt;&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; Guillaume Laforge wrote:
&lt;br&gt;&amp;gt;&amp;gt; On Mon, Nov 9, 2009 at 19:09, David Clark &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26283441&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;davidclark@...&lt;/a&gt;&amp;gt; wrote:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; In your article you make the assertion, &amp;quot;due to performance reasons Groovy is
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; almost useless today for multi-core programming&amp;quot; without giving any reasons or
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; data to defend the assertion. &amp;nbsp;I can't think of why this assertion should
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; hold. &amp;nbsp;Of course Groovy is inappropriate for computation intensive code, but
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; this holds for any number of threads and any number of cores. &amp;nbsp;Why would
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; properly parallelized Groovy code be inappropriate for code that engages in
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; lots of IO, which is the bulk of what business oriented code does?
&lt;br&gt;&amp;gt;&amp;gt; Indeed. Despite Groovy being slower than pure Java, the overhead is
&lt;br&gt;&amp;gt;&amp;gt; usually ridiculous compared to the time software waits for data to
&lt;br&gt;&amp;gt;&amp;gt; come up from the database. And optimizing the IO access is usually
&lt;br&gt;&amp;gt;&amp;gt; going to offer leaps in the scalability and/or performance of your
&lt;br&gt;&amp;gt;&amp;gt; code.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; As for statically compiling Groovy code I'm all for it provided that 1) It's
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; entirely transparent for end users, 2) It does not increase the complexity of
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; the Groovy compiler thereby increasing bugs and slowing down development of
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; other features, and 3) It changes none of the semantics of current Groovy
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; code. &amp;nbsp;I doubt those three things are possible, but I am willing to be proved
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; wrong.
&lt;br&gt;&amp;gt;&amp;gt; All this idea of a &amp;quot;static groovy&amp;quot; mode has been debated so many times
&lt;br&gt;&amp;gt;&amp;gt; in the past on the mailing-list that I'm lazy reiterating all the bad
&lt;br&gt;&amp;gt;&amp;gt; points about it.
&lt;br&gt;&amp;gt;&amp;gt; Just a one minute search brought me numerous threads on the topics, on
&lt;br&gt;&amp;gt;&amp;gt; the challenges and issues about this static groovy idea:
&lt;br&gt;&amp;gt;&amp;gt; &lt;a href=&quot;http://markmail.org/thread/ncv4uhcsd4qgtsni&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://markmail.org/thread/ncv4uhcsd4qgtsni&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt; &lt;a href=&quot;http://markmail.org/thread/rar6j5j47kl7yjlp&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://markmail.org/thread/rar6j5j47kl7yjlp&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt; &lt;a href=&quot;http://markmail.org/thread/wslb4sc75xsykbq3&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://markmail.org/thread/wslb4sc75xsykbq3&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt; &lt;a href=&quot;http://markmail.org/thread/ufo6ekbvlie3j3pm&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://markmail.org/thread/ufo6ekbvlie3j3pm&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt; &lt;a href=&quot;http://markmail.org/thread/hxfh5tpp6psyg6rg&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://markmail.org/thread/hxfh5tpp6psyg6rg&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt; &lt;a href=&quot;http://markmail.org/thread/p7hnerkarsyx3te7&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://markmail.org/thread/p7hnerkarsyx3te7&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt; &lt;a href=&quot;http://markmail.org/thread/p7hnerkarsyx3te7&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://markmail.org/thread/p7hnerkarsyx3te7&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt; &lt;a href=&quot;http://markmail.org/thread/g2a2gxahspj2iilt&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://markmail.org/thread/g2a2gxahspj2iilt&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt; &lt;a href=&quot;http://markmail.org/thread/nxt4e2oxfnf6m647&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://markmail.org/thread/nxt4e2oxfnf6m647&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt; And I'm sure there are even older threads on the topic.
&lt;br&gt;&amp;gt;&amp;gt; But to answer your points: 1) It won't be transparent in the sense
&lt;br&gt;&amp;gt;&amp;gt; that you would have to demarcate the code that would be made &amp;quot;static&amp;quot;
&lt;br&gt;&amp;gt;&amp;gt; (not a bad thing per se, though), but then avoid mixing static /
&lt;br&gt;&amp;gt;&amp;gt; non-static code, otherwise you wouldn't be able to really know what is
&lt;br&gt;&amp;gt;&amp;gt; or what is not statically compiled. 2) Of course it'll increase the
&lt;br&gt;&amp;gt;&amp;gt; complexity of the compiler. More advanced / complex features means
&lt;br&gt;&amp;gt;&amp;gt; more complexity to deal with, more bugs, a longer time to get it
&lt;br&gt;&amp;gt;&amp;gt; right, less resource / time to work on other features. And 3) it'd
&lt;br&gt;&amp;gt;&amp;gt; definitely change the semantics of current Groovy code, as for
&lt;br&gt;&amp;gt;&amp;gt; instance, the method resolution in a static mode is different from a
&lt;br&gt;&amp;gt;&amp;gt; dynamic mode. Groovy's multimethods wouldn't work, meaning that
&lt;br&gt;&amp;gt;&amp;gt; calling foo(a) wouldn't call the same method foo(Object) or foo(A) in
&lt;br&gt;&amp;gt;&amp;gt; static vs non-static mode. Groovy choses the method according to the
&lt;br&gt;&amp;gt;&amp;gt; runtime type, a static mode wouldn't.
&lt;br&gt;&amp;gt;&amp;gt; So this is all far from seamless, transparent. In the end, it somehow
&lt;br&gt;&amp;gt;&amp;gt; means maintaining two compilers in one.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; Also, how many of the speed problems with dynamic dispatch will be alleviated
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; with the new invokedynamic that is supposed to start appearing in JVM's
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; sometime in the future?
&lt;br&gt;&amp;gt;&amp;gt; It's still early to really tell, as &amp;quot;invokedynamic&amp;quot; is still a work in
&lt;br&gt;&amp;gt;&amp;gt; progress. But hopefully, some significant gains will come from it,
&lt;br&gt;&amp;gt;&amp;gt; although it's still difficult to know what the real gains will be till
&lt;br&gt;&amp;gt;&amp;gt; there's a definitive working version available and testable.
&lt;br&gt;&amp;gt;&amp;gt; But I'd much rather see efforts improving &amp;quot;dynamic Groovy&amp;quot;
&lt;br&gt;&amp;gt;&amp;gt; (performance, features, etc), than abandonning this idea and turning
&lt;br&gt;&amp;gt;&amp;gt; Groovy into Java plus some syntaxic sugar only.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; Also, if the objections to static compiling that I raised above cannot be met
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; there are alternatives to speeding up Groovy code that seem easier to
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; implement but would give big speedups to performance critical code. &amp;nbsp;One would
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; be to allow embedding java or scala code like C/C++ compiles allow embedding
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; of ASM code. &amp;nbsp;Granted it is already possible to mix and match Groovy, Java,
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; and Scala, so this doesn't provide anything that can't already be done, it
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; simply provides convenience to the programmer.
&lt;br&gt;&amp;gt;&amp;gt; The integration is pretty much seamless already.
&lt;br&gt;&amp;gt;&amp;gt; Adding a small Java class for a routine that needs to be speed up is so easy.
&lt;br&gt;&amp;gt;&amp;gt; Once you've got your project build using the groovyc compiler (Ant
&lt;br&gt;&amp;gt;&amp;gt; build, GMaven, Gradle, whatever), you usually don't have much work to
&lt;br&gt;&amp;gt;&amp;gt; do to joint-compile Groovy and Java together -- perhaps just a few
&lt;br&gt;&amp;gt;&amp;gt; lines to customize the javac call.
&lt;br&gt;&amp;gt;&amp;gt; The benefit also is it clearly demarcates what's statically-compiled
&lt;br&gt;&amp;gt;&amp;gt; (Java) and what's your dynamic code (Groovy).
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; [...]
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; ---------------------------------------------------------------------
&lt;br&gt;&amp;gt; To unsubscribe from this list, please visit:
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp; &lt;a href=&quot;http://xircles.codehaus.org/manage_email&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://xircles.codehaus.org/manage_email&lt;/a&gt;&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; 
&lt;/div&gt;&lt;br&gt;&lt;br&gt;---------------------------------------------------------------------
&lt;br&gt;To unsubscribe from this list, please visit:
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &lt;a href=&quot;http://xircles.codehaus.org/manage_email&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://xircles.codehaus.org/manage_email&lt;/a&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/groovy---user-f11867.html&quot; embed=&quot;fixTarget[11867]&quot; target=&quot;_top&quot; &gt;groovy - user&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/On-static-compilation-of-Groovy-tp26269191p26283441.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26283143</id>
	<title>Re: Much longer build times on Bamboo CI server</title>
	<published>2009-11-10T05:09:55Z</published>
	<updated>2009-11-10T05:09:55Z</updated>
	<author>
		<name>Roshan Dawrani-2</name>
	</author>
	<content type="html">TeamCity groovy CI environment is also not having any increased times - increased build times on bamboo have nothing to do with my change then :-)&lt;br&gt;&lt;br&gt;I wonder what is wrong on bamboo servers!&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;div class=&quot;gmail_quote&quot;&gt;
On Tue, Nov 10, 2009 at 6:31 PM, Roshan Dawrani &lt;span dir=&quot;ltr&quot;&gt;&amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26283143&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;roshandawrani@...&lt;/a&gt;&amp;gt;&lt;/span&gt; wrote:&lt;br&gt;&lt;blockquote class=&quot;gmail_quote&quot; style=&quot;border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;&quot;&gt;
I should also add that locally I have not seen any such increase in the build times.&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div class=&quot;h5&quot;&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;div class=&quot;gmail_quote&quot;&gt;On Tue, Nov 10, 2009 at 6:30 PM, Roshan Dawrani &lt;span dir=&quot;ltr&quot;&gt;&amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26283143&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;roshandawrani@...&lt;/a&gt;&amp;gt;&lt;/span&gt; wrote:&lt;br&gt;

&lt;blockquote class=&quot;gmail_quote&quot; style=&quot;border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;&quot;&gt;Hi,&lt;br&gt;Since y&amp;#39;day, the build times on the Bamboo CI servers seems to have become much longer - normal builds that used to finish in ~8 minutes is now finishing in ~25 minutes and the trunk build with documentation ha gone up from ~35 minutes to ~100 minutes.&lt;br&gt;


&lt;br&gt;Anyone has any idea why? I am observing this change since the build that got triggered because of the GCL#parseClass() change that I introduced - but the only thing extra that it introduced was to append hashCode of script text string to the dummy file name that it generates.&lt;br&gt;


&lt;br&gt;That change should not be the cause of such a dramatic change in the build times, should it?&lt;br&gt;&lt;br&gt;rgds,&lt;br&gt;&lt;font color=&quot;#888888&quot;&gt;Roshan&lt;br&gt;
&lt;/font&gt;&lt;/blockquote&gt;&lt;/div&gt;&lt;br&gt;
&lt;/div&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;/div&gt;&lt;br&gt;
&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/groovy---dev-f11868.html&quot; embed=&quot;fixTarget[11868]&quot; target=&quot;_top&quot; &gt;groovy - dev&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Much-longer-build-times-on-Bamboo-CI-server-tp26283020p26283143.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26283138</id>
	<title>Re: Much longer build times on Bamboo CI server</title>
	<published>2009-11-10T05:09:02Z</published>
	<updated>2009-11-10T05:09:02Z</updated>
	<author>
		<name>Guillaume Laforge-2</name>
	</author>
	<content type="html">Perhaps the machine is totally overloaded.&lt;div&gt;I doubt it&amp;#39;s a hashcode that changes the duration of the CI build so much!&lt;br&gt;&lt;br&gt;&lt;div class=&quot;gmail_quote&quot;&gt;On Tue, Nov 10, 2009 at 14:00, Roshan Dawrani &lt;span dir=&quot;ltr&quot;&gt;&amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26283138&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;roshandawrani@...&lt;/a&gt;&amp;gt;&lt;/span&gt; wrote:&lt;br&gt;
&lt;blockquote class=&quot;gmail_quote&quot; style=&quot;margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;&quot;&gt;Hi,&lt;br&gt;Since y&amp;#39;day, the build times on the Bamboo CI servers seems to have become much longer - normal builds that used to finish in ~8 minutes is now finishing in ~25 minutes and the trunk build with documentation ha gone up from ~35 minutes to ~100 minutes.&lt;br&gt;

&lt;br&gt;Anyone has any idea why? I am observing this change since the build that got triggered because of the GCL#parseClass() change that I introduced - but the only thing extra that it introduced was to append hashCode of script text string to the dummy file name that it generates.&lt;br&gt;

&lt;br&gt;That change should not be the cause of such a dramatic change in the build times, should it?&lt;br&gt;&lt;br&gt;rgds,&lt;br&gt;&lt;font color=&quot;#888888&quot;&gt;Roshan&lt;br&gt;
&lt;/font&gt;&lt;/blockquote&gt;&lt;/div&gt;&lt;br&gt;&lt;br clear=&quot;all&quot;&gt;&lt;br&gt;-- &lt;br&gt;Guillaume Laforge&lt;br&gt;Groovy Project Manager&lt;br&gt;Head of Groovy Development at SpringSource&lt;br&gt;&lt;a href=&quot;http://www.springsource.com/g2one&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.springsource.com/g2one&lt;/a&gt;&lt;br&gt;

&lt;/div&gt;
&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/groovy---dev-f11868.html&quot; embed=&quot;fixTarget[11868]&quot; target=&quot;_top&quot; &gt;groovy - dev&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Much-longer-build-times-on-Bamboo-CI-server-tp26283020p26283138.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26283031</id>
	<title>Re: Much longer build times on Bamboo CI server</title>
	<published>2009-11-10T05:01:45Z</published>
	<updated>2009-11-10T05:01:45Z</updated>
	<author>
		<name>Roshan Dawrani-2</name>
	</author>
	<content type="html">I should also add that locally I have not seen any such increase in the build times.&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;div class=&quot;gmail_quote&quot;&gt;On Tue, Nov 10, 2009 at 6:30 PM, Roshan Dawrani &lt;span dir=&quot;ltr&quot;&gt;&amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26283031&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;roshandawrani@...&lt;/a&gt;&amp;gt;&lt;/span&gt; wrote:&lt;br&gt;
&lt;blockquote class=&quot;gmail_quote&quot; style=&quot;border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;&quot;&gt;Hi,&lt;br&gt;Since y&amp;#39;day, the build times on the Bamboo CI servers seems to have become much longer - normal builds that used to finish in ~8 minutes is now finishing in ~25 minutes and the trunk build with documentation ha gone up from ~35 minutes to ~100 minutes.&lt;br&gt;

&lt;br&gt;Anyone has any idea why? I am observing this change since the build that got triggered because of the GCL#parseClass() change that I introduced - but the only thing extra that it introduced was to append hashCode of script text string to the dummy file name that it generates.&lt;br&gt;

&lt;br&gt;That change should not be the cause of such a dramatic change in the build times, should it?&lt;br&gt;&lt;br&gt;rgds,&lt;br&gt;&lt;font color=&quot;#888888&quot;&gt;Roshan&lt;br&gt;
&lt;/font&gt;&lt;/blockquote&gt;&lt;/div&gt;&lt;br&gt;
&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/groovy---dev-f11868.html&quot; embed=&quot;fixTarget[11868]&quot; target=&quot;_top&quot; &gt;groovy - dev&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Much-longer-build-times-on-Bamboo-CI-server-tp26283020p26283031.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26283020</id>
	<title>Much longer build times on Bamboo CI server</title>
	<published>2009-11-10T05:00:32Z</published>
	<updated>2009-11-10T05:00:32Z</updated>
	<author>
		<name>Roshan Dawrani-2</name>
	</author>
	<content type="html">Hi,&lt;br&gt;Since y&amp;#39;day, the build times on the Bamboo CI servers seems to have become much longer - normal builds that used to finish in ~8 minutes is now finishing in ~25 minutes and the trunk build with documentation ha gone up from ~35 minutes to ~100 minutes.&lt;br&gt;
&lt;br&gt;Anyone has any idea why? I am observing this change since the build that got triggered because of the GCL#parseClass() change that I introduced - but the only thing extra that it introduced was to append hashCode of script text string to the dummy file name that it generates.&lt;br&gt;
&lt;br&gt;That change should not be the cause of such a dramatic change in the build times, should it?&lt;br&gt;&lt;br&gt;rgds,&lt;br&gt;Roshan&lt;br&gt;
&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/groovy---dev-f11868.html&quot; embed=&quot;fixTarget[11868]&quot; target=&quot;_top&quot; &gt;groovy - dev&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Much-longer-build-times-on-Bamboo-CI-server-tp26283020p26283020.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26282160</id>
	<title>[gant-scm]  [10450] gant/trunk/build.gradle: Add back in the removed evaluate.</title>
	<published>2009-11-10T03:55:16Z</published>
	<updated>2009-11-10T03:55:16Z</updated>
	<author>
		<name>russel-9</name>
	</author>
	<content type="html">&lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.1//EN&quot; &quot;http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd&quot;&gt;
&lt;html xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt;
&lt;head&gt;
&lt;title&gt; [10450] gant/trunk/build.gradle: Add back in the removed evaluate.&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;

&lt;div id=&quot;msg&quot;&gt;
&lt;dl&gt;
&lt;dt&gt;Revision&lt;/dt&gt; &lt;dd&gt;&lt;a href=&quot;http://fisheye.codehaus.org/changelog/gant/?cs=10450&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;10450&lt;/a&gt;&lt;/dd&gt;
&lt;dt&gt;Author&lt;/dt&gt; &lt;dd&gt;russel&lt;/dd&gt;
&lt;dt&gt;Date&lt;/dt&gt; &lt;dd&gt;2009-11-10 05:55:16 -0600 (Tue, 10 Nov 2009)&lt;/dd&gt;
&lt;/dl&gt;

&lt;h3&gt;Log Message&lt;/h3&gt;
&lt;pre&gt;Add back in the removed evaluate.&lt;/pre&gt;

&lt;h3&gt;Modified Paths&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;#ganttrunkbuildgradle&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;gant/trunk/build.gradle&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;div id=&quot;patch&quot;&gt;
&lt;h3&gt;Diff&lt;/h3&gt;
&lt;a id=&quot;ganttrunkbuildgradle&quot; target=&quot;_top&quot;&gt;&lt;/a&gt;
&lt;div class=&quot;modfile&quot;&gt;&lt;h4&gt;Modified: gant/trunk/build.gradle (10449 =&gt; 10450)&lt;/h4&gt;
&lt;pre class=&quot;diff&quot;&gt;
&lt;span class=&quot;info&quot;&gt;--- gant/trunk/build.gradle	2009-11-10 11:55:11 UTC (rev 10449)
+++ gant/trunk/build.gradle	2009-11-10 11:55:16 UTC (rev 10450)
&lt;/span&gt;&lt;span class=&quot;lines&quot;&gt;@@ -167,7 +167,7 @@
&lt;/span&gt;&lt;span class=&quot;cx&quot;&gt;   compileGroovy.doFirst { println ( &amp;#39;\n\tUsing Groovy version &amp;#39; + groovyVersion + &amp;#39;\n&amp;#39; ) }
   test.doFirst { groovyAntTaskTestVersionPropertyFile.write ( &amp;#39;groovyAntTaskTestVersion = &amp;#39; + groovyVersion ) }
   def  installDirectory = &amp;#39;/usr/share/gant&amp;#39;
&lt;/span&gt;&lt;span class=&quot;rem&quot;&gt;-  try { installDirectory = gant_installPath }
&lt;/span&gt;&lt;span class=&quot;add&quot;&gt;+  try { installDirectory = evaluate ( &amp;#39;&amp;quot;&amp;#39; + gant_installPath + &amp;#39;&amp;quot;&amp;#39; ) }
&lt;/span&gt;&lt;span class=&quot;cx&quot;&gt;   catch ( MissingPropertyException mpe ) { /* Intentionally left blank. */ }
   task install ( dependsOn : &amp;#39;assemble&amp;#39; , description : &amp;quot;Install Gant (compiled against Groovy ${groovyVersion}) to ${installDirectory}.&amp;quot; ) &amp;lt;&amp;lt; {
     def installBinDirectory = installDirectory + &amp;#39;/bin&amp;#39;
&lt;/span&gt;
&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;/body&gt;
&lt;/html&gt;

&lt;hr /&gt;
&lt;p&gt;
To unsubscribe from this list please visit:
&lt;/p&gt;
&lt;p&gt;
    &lt;a href=&quot;http://xircles.codehaus.org/manage_email&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://xircles.codehaus.org/manage_email&lt;/a&gt;

&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/GANT----Scm-f33774.html&quot; embed=&quot;fixTarget[33774]&quot; target=&quot;_top&quot; &gt;GANT -- Scm&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/-gant-scm----10450--gant-trunk-build.gradle%3A-Add-back-in-the-removed-evaluate.-tp26282160p26282160.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26282158</id>
	<title>[gant-scm]  [10449] gant/trunk/build.gradle: Change the way in which gant_installPath is processed to deal with the case when it is not defined.</title>
	<published>2009-11-10T03:55:11Z</published>
	<updated>2009-11-10T03:55:11Z</updated>
	<author>
		<name>russel-9</name>
	</author>
	<content type="html">&lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.1//EN&quot; &quot;http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd&quot;&gt;
&lt;html xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt;
&lt;head&gt;
&lt;title&gt; [10449] gant/trunk/build.gradle: Change the way in which gant_installPath is processed to deal with the case when it is not defined.&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;

&lt;div id=&quot;msg&quot;&gt;
&lt;dl&gt;
&lt;dt&gt;Revision&lt;/dt&gt; &lt;dd&gt;&lt;a href=&quot;http://fisheye.codehaus.org/changelog/gant/?cs=10449&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;10449&lt;/a&gt;&lt;/dd&gt;
&lt;dt&gt;Author&lt;/dt&gt; &lt;dd&gt;russel&lt;/dd&gt;
&lt;dt&gt;Date&lt;/dt&gt; &lt;dd&gt;2009-11-10 05:55:11 -0600 (Tue, 10 Nov 2009)&lt;/dd&gt;
&lt;/dl&gt;

&lt;h3&gt;Log Message&lt;/h3&gt;
&lt;pre&gt;Change the way in which gant_installPath is processed to deal with the case when it is not defined.&lt;/pre&gt;

&lt;h3&gt;Modified Paths&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;#ganttrunkbuildgradle&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;gant/trunk/build.gradle&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;div id=&quot;patch&quot;&gt;
&lt;h3&gt;Diff&lt;/h3&gt;
&lt;a id=&quot;ganttrunkbuildgradle&quot; target=&quot;_top&quot;&gt;&lt;/a&gt;
&lt;div class=&quot;modfile&quot;&gt;&lt;h4&gt;Modified: gant/trunk/build.gradle (10448 =&gt; 10449)&lt;/h4&gt;
&lt;pre class=&quot;diff&quot;&gt;
&lt;span class=&quot;info&quot;&gt;--- gant/trunk/build.gradle	2009-11-10 10:30:02 UTC (rev 10448)
+++ gant/trunk/build.gradle	2009-11-10 11:55:11 UTC (rev 10449)
&lt;/span&gt;&lt;span class=&quot;lines&quot;&gt;@@ -166,7 +166,9 @@
&lt;/span&gt;&lt;span class=&quot;cx&quot;&gt;   dependencies { groovy ( &amp;#39;org.codehaus.groovy:groovy-all:&amp;#39; + groovyVersion ) }
   compileGroovy.doFirst { println ( &amp;#39;\n\tUsing Groovy version &amp;#39; + groovyVersion + &amp;#39;\n&amp;#39; ) }
   test.doFirst { groovyAntTaskTestVersionPropertyFile.write ( &amp;#39;groovyAntTaskTestVersion = &amp;#39; + groovyVersion ) }
&lt;/span&gt;&lt;span class=&quot;rem&quot;&gt;-  def  installDirectory = evaluate ( &amp;#39;&amp;quot;&amp;#39; + ( gant_installPath ?: &amp;#39;/usr/share/gant&amp;#39; ) + &amp;#39;&amp;quot;&amp;#39; )
&lt;/span&gt;&lt;span class=&quot;add&quot;&gt;+  def  installDirectory = &amp;#39;/usr/share/gant&amp;#39;
+  try { installDirectory = gant_installPath }
+  catch ( MissingPropertyException mpe ) { /* Intentionally left blank. */ }
&lt;/span&gt;&lt;span class=&quot;cx&quot;&gt;   task install ( dependsOn : &amp;#39;assemble&amp;#39; , description : &amp;quot;Install Gant (compiled against Groovy ${groovyVersion}) to ${installDirectory}.&amp;quot; ) &amp;lt;&amp;lt; {
     def installBinDirectory = installDirectory + &amp;#39;/bin&amp;#39;
     def scriptsDirectory = &amp;#39;../scripts&amp;#39;
&lt;/span&gt;
&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;/body&gt;
&lt;/html&gt;

&lt;hr /&gt;
&lt;p&gt;
To unsubscribe from this list please visit:
&lt;/p&gt;
&lt;p&gt;
    &lt;a href=&quot;http://xircles.codehaus.org/manage_email&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://xircles.codehaus.org/manage_email&lt;/a&gt;

&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/GANT----Scm-f33774.html&quot; embed=&quot;fixTarget[33774]&quot; target=&quot;_top&quot; &gt;GANT -- Scm&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/-gant-scm----10449--gant-trunk-build.gradle%3A-Change-the-way-in-which-gant_installPath-is-processed-to-deal-with-the-case-when-it-is-not-defined.-tp26282158p26282158.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26281904</id>
	<title>Re: Licensing of the sample code and sample document  for the online course</title>
	<published>2009-11-10T03:30:54Z</published>
	<updated>2009-11-10T03:30:54Z</updated>
	<author>
		<name>Guillaume Laforge-2</name>
	</author>
	<content type="html">Hi!&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;True that there&amp;#39;s no license specified on our online documentation.&lt;/div&gt;&lt;div&gt;I think we can safely consider it being licensed under the same terms as our codebase.&lt;/div&gt;&lt;div&gt;Ideally, I think we should probably have a look at the creative commons licenses which may be more appropriate for documentation content.&lt;/div&gt;
&lt;div&gt;Anyhow, feel free to take inspiration from the online documentation for your online courses.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Guillaume&lt;br&gt;&lt;br&gt;&lt;div class=&quot;gmail_quote&quot;&gt;On Sun, Nov 8, 2009 at 23:41, Sang Shin &lt;span dir=&quot;ltr&quot;&gt;&amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26281904&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;sangshinpassion@...&lt;/a&gt;&amp;gt;&lt;/span&gt; wrote:&lt;br&gt;
&lt;blockquote class=&quot;gmail_quote&quot; style=&quot;margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;&quot;&gt;&lt;br&gt;
I am not sure if this is the right alias to ask this question.  Hopefully someone&lt;br&gt;
knows the answer.&lt;br&gt;
&lt;br&gt;
My name is Sang Shin.  I teach several free online courses through&lt;br&gt;
&lt;a href=&quot;http://javapassion.com&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot;&gt;javapassion.com&lt;/a&gt; below.&lt;br&gt;
&lt;br&gt;
   &lt;a href=&quot;http://www.javapassion.com/&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot;&gt;http://www.javapassion.com/&lt;/a&gt;&lt;br&gt;
&lt;br&gt;
I am planning to start &amp;quot;Groovy and Grails (with Passion!)&amp;quot; online course&lt;br&gt;
from Jan. 10th, 2010.&lt;br&gt;
&lt;br&gt;
Now I am wondering if I can borrow the code and document from the&lt;br&gt;
Groovy document site below  (without violating any copyright). &lt;br&gt;
  &lt;a href=&quot;http://groovy.codehaus.org/Documentation&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot;&gt;http://groovy.codehaus.org/Documentation&lt;/a&gt;&lt;br&gt;
&lt;br&gt;
Thanks in advance.&lt;br&gt;
&lt;br&gt;
-Sang&lt;br&gt;
&lt;br&gt;
-- &lt;br&gt;
---------------------------------------------------------------&lt;br&gt;
  Sang Shin, &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26281904&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;sangshinpassion@...&lt;/a&gt;, &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26281904&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;sang.shin@...&lt;/a&gt;&lt;br&gt;
    &lt;a href=&quot;http://www.javapassion.com/SangShinSchedule.html&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot;&gt;http://www.javapassion.com/SangShinSchedule.html&lt;/a&gt;&lt;br&gt;
        (Life is worth living... with Passion!)&lt;br&gt;
---------------------------------------------------------------&lt;br&gt;
&amp;quot;Ajax and Web 2.0 Programming&amp;quot; course starts from Sep. 7th, 2009&lt;br&gt;
     &lt;a href=&quot;http://www.javapassion.com/ajaxcodecamp/&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot;&gt;http://www.javapassion.com/ajaxcodecamp/&lt;/a&gt;&lt;br&gt;
&amp;quot;Java EE Programming Advanced&amp;quot; course starts from Oct. 1st, 2009&lt;br&gt;
     &lt;a href=&quot;http://www.javapassion.com/javaee_advanced/&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot;&gt;http://www.javapassion.com/javaee_advanced/&lt;/a&gt;&lt;br&gt;
---------------------------------------------------------------&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
---------------------------------------------------------------------&lt;br&gt;
To unsubscribe from this list, please visit:&lt;br&gt;
&lt;br&gt;
   &lt;a href=&quot;http://xircles.codehaus.org/manage_email&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot;&gt;http://xircles.codehaus.org/manage_email&lt;/a&gt;&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;/blockquote&gt;&lt;/div&gt;&lt;br&gt;&lt;br clear=&quot;all&quot;&gt;&lt;br&gt;-- &lt;br&gt;Guillaume Laforge&lt;br&gt;Groovy Project Manager&lt;br&gt;Head of Groovy Development at SpringSource&lt;br&gt;&lt;a href=&quot;http://www.springsource.com/g2one&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.springsource.com/g2one&lt;/a&gt;&lt;br&gt;

&lt;/div&gt;
&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/groovy---user-f11867.html&quot; embed=&quot;fixTarget[11867]&quot; target=&quot;_top&quot; &gt;groovy - user&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Licensing-of-the-sample-code-and-sample-document-for-the-online-course-tp26258811p26281904.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26281792</id>
	<title>Re: On static compilation of Groovy</title>
	<published>2009-11-10T03:19:07Z</published>
	<updated>2009-11-10T03:19:07Z</updated>
	<author>
		<name>Robert Fischer</name>
	</author>
	<content type="html">&amp;nbsp;&amp;gt; All this idea of a &amp;quot;static groovy&amp;quot; mode has been debated so many times
&lt;br&gt;&amp;nbsp;&amp;gt; in the past on the mailing-list that I'm lazy reiterating all the bad
&lt;br&gt;&amp;nbsp;&amp;gt; points about it.
&lt;br&gt;&amp;nbsp;&amp;gt; Just a one minute search brought me numerous threads on the topics, on
&lt;br&gt;&amp;nbsp;&amp;gt; the challenges and issues about this static groovy idea:
&lt;br&gt;&amp;nbsp;&amp;gt; &lt;a href=&quot;http://markmail.org/thread/ncv4uhcsd4qgtsni&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://markmail.org/thread/ncv4uhcsd4qgtsni&lt;/a&gt;&lt;br&gt;&amp;nbsp;&amp;gt; &lt;a href=&quot;http://markmail.org/thread/rar6j5j47kl7yjlp&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://markmail.org/thread/rar6j5j47kl7yjlp&lt;/a&gt;&lt;br&gt;&amp;nbsp;&amp;gt; &lt;a href=&quot;http://markmail.org/thread/wslb4sc75xsykbq3&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://markmail.org/thread/wslb4sc75xsykbq3&lt;/a&gt;&lt;br&gt;&amp;nbsp;&amp;gt; &lt;a href=&quot;http://markmail.org/thread/ufo6ekbvlie3j3pm&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://markmail.org/thread/ufo6ekbvlie3j3pm&lt;/a&gt;&lt;br&gt;&amp;nbsp;&amp;gt; &lt;a href=&quot;http://markmail.org/thread/hxfh5tpp6psyg6rg&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://markmail.org/thread/hxfh5tpp6psyg6rg&lt;/a&gt;&lt;br&gt;&amp;nbsp;&amp;gt; &lt;a href=&quot;http://markmail.org/thread/p7hnerkarsyx3te7&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://markmail.org/thread/p7hnerkarsyx3te7&lt;/a&gt;&lt;br&gt;&amp;nbsp;&amp;gt; &lt;a href=&quot;http://markmail.org/thread/p7hnerkarsyx3te7&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://markmail.org/thread/p7hnerkarsyx3te7&lt;/a&gt;&lt;br&gt;&amp;nbsp;&amp;gt; &lt;a href=&quot;http://markmail.org/thread/g2a2gxahspj2iilt&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://markmail.org/thread/g2a2gxahspj2iilt&lt;/a&gt;&lt;br&gt;&amp;nbsp;&amp;gt; &lt;a href=&quot;http://markmail.org/thread/nxt4e2oxfnf6m647&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://markmail.org/thread/nxt4e2oxfnf6m647&lt;/a&gt;&lt;br&gt;&lt;br&gt;Best. &amp;nbsp;Rebuttal. &amp;nbsp;EVAR.
&lt;br&gt;&lt;br&gt;&lt;br&gt;~~ Robert Fischer, Smokejumper IT Consulting.
&lt;br&gt;Enfranchised Mind Blog &lt;a href=&quot;http://EnfranchisedMind.com/blog&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://EnfranchisedMind.com/blog&lt;/a&gt;&lt;br&gt;&lt;br&gt;Grails Expert Retainer Services
&lt;br&gt;&lt;a href=&quot;http://smokejumperit.com/grails-retainer/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://smokejumperit.com/grails-retainer/&lt;/a&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;Guillaume Laforge wrote:
&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; On Mon, Nov 9, 2009 at 19:09, David Clark &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26281792&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;davidclark@...&lt;/a&gt;&amp;gt; wrote:
&lt;br&gt;&amp;gt;&amp;gt; In your article you make the assertion, &amp;quot;due to performance reasons Groovy is
&lt;br&gt;&amp;gt;&amp;gt; almost useless today for multi-core programming&amp;quot; without giving any reasons or
&lt;br&gt;&amp;gt;&amp;gt; data to defend the assertion. &amp;nbsp;I can't think of why this assertion should
&lt;br&gt;&amp;gt;&amp;gt; hold. &amp;nbsp;Of course Groovy is inappropriate for computation intensive code, but
&lt;br&gt;&amp;gt;&amp;gt; this holds for any number of threads and any number of cores. &amp;nbsp;Why would
&lt;br&gt;&amp;gt;&amp;gt; properly parallelized Groovy code be inappropriate for code that engages in
&lt;br&gt;&amp;gt;&amp;gt; lots of IO, which is the bulk of what business oriented code does?
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; Indeed. Despite Groovy being slower than pure Java, the overhead is
&lt;br&gt;&amp;gt; usually ridiculous compared to the time software waits for data to
&lt;br&gt;&amp;gt; come up from the database. And optimizing the IO access is usually
&lt;br&gt;&amp;gt; going to offer leaps in the scalability and/or performance of your
&lt;br&gt;&amp;gt; code.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt;&amp;gt; As for statically compiling Groovy code I'm all for it provided that 1) It's
&lt;br&gt;&amp;gt;&amp;gt; entirely transparent for end users, 2) It does not increase the complexity of
&lt;br&gt;&amp;gt;&amp;gt; the Groovy compiler thereby increasing bugs and slowing down development of
&lt;br&gt;&amp;gt;&amp;gt; other features, and 3) It changes none of the semantics of current Groovy
&lt;br&gt;&amp;gt;&amp;gt; code. &amp;nbsp;I doubt those three things are possible, but I am willing to be proved
&lt;br&gt;&amp;gt;&amp;gt; wrong.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; All this idea of a &amp;quot;static groovy&amp;quot; mode has been debated so many times
&lt;br&gt;&amp;gt; in the past on the mailing-list that I'm lazy reiterating all the bad
&lt;br&gt;&amp;gt; points about it.
&lt;br&gt;&amp;gt; Just a one minute search brought me numerous threads on the topics, on
&lt;br&gt;&amp;gt; the challenges and issues about this static groovy idea:
&lt;br&gt;&amp;gt; &lt;a href=&quot;http://markmail.org/thread/ncv4uhcsd4qgtsni&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://markmail.org/thread/ncv4uhcsd4qgtsni&lt;/a&gt;&lt;br&gt;&amp;gt; &lt;a href=&quot;http://markmail.org/thread/rar6j5j47kl7yjlp&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://markmail.org/thread/rar6j5j47kl7yjlp&lt;/a&gt;&lt;br&gt;&amp;gt; &lt;a href=&quot;http://markmail.org/thread/wslb4sc75xsykbq3&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://markmail.org/thread/wslb4sc75xsykbq3&lt;/a&gt;&lt;br&gt;&amp;gt; &lt;a href=&quot;http://markmail.org/thread/ufo6ekbvlie3j3pm&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://markmail.org/thread/ufo6ekbvlie3j3pm&lt;/a&gt;&lt;br&gt;&amp;gt; &lt;a href=&quot;http://markmail.org/thread/hxfh5tpp6psyg6rg&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://markmail.org/thread/hxfh5tpp6psyg6rg&lt;/a&gt;&lt;br&gt;&amp;gt; &lt;a href=&quot;http://markmail.org/thread/p7hnerkarsyx3te7&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://markmail.org/thread/p7hnerkarsyx3te7&lt;/a&gt;&lt;br&gt;&amp;gt; &lt;a href=&quot;http://markmail.org/thread/p7hnerkarsyx3te7&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://markmail.org/thread/p7hnerkarsyx3te7&lt;/a&gt;&lt;br&gt;&amp;gt; &lt;a href=&quot;http://markmail.org/thread/g2a2gxahspj2iilt&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://markmail.org/thread/g2a2gxahspj2iilt&lt;/a&gt;&lt;br&gt;&amp;gt; &lt;a href=&quot;http://markmail.org/thread/nxt4e2oxfnf6m647&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://markmail.org/thread/nxt4e2oxfnf6m647&lt;/a&gt;&lt;br&gt;&amp;gt; And I'm sure there are even older threads on the topic.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; But to answer your points: 1) It won't be transparent in the sense
&lt;br&gt;&amp;gt; that you would have to demarcate the code that would be made &amp;quot;static&amp;quot;
&lt;br&gt;&amp;gt; (not a bad thing per se, though), but then avoid mixing static /
&lt;br&gt;&amp;gt; non-static code, otherwise you wouldn't be able to really know what is
&lt;br&gt;&amp;gt; or what is not statically compiled. 2) Of course it'll increase the
&lt;br&gt;&amp;gt; complexity of the compiler. More advanced / complex features means
&lt;br&gt;&amp;gt; more complexity to deal with, more bugs, a longer time to get it
&lt;br&gt;&amp;gt; right, less resource / time to work on other features. And 3) it'd
&lt;br&gt;&amp;gt; definitely change the semantics of current Groovy code, as for
&lt;br&gt;&amp;gt; instance, the method resolution in a static mode is different from a
&lt;br&gt;&amp;gt; dynamic mode. Groovy's multimethods wouldn't work, meaning that
&lt;br&gt;&amp;gt; calling foo(a) wouldn't call the same method foo(Object) or foo(A) in
&lt;br&gt;&amp;gt; static vs non-static mode. Groovy choses the method according to the
&lt;br&gt;&amp;gt; runtime type, a static mode wouldn't.
&lt;br&gt;&amp;gt; So this is all far from seamless, transparent. In the end, it somehow
&lt;br&gt;&amp;gt; means maintaining two compilers in one.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt;&amp;gt; Also, how many of the speed problems with dynamic dispatch will be alleviated
&lt;br&gt;&amp;gt;&amp;gt; with the new invokedynamic that is supposed to start appearing in JVM's
&lt;br&gt;&amp;gt;&amp;gt; sometime in the future?
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; It's still early to really tell, as &amp;quot;invokedynamic&amp;quot; is still a work in
&lt;br&gt;&amp;gt; progress. But hopefully, some significant gains will come from it,
&lt;br&gt;&amp;gt; although it's still difficult to know what the real gains will be till
&lt;br&gt;&amp;gt; there's a definitive working version available and testable.
&lt;br&gt;&amp;gt; But I'd much rather see efforts improving &amp;quot;dynamic Groovy&amp;quot;
&lt;br&gt;&amp;gt; (performance, features, etc), than abandonning this idea and turning
&lt;br&gt;&amp;gt; Groovy into Java plus some syntaxic sugar only.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt;&amp;gt; Also, if the objections to static compiling that I raised above cannot be met
&lt;br&gt;&amp;gt;&amp;gt; there are alternatives to speeding up Groovy code that seem easier to
&lt;br&gt;&amp;gt;&amp;gt; implement but would give big speedups to performance critical code. &amp;nbsp;One would
&lt;br&gt;&amp;gt;&amp;gt; be to allow embedding java or scala code like C/C++ compiles allow embedding
&lt;br&gt;&amp;gt;&amp;gt; of ASM code. &amp;nbsp;Granted it is already possible to mix and match Groovy, Java,
&lt;br&gt;&amp;gt;&amp;gt; and Scala, so this doesn't provide anything that can't already be done, it
&lt;br&gt;&amp;gt;&amp;gt; simply provides convenience to the programmer.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; The integration is pretty much seamless already.
&lt;br&gt;&amp;gt; Adding a small Java class for a routine that needs to be speed up is so easy.
&lt;br&gt;&amp;gt; Once you've got your project build using the groovyc compiler (Ant
&lt;br&gt;&amp;gt; build, GMaven, Gradle, whatever), you usually don't have much work to
&lt;br&gt;&amp;gt; do to joint-compile Groovy and Java together -- perhaps just a few
&lt;br&gt;&amp;gt; lines to customize the javac call.
&lt;br&gt;&amp;gt; The benefit also is it clearly demarcates what's statically-compiled
&lt;br&gt;&amp;gt; (Java) and what's your dynamic code (Groovy).
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp;[...]
&lt;br&gt;&amp;gt; 
&lt;/div&gt;&lt;br&gt;---------------------------------------------------------------------
&lt;br&gt;To unsubscribe from this list, please visit:
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &lt;a href=&quot;http://xircles.codehaus.org/manage_email&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://xircles.codehaus.org/manage_email&lt;/a&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/groovy---user-f11867.html&quot; embed=&quot;fixTarget[11867]&quot; target=&quot;_top&quot; &gt;groovy - user&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/On-static-compilation-of-Groovy-tp26269191p26281792.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26281732</id>
	<title>[gant-scm] [jira] Assigned: (GANT-111) Exceptions caught in gant are wrapped in an exception that is not a descendant of ant's BuildException</title>
	<published>2009-11-10T03:13:55Z</published>
	<updated>2009-11-10T03:13:55Z</updated>
	<author>
		<name>JIRA jira@codehaus.org</name>
	</author>
	<content type="html">&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;[ &lt;a href=&quot;http://jira.codehaus.org/browse/GANT-111?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://jira.codehaus.org/browse/GANT-111?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel&lt;/a&gt;&amp;nbsp;]
&lt;br&gt;&lt;br&gt;Russel Winder reassigned GANT-111:
&lt;br&gt;----------------------------------
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; Assignee: Russel Winder
&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; Exceptions caught in gant are wrapped in an exception that is not a descendant of ant's BuildException
&lt;br&gt;&amp;gt; ------------------------------------------------------------------------------------------------------
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Key: GANT-111
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; URL: &lt;a href=&quot;http://jira.codehaus.org/browse/GANT-111&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://jira.codehaus.org/browse/GANT-111&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Project: Gant
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Issue Type: Bug
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Components: Core
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;Affects Versions: 1.8.0
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Reporter: Eric Van Dewoestine
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Assignee: Russel Winder
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Fix For: 1.9.0
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Attachments: gant_buildexception.diff
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; When an exception is raised and subsequently caught by gant, that exception is wrapped in a TargetExecutionException, which is not a descendant of ant's BuildException, and that exception is then thrown. &amp;nbsp;This can be problematic when gant is invoked from ant since ant handles BuildExceptions differently than all other exception types.
&lt;br&gt;&amp;gt; When ant catches a BuildException it will suppress the stack trace associated with that exception (unless you add the -debug flag) and simply print a normal ant failure message that ant users should be accustom to. &amp;nbsp;When ant catches the TargetExecutionException (or any non-BuildException descendant), it will print out its stack trace, which in turn will print the root exception stack trace leading to two very large stack traces dumped onto the screen.
&lt;br&gt;&amp;gt; A slightly worse case arises if the gant build file issues a call to ant.fail(message: &amp;quot;some message&amp;quot;), which will again result in the two very large stack traces printed, since the BuildException raised by the fail task is wrapped in a non-BuildException. &amp;nbsp;Since ant.fail can be commonly used to abort a build and report useful information to the user, having that information buried in stack traces can severely affect the usability of the build file.
&lt;br&gt;&amp;gt; Attached is a patch which alters GantException to now subclass BuildException and adds a test case where the fail task is invoked in gant from a parent ant script.
&lt;/div&gt;&lt;br&gt;-- 
&lt;br&gt;This message is automatically generated by JIRA.
&lt;br&gt;-
&lt;br&gt;If you think it was sent incorrectly contact one of the administrators: &lt;a href=&quot;http://jira.codehaus.org/secure/Administrators.jspa&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://jira.codehaus.org/secure/Administrators.jspa&lt;/a&gt;&lt;br&gt;-
&lt;br&gt;For more information on JIRA, see: &lt;a href=&quot;http://www.atlassian.com/software/jira&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.atlassian.com/software/jira&lt;/a&gt;&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 
&lt;br&gt;&lt;br&gt;&amp;lt;hr/&amp;gt;
&lt;br&gt;&amp;lt;p&amp;gt;
&lt;br&gt;To unsubscribe from this list please visit:
&lt;br&gt;&amp;lt;/p&amp;gt;
&lt;br&gt;&amp;lt;p&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;lt;a href=&amp;quot;&lt;a href=&quot;http://xircles.codehaus.org/manage_email&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://xircles.codehaus.org/manage_email&lt;/a&gt;&amp;quot;&amp;gt;&lt;a href=&quot;http://xircles.codehaus.org/manage_email&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://xircles.codehaus.org/manage_email&lt;/a&gt;&amp;lt;/a&amp;gt;
&lt;br&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/GANT----Scm-f33774.html&quot; embed=&quot;fixTarget[33774]&quot; target=&quot;_top&quot; &gt;GANT -- Scm&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/-gant-scm---jira--Created%3A-%28GANT-111%29-Exceptions-caught-in-gant-are-wrapped-in-an-exception-that-is-not-a-descendant-of-ant%27s-BuildException-tp26260461p26281732.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26281714</id>
	<title>[gant-scm] [jira] Resolved: (GANT-111) Exceptions caught in gant are wrapped in an exception that is not a descendant of ant's BuildException</title>
	<published>2009-11-10T03:11:55Z</published>
	<updated>2009-11-10T03:11:55Z</updated>
	<author>
		<name>JIRA jira@codehaus.org</name>
	</author>
	<content type="html">&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;[ &lt;a href=&quot;http://jira.codehaus.org/browse/GANT-111?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://jira.codehaus.org/browse/GANT-111?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel&lt;/a&gt;&amp;nbsp;]
&lt;br&gt;&lt;br&gt;Russel Winder resolved GANT-111.
&lt;br&gt;--------------------------------
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; Resolution: Fixed
&lt;br&gt;&lt;br&gt;Test and patch applied. &amp;nbsp;All the Bazaar branches have been updated and the distributions and artefacts also.
&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; Exceptions caught in gant are wrapped in an exception that is not a descendant of ant's BuildException
&lt;br&gt;&amp;gt; ------------------------------------------------------------------------------------------------------
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Key: GANT-111
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; URL: &lt;a href=&quot;http://jira.codehaus.org/browse/GANT-111&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://jira.codehaus.org/browse/GANT-111&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Project: Gant
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Issue Type: Bug
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Components: Core
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;Affects Versions: 1.8.0
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Reporter: Eric Van Dewoestine
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Fix For: 1.9.0
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Attachments: gant_buildexception.diff
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; When an exception is raised and subsequently caught by gant, that exception is wrapped in a TargetExecutionException, which is not a descendant of ant's BuildException, and that exception is then thrown. &amp;nbsp;This can be problematic when gant is invoked from ant since ant handles BuildExceptions differently than all other exception types.
&lt;br&gt;&amp;gt; When ant catches a BuildException it will suppress the stack trace associated with that exception (unless you add the -debug flag) and simply print a normal ant failure message that ant users should be accustom to. &amp;nbsp;When ant catches the TargetExecutionException (or any non-BuildException descendant), it will print out its stack trace, which in turn will print the root exception stack trace leading to two very large stack traces dumped onto the screen.
&lt;br&gt;&amp;gt; A slightly worse case arises if the gant build file issues a call to ant.fail(message: &amp;quot;some message&amp;quot;), which will again result in the two very large stack traces printed, since the BuildException raised by the fail task is wrapped in a non-BuildException. &amp;nbsp;Since ant.fail can be commonly used to abort a build and report useful information to the user, having that information buried in stack traces can severely affect the usability of the build file.
&lt;br&gt;&amp;gt; Attached is a patch which alters GantException to now subclass BuildException and adds a test case where the fail task is invoked in gant from a parent ant script.
&lt;/div&gt;&lt;br&gt;-- 
&lt;br&gt;This message is automatically generated by JIRA.
&lt;br&gt;-
&lt;br&gt;If you think it was sent incorrectly contact one of the administrators: &lt;a href=&quot;http://jira.codehaus.org/secure/Administrators.jspa&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://jira.codehaus.org/secure/Administrators.jspa&lt;/a&gt;&lt;br&gt;-
&lt;br&gt;For more information on JIRA, see: &lt;a href=&quot;http://www.atlassian.com/software/jira&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.atlassian.com/software/jira&lt;/a&gt;&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 
&lt;br&gt;&lt;br&gt;&amp;lt;hr/&amp;gt;
&lt;br&gt;&amp;lt;p&amp;gt;
&lt;br&gt;To unsubscribe from this list please visit:
&lt;br&gt;&amp;lt;/p&amp;gt;
&lt;br&gt;&amp;lt;p&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;lt;a href=&amp;quot;&lt;a href=&quot;http://xircles.codehaus.org/manage_email&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://xircles.codehaus.org/manage_email&lt;/a&gt;&amp;quot;&amp;gt;&lt;a href=&quot;http://xircles.codehaus.org/manage_email&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://xircles.codehaus.org/manage_email&lt;/a&gt;&amp;lt;/a&amp;gt;
&lt;br&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/GANT----Scm-f33774.html&quot; embed=&quot;fixTarget[33774]&quot; target=&quot;_top&quot; &gt;GANT -- Scm&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/-gant-scm---jira--Created%3A-%28GANT-111%29-Exceptions-caught-in-gant-are-wrapped-in-an-exception-that-is-not-a-descendant-of-ant%27s-BuildException-tp26260461p26281714.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26281249</id>
	<title>[gant-scm]  [10448] gant/trunk: Applied the change from GANT-111.</title>
	<published>2009-11-10T02:30:02Z</published>
	<updated>2009-11-10T02:30:02Z</updated>
	<author>
		<name>russel-9</name>
	</author>
	<content type="html">&lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.1//EN&quot; &quot;http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd&quot;&gt;
&lt;html xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt;
&lt;head&gt;
&lt;title&gt; [10448] gant/trunk: Applied the change from GANT-111.&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;

&lt;div id=&quot;msg&quot;&gt;
&lt;dl&gt;
&lt;dt&gt;Revision&lt;/dt&gt; &lt;dd&gt;&lt;a href=&quot;http://fisheye.codehaus.org/changelog/gant/?cs=10448&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;10448&lt;/a&gt;&lt;/dd&gt;
&lt;dt&gt;Author&lt;/dt&gt; &lt;dd&gt;russel&lt;/dd&gt;
&lt;dt&gt;Date&lt;/dt&gt; &lt;dd&gt;2009-11-10 04:30:02 -0600 (Tue, 10 Nov 2009)&lt;/dd&gt;
&lt;/dl&gt;

&lt;h3&gt;Log Message&lt;/h3&gt;
&lt;pre&gt;Applied the change from &lt;a href=&quot;http://jira.codehaus.org/secure/ViewIssue.jspa?key=GANT-111&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;GANT-111&lt;/a&gt;.&lt;/pre&gt;

&lt;h3&gt;Modified Paths&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;#ganttrunkreleaseNotestxt&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;gant/trunk/releaseNotes.txt&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#ganttrunksrcmaingroovygantGantExceptiongroovy&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;gant/trunk/src/main/groovy/gant/GantException.groovy&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#ganttrunksrctestgroovyorgcodehausgantanttestsGant_Testjava&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;gant/trunk/src/test/groovy/org/codehaus/gant/ant/tests/Gant_Test.java&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#ganttrunksrctestgroovyorgcodehausgantanttestsbuildgant&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;gant/trunk/src/test/groovy/org/codehaus/gant/ant/tests/build.gant&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#ganttrunksrctestgroovyorgcodehausgantanttestsgantTestxml&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;gant/trunk/src/test/groovy/org/codehaus/gant/ant/tests/gantTest.xml&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;div id=&quot;patch&quot;&gt;
&lt;h3&gt;Diff&lt;/h3&gt;
&lt;a id=&quot;ganttrunkreleaseNotestxt&quot; target=&quot;_top&quot;&gt;&lt;/a&gt;
&lt;div class=&quot;modfile&quot;&gt;&lt;h4&gt;Modified: gant/trunk/releaseNotes.txt (10447 =&gt; 10448)&lt;/h4&gt;
&lt;pre class=&quot;diff&quot;&gt;
&lt;span class=&quot;info&quot;&gt;--- gant/trunk/releaseNotes.txt	2009-11-10 10:29:38 UTC (rev 10447)
+++ gant/trunk/releaseNotes.txt	2009-11-10 10:30:02 UTC (rev 10448)
&lt;/span&gt;&lt;span class=&quot;lines&quot;&gt;@@ -9,7 +9,10 @@
&lt;/span&gt;&lt;span class=&quot;cx&quot;&gt; 
 Altered the Gant Ant task so as to provide an inheritAll attribute.  cf. GANT-110.
 
&lt;/span&gt;&lt;span class=&quot;add&quot;&gt;+Switched GantException from extending RuntimeException to extending org.apache.tools.ant.BuildException so
+as to allow better consistency with use of Gant from Ant.  cf. GANT-111.
&lt;/span&gt;&lt;span class=&quot;cx&quot;&gt; 
&lt;/span&gt;&lt;span class=&quot;add&quot;&gt;+
&lt;/span&gt;&lt;span class=&quot;cx&quot;&gt; 1.8.1
 -----
 
&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;a id=&quot;ganttrunksrcmaingroovygantGantExceptiongroovy&quot; target=&quot;_top&quot;&gt;&lt;/a&gt;
&lt;div class=&quot;modfile&quot;&gt;&lt;h4&gt;Modified: gant/trunk/src/main/groovy/gant/GantException.groovy (10447 =&gt; 10448)&lt;/h4&gt;
&lt;pre class=&quot;diff&quot;&gt;
&lt;span class=&quot;info&quot;&gt;--- gant/trunk/src/main/groovy/gant/GantException.groovy	2009-11-10 10:29:38 UTC (rev 10447)
+++ gant/trunk/src/main/groovy/gant/GantException.groovy	2009-11-10 10:30:02 UTC (rev 10448)
&lt;/span&gt;&lt;span class=&quot;lines&quot;&gt;@@ -14,12 +14,19 @@
&lt;/span&gt;&lt;span class=&quot;cx&quot;&gt; 
 package gant
 
&lt;/span&gt;&lt;span class=&quot;add&quot;&gt;+//  Peter&amp;#39;s original extended RuntimeException.  GANT-111 introduced the problem that this cauises problems
+//  for usage with Ant tasks -- where the exception really needs to be a descendent of
+//  org.apache.tools.ant.BuildException.  Making this change should not affect stand alone activity.  Thanks
+//  to Eric Van Dewoestine for providing this change.
+
+import org.apache.tools.ant.BuildException
+
&lt;/span&gt;&lt;span class=&quot;cx&quot;&gt; /**
  *  Generic Gant exception.
  *
  *  @author Peter Ledbrook 
  */
&lt;/span&gt;&lt;span class=&quot;rem&quot;&gt;-class GantException extends RuntimeException {
&lt;/span&gt;&lt;span class=&quot;add&quot;&gt;+class GantException extends /*RuntimeException*/ BuildException {
&lt;/span&gt;&lt;span class=&quot;cx&quot;&gt;   public GantException ( ) { super( ) }
   public GantException ( String msg ) { super ( msg ) }
   public GantException ( Exception e ) { super ( e ) }
&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;a id=&quot;ganttrunksrctestgroovyorgcodehausgantanttestsGant_Testjava&quot; target=&quot;_top&quot;&gt;&lt;/a&gt;
&lt;div class=&quot;modfile&quot;&gt;&lt;h4&gt;Modified: gant/trunk/src/test/groovy/org/codehaus/gant/ant/tests/Gant_Test.java (10447 =&gt; 10448)&lt;/h4&gt;
&lt;pre class=&quot;diff&quot;&gt;
&lt;span class=&quot;info&quot;&gt;--- gant/trunk/src/test/groovy/org/codehaus/gant/ant/tests/Gant_Test.java	2009-11-10 10:29:38 UTC (rev 10447)
+++ gant/trunk/src/test/groovy/org/codehaus/gant/ant/tests/Gant_Test.java	2009-11-10 10:30:02 UTC (rev 10448)
&lt;/span&gt;&lt;span class=&quot;lines&quot;&gt;@@ -392,4 +392,13 @@
&lt;/span&gt;&lt;span class=&quot;cx&quot;&gt;     assertEquals ( &amp;quot;     [echo] ${gant.test.inheritAll}&amp;quot; , output.get ( 15 ) ) ;
     assertEquals ( &amp;quot;     [echo] gantInheritAllWorks&amp;quot; , output.get ( 18 ) ) ;
   }
&lt;/span&gt;&lt;span class=&quot;add&quot;&gt;+
+  //  For dealing with GANT-111 -- thanks to Eric Van Dewoestine for providing this.
+
+  public void testGantTaskFaile ( ) {
+    final List&amp;lt;String&amp;gt; result = runAnt ( antFile.getPath ( ) , &amp;quot;gantTestFail&amp;quot; , 1 , true ) ;
+    assert result.size ( ) == 2 ;
+    assertEquals ( &amp;quot;\nBUILD FAILED\n: test fail message\n\n\n&amp;quot; , trimTimeFromSuccessfulBuild ( result.get ( 1 ) ) ) ;
+  }
+  
&lt;/span&gt;&lt;span class=&quot;cx&quot;&gt; }
&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;a id=&quot;ganttrunksrctestgroovyorgcodehausgantanttestsbuildgant&quot; target=&quot;_top&quot;&gt;&lt;/a&gt;
&lt;div class=&quot;modfile&quot;&gt;&lt;h4&gt;Modified: gant/trunk/src/test/groovy/org/codehaus/gant/ant/tests/build.gant (10447 =&gt; 10448)&lt;/h4&gt;
&lt;pre class=&quot;diff&quot;&gt;
&lt;span class=&quot;info&quot;&gt;--- gant/trunk/src/test/groovy/org/codehaus/gant/ant/tests/build.gant	2009-11-10 10:29:38 UTC (rev 10447)
+++ gant/trunk/src/test/groovy/org/codehaus/gant/ant/tests/build.gant	2009-11-10 10:30:02 UTC (rev 10448)
&lt;/span&gt;&lt;span class=&quot;lines&quot;&gt;@@ -65,4 +65,10 @@
&lt;/span&gt;&lt;span class=&quot;cx&quot;&gt;   echo ( message : &amp;#39;${gant.test.inheritAll}&amp;#39; )
 }
 
&lt;/span&gt;&lt;span class=&quot;add&quot;&gt;+//  For dealing with GANT-111 -- thanks to Eric Van Dewoestine for providing this.
+
+target ( testFail : &amp;#39;&amp;#39; ){
+  fail ( message : &amp;#39;test fail message&amp;#39; )
+}
+
&lt;/span&gt;&lt;span class=&quot;cx&quot;&gt; setDefaultTarget ( test )
&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;a id=&quot;ganttrunksrctestgroovyorgcodehausgantanttestsgantTestxml&quot; target=&quot;_top&quot;&gt;&lt;/a&gt;
&lt;div class=&quot;modfile&quot;&gt;&lt;h4&gt;Modified: gant/trunk/src/test/groovy/org/codehaus/gant/ant/tests/gantTest.xml (10447 =&gt; 10448)&lt;/h4&gt;
&lt;pre class=&quot;diff&quot;&gt;
&lt;span class=&quot;info&quot;&gt;--- gant/trunk/src/test/groovy/org/codehaus/gant/ant/tests/gantTest.xml	2009-11-10 10:29:38 UTC (rev 10447)
+++ gant/trunk/src/test/groovy/org/codehaus/gant/ant/tests/gantTest.xml	2009-11-10 10:30:02 UTC (rev 10448)
&lt;/span&gt;&lt;span class=&quot;lines&quot;&gt;@@ -71,4 +71,10 @@
&lt;/span&gt;&lt;span class=&quot;cx&quot;&gt;     &amp;lt;gant file=&amp;quot;build.gant&amp;quot; target=&amp;quot;gantInheritAll&amp;quot; inheritAll=&amp;quot;true&amp;quot;/&amp;gt;
   &amp;lt;/target&amp;gt;
   
&lt;/span&gt;&lt;span class=&quot;add&quot;&gt;+  &amp;lt;!-- For GANT-111.  Thanks to Eric Van Dewoestine for providing this. --&amp;gt;
+
+  &amp;lt;target name=&amp;quot;gantTestFail&amp;quot; depends=&amp;quot;-defineGantTask&amp;quot;&amp;gt;
+    &amp;lt;gant file=&amp;quot;build.gant&amp;quot; target=&amp;quot;testFail&amp;quot;/&amp;gt;
+  &amp;lt;/target&amp;gt;
+  
&lt;/span&gt;&lt;span class=&quot;cx&quot;&gt; &amp;lt;/project&amp;gt;
&lt;/span&gt;
&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;/body&gt;
&lt;/html&gt;

&lt;hr /&gt;
&lt;p&gt;
To unsubscribe from this list please visit:
&lt;/p&gt;
&lt;p&gt;
    &lt;a href=&quot;http://xircles.codehaus.org/manage_email&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://xircles.codehaus.org/manage_email&lt;/a&gt;

&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/GANT----Scm-f33774.html&quot; embed=&quot;fixTarget[33774]&quot; target=&quot;_top&quot; &gt;GANT -- Scm&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/-gant-scm----10448--gant-trunk%3A-Applied-the-change-from-GANT-111.-tp26281249p26281249.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26281243</id>
	<title>[gant-scm]  [10447] gant/trunk/build.gradle: Add descriptions to the local install and uninstall tasks.</title>
	<published>2009-11-10T02:29:38Z</published>
	<updated>2009-11-10T02:29:38Z</updated>
	<author>
		<name>russel-9</name>
	</author>
	<content type="html">&lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.1//EN&quot; &quot;http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd&quot;&gt;
&lt;html xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt;
&lt;head&gt;
&lt;title&gt; [10447] gant/trunk/build.gradle: Add descriptions to the local install and uninstall tasks.&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;

&lt;div id=&quot;msg&quot;&gt;
&lt;dl&gt;
&lt;dt&gt;Revision&lt;/dt&gt; &lt;dd&gt;&lt;a href=&quot;http://fisheye.codehaus.org/changelog/gant/?cs=10447&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;10447&lt;/a&gt;&lt;/dd&gt;
&lt;dt&gt;Author&lt;/dt&gt; &lt;dd&gt;russel&lt;/dd&gt;
&lt;dt&gt;Date&lt;/dt&gt; &lt;dd&gt;2009-11-10 04:29:38 -0600 (Tue, 10 Nov 2009)&lt;/dd&gt;
&lt;/dl&gt;

&lt;h3&gt;Log Message&lt;/h3&gt;
&lt;pre&gt;Add descriptions to the local install and uninstall tasks.&lt;/pre&gt;

&lt;h3&gt;Modified Paths&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;#ganttrunkbuildgradle&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;gant/trunk/build.gradle&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;div id=&quot;patch&quot;&gt;
&lt;h3&gt;Diff&lt;/h3&gt;
&lt;a id=&quot;ganttrunkbuildgradle&quot; target=&quot;_top&quot;&gt;&lt;/a&gt;
&lt;div class=&quot;modfile&quot;&gt;&lt;h4&gt;Modified: gant/trunk/build.gradle (10446 =&gt; 10447)&lt;/h4&gt;
&lt;pre class=&quot;diff&quot;&gt;
&lt;span class=&quot;info&quot;&gt;--- gant/trunk/build.gradle	2009-11-09 17:42:07 UTC (rev 10446)
+++ gant/trunk/build.gradle	2009-11-10 10:29:38 UTC (rev 10447)
&lt;/span&gt;&lt;span class=&quot;lines&quot;&gt;@@ -166,8 +166,8 @@
&lt;/span&gt;&lt;span class=&quot;cx&quot;&gt;   dependencies { groovy ( &amp;#39;org.codehaus.groovy:groovy-all:&amp;#39; + groovyVersion ) }
   compileGroovy.doFirst { println ( &amp;#39;\n\tUsing Groovy version &amp;#39; + groovyVersion + &amp;#39;\n&amp;#39; ) }
   test.doFirst { groovyAntTaskTestVersionPropertyFile.write ( &amp;#39;groovyAntTaskTestVersion = &amp;#39; + groovyVersion ) }
&lt;/span&gt;&lt;span class=&quot;rem&quot;&gt;-  task install ( dependsOn : &amp;#39;assemble&amp;#39; ) &amp;lt;&amp;lt; {
-    def installDirectory = evaluate ( &amp;#39;&amp;quot;&amp;#39; + ( gant_installPath ?: &amp;#39;/usr/share/gant&amp;#39; ) + &amp;#39;&amp;quot;&amp;#39; )
&lt;/span&gt;&lt;span class=&quot;add&quot;&gt;+  def  installDirectory = evaluate ( &amp;#39;&amp;quot;&amp;#39; + ( gant_installPath ?: &amp;#39;/usr/share/gant&amp;#39; ) + &amp;#39;&amp;quot;&amp;#39; )
+  task install ( dependsOn : &amp;#39;assemble&amp;#39; , description : &amp;quot;Install Gant (compiled against Groovy ${groovyVersion}) to ${installDirectory}.&amp;quot; ) &amp;lt;&amp;lt; {
&lt;/span&gt;&lt;span class=&quot;cx&quot;&gt;     def installBinDirectory = installDirectory + &amp;#39;/bin&amp;#39;
     def scriptsDirectory = &amp;#39;../scripts&amp;#39;
     copy {
&lt;/span&gt;&lt;span class=&quot;lines&quot;&gt;@@ -185,7 +185,7 @@
&lt;/span&gt;&lt;span class=&quot;cx&quot;&gt;       from ( [ &amp;#39;build/libs&amp;#39; , &amp;#39;../jarfiles&amp;#39; ] )
     }
   }
&lt;/span&gt;&lt;span class=&quot;rem&quot;&gt;-  task uninstall &amp;lt;&amp;lt; { ant.delete ( dir : evaluate ( /&amp;quot;${gant_installPath}&amp;quot;/ ) ) }
&lt;/span&gt;&lt;span class=&quot;add&quot;&gt;+  task uninstall ( description : &amp;quot;Delete ${installDirectory} so as to remove the Gant installation.&amp;quot; ) &amp;lt;&amp;lt; { ant.delete ( dir : installDirectory ) }
&lt;/span&gt;&lt;span class=&quot;cx&quot;&gt; }
 
 ciBuildTasks = [ ]
&lt;/span&gt;
&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;/body&gt;
&lt;/html&gt;

&lt;hr /&gt;
&lt;p&gt;
To unsubscribe from this list please visit:
&lt;/p&gt;
&lt;p&gt;
    &lt;a href=&quot;http://xircles.codehaus.org/manage_email&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://xircles.codehaus.org/manage_email&lt;/a&gt;

&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/GANT----Scm-f33774.html&quot; embed=&quot;fixTarget[33774]&quot; target=&quot;_top&quot; &gt;GANT -- Scm&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/-gant-scm----10447--gant-trunk-build.gradle%3A-Add-descriptions-to-the-local-install-and-uninstall-tasks.-tp26281243p26281243.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26281026</id>
	<title>Re: On static compilation of Groovy</title>
	<published>2009-11-10T02:11:16Z</published>
	<updated>2009-11-10T02:11:16Z</updated>
	<author>
		<name>Guillaume Laforge-2</name>
	</author>
	<content type="html">On Mon, Nov 9, 2009 at 19:09, David Clark &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26281026&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;davidclark@...&lt;/a&gt;&amp;gt; wrote:
&lt;br&gt;&amp;gt; In your article you make the assertion, &amp;quot;due to performance reasons Groovy is
&lt;br&gt;&amp;gt; almost useless today for multi-core programming&amp;quot; without giving any reasons or
&lt;br&gt;&amp;gt; data to defend the assertion.  I can't think of why this assertion should
&lt;br&gt;&amp;gt; hold.  Of course Groovy is inappropriate for computation intensive code, but
&lt;br&gt;&amp;gt; this holds for any number of threads and any number of cores.  Why would
&lt;br&gt;&amp;gt; properly parallelized Groovy code be inappropriate for code that engages in
&lt;br&gt;&amp;gt; lots of IO, which is the bulk of what business oriented code does?
&lt;br&gt;&lt;br&gt;Indeed. Despite Groovy being slower than pure Java, the overhead is
&lt;br&gt;usually ridiculous compared to the time software waits for data to
&lt;br&gt;come up from the database. And optimizing the IO access is usually
&lt;br&gt;going to offer leaps in the scalability and/or performance of your
&lt;br&gt;code.
&lt;br&gt;&lt;br&gt;&amp;gt; As for statically compiling Groovy code I'm all for it provided that 1) It's
&lt;br&gt;&amp;gt; entirely transparent for end users, 2) It does not increase the complexity of
&lt;br&gt;&amp;gt; the Groovy compiler thereby increasing bugs and slowing down development of
&lt;br&gt;&amp;gt; other features, and 3) It changes none of the semantics of current Groovy
&lt;br&gt;&amp;gt; code.  I doubt those three things are possible, but I am willing to be proved
&lt;br&gt;&amp;gt; wrong.
&lt;br&gt;&lt;br&gt;All this idea of a &amp;quot;static groovy&amp;quot; mode has been debated so many times
&lt;br&gt;in the past on the mailing-list that I'm lazy reiterating all the bad
&lt;br&gt;points about it.
&lt;br&gt;Just a one minute search brought me numerous threads on the topics, on
&lt;br&gt;the challenges and issues about this static groovy idea:
&lt;br&gt;&lt;a href=&quot;http://markmail.org/thread/ncv4uhcsd4qgtsni&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://markmail.org/thread/ncv4uhcsd4qgtsni&lt;/a&gt;&lt;br&gt;&lt;a href=&quot;http://markmail.org/thread/rar6j5j47kl7yjlp&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://markmail.org/thread/rar6j5j47kl7yjlp&lt;/a&gt;&lt;br&gt;&lt;a href=&quot;http://markmail.org/thread/wslb4sc75xsykbq3&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://markmail.org/thread/wslb4sc75xsykbq3&lt;/a&gt;&lt;br&gt;&lt;a href=&quot;http://markmail.org/thread/ufo6ekbvlie3j3pm&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://markmail.org/thread/ufo6ekbvlie3j3pm&lt;/a&gt;&lt;br&gt;&lt;a href=&quot;http://markmail.org/thread/hxfh5tpp6psyg6rg&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://markmail.org/thread/hxfh5tpp6psyg6rg&lt;/a&gt;&lt;br&gt;&lt;a href=&quot;http://markmail.org/thread/p7hnerkarsyx3te7&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://markmail.org/thread/p7hnerkarsyx3te7&lt;/a&gt;&lt;br&gt;&lt;a href=&quot;http://markmail.org/thread/p7hnerkarsyx3te7&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://markmail.org/thread/p7hnerkarsyx3te7&lt;/a&gt;&lt;br&gt;&lt;a href=&quot;http://markmail.org/thread/g2a2gxahspj2iilt&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://markmail.org/thread/g2a2gxahspj2iilt&lt;/a&gt;&lt;br&gt;&lt;a href=&quot;http://markmail.org/thread/nxt4e2oxfnf6m647&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://markmail.org/thread/nxt4e2oxfnf6m647&lt;/a&gt;&lt;br&gt;And I'm sure there are even older threads on the topic.
&lt;br&gt;&lt;br&gt;But to answer your points: 1) It won't be transparent in the sense
&lt;br&gt;that you would have to demarcate the code that would be made &amp;quot;static&amp;quot;
&lt;br&gt;(not a bad thing per se, though), but then avoid mixing static /
&lt;br&gt;non-static code, otherwise you wouldn't be able to really know what is
&lt;br&gt;or what is not statically compiled. 2) Of course it'll increase the
&lt;br&gt;complexity of the compiler. More advanced / complex features means
&lt;br&gt;more complexity to deal with, more bugs, a longer time to get it
&lt;br&gt;right, less resource / time to work on other features. And 3) it'd
&lt;br&gt;definitely change the semantics of current Groovy code, as for
&lt;br&gt;instance, the method resolution in a static mode is different from a
&lt;br&gt;dynamic mode. Groovy's multimethods wouldn't work, meaning that
&lt;br&gt;calling foo(a) wouldn't call the same method foo(Object) or foo(A) in
&lt;br&gt;static vs non-static mode. Groovy choses the method according to the
&lt;br&gt;runtime type, a static mode wouldn't.
&lt;br&gt;So this is all far from seamless, transparent. In the end, it somehow
&lt;br&gt;means maintaining two compilers in one.
&lt;br&gt;&lt;br&gt;&amp;gt; Also, how many of the speed problems with dynamic dispatch will be alleviated
&lt;br&gt;&amp;gt; with the new invokedynamic that is supposed to start appearing in JVM's
&lt;br&gt;&amp;gt; sometime in the future?
&lt;br&gt;&lt;br&gt;It's still early to really tell, as &amp;quot;invokedynamic&amp;quot; is still a work in
&lt;br&gt;progress. But hopefully, some significant gains will come from it,
&lt;br&gt;although it's still difficult to know what the real gains will be till
&lt;br&gt;there's a definitive working version available and testable.
&lt;br&gt;But I'd much rather see efforts improving &amp;quot;dynamic Groovy&amp;quot;
&lt;br&gt;(performance, features, etc), than abandonning this idea and turning
&lt;br&gt;Groovy into Java plus some syntaxic sugar only.
&lt;br&gt;&lt;br&gt;&amp;gt; Also, if the objections to static compiling that I raised above cannot be met
&lt;br&gt;&amp;gt; there are alternatives to speeding up Groovy code that seem easier to
&lt;br&gt;&amp;gt; implement but would give big speedups to performance critical code.  One would
&lt;br&gt;&amp;gt; be to allow embedding java or scala code like C/C++ compiles allow embedding
&lt;br&gt;&amp;gt; of ASM code.  Granted it is already possible to mix and match Groovy, Java,
&lt;br&gt;&amp;gt; and Scala, so this doesn't provide anything that can't already be done, it
&lt;br&gt;&amp;gt; simply provides convenience to the programmer.
&lt;br&gt;&lt;br&gt;The integration is pretty much seamless already.
&lt;br&gt;Adding a small Java class for a routine that needs to be speed up is so easy.
&lt;br&gt;Once you've got your project build using the groovyc compiler (Ant
&lt;br&gt;build, GMaven, Gradle, whatever), you usually don't have much work to
&lt;br&gt;do to joint-compile Groovy and Java together -- perhaps just a few
&lt;br&gt;lines to customize the javac call.
&lt;br&gt;The benefit also is it clearly demarcates what's statically-compiled
&lt;br&gt;(Java) and what's your dynamic code (Groovy).
&lt;br&gt;&lt;br&gt;&amp;gt; [...]
&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;Guillaume Laforge
&lt;br&gt;Groovy Project Manager
&lt;br&gt;Head of Groovy Development at SpringSource
&lt;br&gt;&lt;a href=&quot;http://www.springsource.com/g2one&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.springsource.com/g2one&lt;/a&gt;&lt;br&gt;&lt;br&gt;---------------------------------------------------------------------
&lt;br&gt;To unsubscribe from this list, please visit:
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &lt;a href=&quot;http://xircles.codehaus.org/manage_email&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://xircles.codehaus.org/manage_email&lt;/a&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/groovy---user-f11867.html&quot; embed=&quot;fixTarget[11867]&quot; target=&quot;_top&quot; &gt;groovy - user&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/On-static-compilation-of-Groovy-tp26269191p26281026.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26280721</id>
	<title>[gant-scm] [jira] Commented: (GANT-110) Add 'inheritAll' attribute to gant ant task.</title>
	<published>2009-11-10T01:43:55Z</published>
	<updated>2009-11-10T01:43:55Z</updated>
	<author>
		<name>JIRA jira@codehaus.org</name>
	</author>
	<content type="html">&lt;br&gt;&amp;nbsp; &amp;nbsp; [ &lt;a href=&quot;http://jira.codehaus.org/browse/GANT-110?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&amp;focusedCommentId=197798#action_197798&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://jira.codehaus.org/browse/GANT-110?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&amp;focusedCommentId=197798#action_197798&lt;/a&gt;&amp;nbsp;] 
&lt;br&gt;&lt;br&gt;Russel Winder commented on GANT-110:
&lt;br&gt;------------------------------------
&lt;br&gt;&lt;br&gt;I uploaded 1.9.0-SNAPSHOT distributions to the Gant Codehaus distributions store and artefacts to the Codehaus Maven snapshot repository last evening, so this should all now be testable without having to build Gant yourself. &amp;nbsp;Hopefully it all works for people as expected. 
&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; Add 'inheritAll' attribute to gant ant task.
&lt;br&gt;&amp;gt; --------------------------------------------
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Key: GANT-110
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; URL: &lt;a href=&quot;http://jira.codehaus.org/browse/GANT-110&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://jira.codehaus.org/browse/GANT-110&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Project: Gant
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Issue Type: Improvement
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Components: Ant Tasks
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;Affects Versions: 1.8.0
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Reporter: Eric Van Dewoestine
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Assignee: Russel Winder
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Fix For: 1.9.0
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Attachments: gant_ant_inheritAll.diff
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; In ant both the &amp;lt;ant&amp;gt; and &amp;lt;antcall&amp;gt; tasks support an 'inheritAll' attribute which specifies whether or not the properties of the current project environment should be included in the sub-project created when invoking these tasks. &amp;nbsp;The attached patch provides support for this feature to gant's ant task which, when inheritAll is enabled, allows the invoked gant script to utilize ant properties defined in the parent ant project.
&lt;/div&gt;&lt;br&gt;-- 
&lt;br&gt;This message is automatically generated by JIRA.
&lt;br&gt;-
&lt;br&gt;If you think it was sent incorrectly contact one of the administrators: &lt;a href=&quot;http://jira.codehaus.org/secure/Administrators.jspa&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://jira.codehaus.org/secure/Administrators.jspa&lt;/a&gt;&lt;br&gt;-
&lt;br&gt;For more information on JIRA, see: &lt;a href=&quot;http://www.atlassian.com/software/jira&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.atlassian.com/software/jira&lt;/a&gt;&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 
&lt;br&gt;&lt;br&gt;&amp;lt;hr/&amp;gt;
&lt;br&gt;&amp;lt;p&amp;gt;
&lt;br&gt;To unsubscribe from this list please visit:
&lt;br&gt;&amp;lt;/p&amp;gt;
&lt;br&gt;&amp;lt;p&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;lt;a href=&amp;quot;&lt;a href=&quot;http://xircles.codehaus.org/manage_email&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://xircles.codehaus.org/manage_email&lt;/a&gt;&amp;quot;&amp;gt;&lt;a href=&quot;http://xircles.codehaus.org/manage_email&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://xircles.codehaus.org/manage_email&lt;/a&gt;&amp;lt;/a&amp;gt;
&lt;br&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/GANT----Scm-f33774.html&quot; embed=&quot;fixTarget[33774]&quot; target=&quot;_top&quot; &gt;GANT -- Scm&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/-gant-scm---jira--Created%3A-%28GANT-110%29-Add-%27inheritAll%27-attribute-to-gant-ant-task.-tp26256767p26280721.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26280102</id>
	<title>Re: Mocking a method with &gt; 1 parameter using closures  not possible?</title>
	<published>2009-11-10T00:50:18Z</published>
	<updated>2009-11-10T00:50:18Z</updated>
	<author>
		<name>Guillaume Laforge-2</name>
	</author>
	<content type="html">Yes.
&lt;br&gt;&lt;br&gt;On Tue, Nov 10, 2009 at 09:47, Imner, Andreas &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26280102&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Andreas.Imner@...&lt;/a&gt;&amp;gt; wrote:
&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; Great thanks! I had tried that approach earlier but I must have missed something but now it works!
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Just to make things clear, the reason that mocking methods with 1 parameter works without defining any parameter in the closure, is that because of the implicit &amp;quot;it&amp;quot; parameter available in the closure body?
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Med vänlig hälsning
&lt;br&gt;&amp;gt; Andreas Imner
&lt;br&gt;&amp;gt; Systemutvecklare
&lt;br&gt;&amp;gt; KG Knutsson AB
&lt;br&gt;&amp;gt; Autokatalogen
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Tel: +46 8 92 34 37
&lt;br&gt;&amp;gt; Mobil: +46 70 606 34 37
&lt;br&gt;&amp;gt; &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26280102&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;andreas.imner@...&lt;/a&gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; -----Ursprungligt meddelande-----
&lt;br&gt;&amp;gt; Från: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26280102&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;glaforge@...&lt;/a&gt; [mailto:&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26280102&amp;i=3&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;glaforge@...&lt;/a&gt;] För Guillaume Laforge
&lt;br&gt;&amp;gt; Skickat: den 10 november 2009 09:28
&lt;br&gt;&amp;gt; Till: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26280102&amp;i=4&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;user@...&lt;/a&gt;
&lt;br&gt;&amp;gt; Ämne: Re: [groovy-user] Mocking a method with &amp;gt; 1 parameter using closures not possible?
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; You have to define your closure with as many arguments as needed.
&lt;br&gt;&amp;gt; So instead of { &amp;quot;test&amp;quot; }, you should use { String s1, String s3 -&amp;gt; &amp;quot;test&amp;quot; }
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; On Tue, Nov 10, 2009 at 08:13, Imner, Andreas &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26280102&amp;i=5&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Andreas.Imner@...&lt;/a&gt;&amp;gt; wrote:
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Hi.
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; I am a Java developer just starting with Groovy and my goal is to use it for
&lt;br&gt;&amp;gt;&amp;gt; writing unit tests using Groovy
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; My question: Why is it not possible to create a mock using closures for the
&lt;br&gt;&amp;gt;&amp;gt; following Java interface that has a method with 2 parameters? 1 Parameter
&lt;br&gt;&amp;gt;&amp;gt; works fine?
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; public interface SomeInterface {
&lt;br&gt;&amp;gt;&amp;gt;     public String getArticleStatus(String s1, String s2);
&lt;br&gt;&amp;gt;&amp;gt; }
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; This is my Groovy test class ...
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; class SomeTest extends GroovyTestCase {
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;     void testSomething() {
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;          def getArticleStatusResultHelperMethod = { &amp;quot;test&amp;quot;}
&lt;br&gt;&amp;gt;&amp;gt;          def myMock = [getArticleStatus:getArticleStatusResultHelperMethod]
&lt;br&gt;&amp;gt;&amp;gt; as SomeInterface
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;         assertEquals (myMock.getArticleStatus(), &amp;quot;test&amp;quot;)
&lt;br&gt;&amp;gt;&amp;gt;     }
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; }
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; This is my output...
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;     [junit] Testcase: testSomeThing took 0,031 sec
&lt;br&gt;&amp;gt;&amp;gt;     [junit]     Caused an ERROR
&lt;br&gt;&amp;gt;&amp;gt;     [junit] No signature of method: $Proxy0.getArticleStatus() is applicable
&lt;br&gt;&amp;gt;&amp;gt; for
&lt;br&gt;&amp;gt;&amp;gt; argument types: () values: []
&lt;br&gt;&amp;gt;&amp;gt;     [junit] groovy.lang.MissingMethodException: No signature of method:
&lt;br&gt;&amp;gt;&amp;gt; $Proxy0.
&lt;br&gt;&amp;gt;&amp;gt; getArticleStatus() is applicable for argument types: () values: []
&lt;br&gt;&amp;gt;&amp;gt;     [junit]     at
&lt;br&gt;&amp;gt;&amp;gt; org.codehaus.groovy.runtime.ScriptBytecodeAdapter.unwrap(Scri
&lt;br&gt;&amp;gt;&amp;gt; ptBytecodeAdapter.java:54)
&lt;br&gt;&amp;gt;&amp;gt;     [junit]     at
&lt;br&gt;&amp;gt;&amp;gt; org.codehaus.groovy.runtime.callsite.PojoMetaClassSite.call(P
&lt;br&gt;&amp;gt;&amp;gt; ojoMetaClassSite.java:46)
&lt;br&gt;&amp;gt;&amp;gt;     [junit]     at
&lt;br&gt;&amp;gt;&amp;gt; org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCal
&lt;br&gt;&amp;gt;&amp;gt; l(CallSiteArray.java:40)
&lt;br&gt;&amp;gt;&amp;gt;     [junit]     at
&lt;br&gt;&amp;gt;&amp;gt; org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(Ab
&lt;br&gt;&amp;gt;&amp;gt; stractCallSite.java:117)
&lt;br&gt;&amp;gt;&amp;gt;     [junit]     at
&lt;br&gt;&amp;gt;&amp;gt; org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(Ab
&lt;br&gt;&amp;gt;&amp;gt; stractCallSite.java:121)
&lt;br&gt;&amp;gt;&amp;gt;     [junit]     at
&lt;br&gt;&amp;gt;&amp;gt; se.kgk.webshop.integration.erp.SomeTest.testSomeThing(SomeTes
&lt;br&gt;&amp;gt;&amp;gt; t.groovy:12)
&lt;br&gt;&amp;gt;&amp;gt;     [junit]
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; If I change the interface to...
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; public interface SomeInterface {
&lt;br&gt;&amp;gt;&amp;gt;     public String getArticleStatus(String s1);
&lt;br&gt;&amp;gt;&amp;gt; }
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; The result is…
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; [junit] Running se.kgk.webshop.integration.erp.SomeTest
&lt;br&gt;&amp;gt;&amp;gt; [junit] Testsuite: se.kgk.webshop.integration.erp.SomeTest
&lt;br&gt;&amp;gt;&amp;gt; [junit] Tests run: 1, Failures: 0, Errors: 0, Time elapsed: 0,266 sec
&lt;br&gt;&amp;gt;&amp;gt; [junit] Tests run: 1, Failures: 0, Errors: 0, Time elapsed: 0,266 sec
&lt;br&gt;&amp;gt;&amp;gt; [junit]
&lt;br&gt;&amp;gt;&amp;gt; [junit] Testcase: testSomeThing took 0,11 sec
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; /Andreas
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; --
&lt;br&gt;&amp;gt; Guillaume Laforge
&lt;br&gt;&amp;gt; Groovy Project Manager
&lt;br&gt;&amp;gt; Head of Groovy Development at SpringSource
&lt;br&gt;&amp;gt; &lt;a href=&quot;http://www.springsource.com/g2one&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.springsource.com/g2one&lt;/a&gt;&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; ---------------------------------------------------------------------
&lt;br&gt;&amp;gt; To unsubscribe from this list, please visit:
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;    &lt;a href=&quot;http://xircles.codehaus.org/manage_email&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://xircles.codehaus.org/manage_email&lt;/a&gt;&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; ---------------------------------------------------------------------
&lt;br&gt;&amp;gt; To unsubscribe from this list, please visit:
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;    &lt;a href=&quot;http://xircles.codehaus.org/manage_email&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://xircles.codehaus.org/manage_email&lt;/a&gt;&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;/div&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;Guillaume Laforge
&lt;br&gt;Groovy Project Manager
&lt;br&gt;Head of Groovy Development at SpringSource
&lt;br&gt;&lt;a href=&quot;http://www.springsource.com/g2one&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.springsource.com/g2one&lt;/a&gt;&lt;br&gt;&lt;br&gt;---------------------------------------------------------------------
&lt;br&gt;To unsubscribe from this list, please visit:
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &lt;a href=&quot;http://xircles.codehaus.org/manage_email&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://xircles.codehaus.org/manage_email&lt;/a&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/groovy---user-f11867.html&quot; embed=&quot;fixTarget[11867]&quot; target=&quot;_top&quot; &gt;groovy - user&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Mocking-a-method-with-%3E-1-parameter-using-closures-not-possible--tp26279222p26280102.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26280069</id>
	<title>SV: Mocking a method with &gt; 1 parameter using closures 	not possible?</title>
	<published>2009-11-10T00:47:46Z</published>
	<updated>2009-11-10T00:47:46Z</updated>
	<author>
		<name>Imner, Andreas</name>
	</author>
	<content type="html">Great thanks! I had tried that approach earlier but I must have missed something but now it works!
&lt;br&gt;&lt;br&gt;Just to make things clear, the reason that mocking methods with 1 parameter works without defining any parameter in the closure, is that because of the implicit &amp;quot;it&amp;quot; parameter available in the closure body?
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;Med vänlig hälsning
&lt;br&gt;Andreas Imner
&lt;br&gt;Systemutvecklare 
&lt;br&gt;KG Knutsson AB
&lt;br&gt;Autokatalogen
&lt;br&gt;&lt;br&gt;Tel: +46 8 92 34 37
&lt;br&gt;Mobil: +46 70 606 34 37
&lt;br&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26280069&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;andreas.imner@...&lt;/a&gt; 
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;-----Ursprungligt meddelande-----
&lt;br&gt;Från: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26280069&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;glaforge@...&lt;/a&gt; [mailto:&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26280069&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;glaforge@...&lt;/a&gt;] För Guillaume Laforge
&lt;br&gt;Skickat: den 10 november 2009 09:28
&lt;br&gt;Till: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26280069&amp;i=3&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;user@...&lt;/a&gt;
&lt;br&gt;Ämne: Re: [groovy-user] Mocking a method with &amp;gt; 1 parameter using closures not possible?
&lt;br&gt;&lt;br&gt;You have to define your closure with as many arguments as needed.
&lt;br&gt;So instead of { &amp;quot;test&amp;quot; }, you should use { String s1, String s3 -&amp;gt; &amp;quot;test&amp;quot; }
&lt;br&gt;&lt;br&gt;On Tue, Nov 10, 2009 at 08:13, Imner, Andreas &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26280069&amp;i=4&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Andreas.Imner@...&lt;/a&gt;&amp;gt; wrote:
&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Hi.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; I am a Java developer just starting with Groovy and my goal is to use it for
&lt;br&gt;&amp;gt; writing unit tests using Groovy
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; My question: Why is it not possible to create a mock using closures for the
&lt;br&gt;&amp;gt; following Java interface that has a method with 2 parameters? 1 Parameter
&lt;br&gt;&amp;gt; works fine?
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; public interface SomeInterface {
&lt;br&gt;&amp;gt;     public String getArticleStatus(String s1, String s2);
&lt;br&gt;&amp;gt; }
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; This is my Groovy test class ...
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; class SomeTest extends GroovyTestCase {
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;     void testSomething() {
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;          def getArticleStatusResultHelperMethod = { &amp;quot;test&amp;quot;}
&lt;br&gt;&amp;gt;          def myMock = [getArticleStatus:getArticleStatusResultHelperMethod]
&lt;br&gt;&amp;gt; as SomeInterface
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;         assertEquals (myMock.getArticleStatus(), &amp;quot;test&amp;quot;)
&lt;br&gt;&amp;gt;     }
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; }
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; This is my output...
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;     [junit] Testcase: testSomeThing took 0,031 sec
&lt;br&gt;&amp;gt;     [junit]     Caused an ERROR
&lt;br&gt;&amp;gt;     [junit] No signature of method: $Proxy0.getArticleStatus() is applicable
&lt;br&gt;&amp;gt; for
&lt;br&gt;&amp;gt; argument types: () values: []
&lt;br&gt;&amp;gt;     [junit] groovy.lang.MissingMethodException: No signature of method:
&lt;br&gt;&amp;gt; $Proxy0.
&lt;br&gt;&amp;gt; getArticleStatus() is applicable for argument types: () values: []
&lt;br&gt;&amp;gt;     [junit]     at
&lt;br&gt;&amp;gt; org.codehaus.groovy.runtime.ScriptBytecodeAdapter.unwrap(Scri
&lt;br&gt;&amp;gt; ptBytecodeAdapter.java:54)
&lt;br&gt;&amp;gt;     [junit]     at
&lt;br&gt;&amp;gt; org.codehaus.groovy.runtime.callsite.PojoMetaClassSite.call(P
&lt;br&gt;&amp;gt; ojoMetaClassSite.java:46)
&lt;br&gt;&amp;gt;     [junit]     at
&lt;br&gt;&amp;gt; org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCal
&lt;br&gt;&amp;gt; l(CallSiteArray.java:40)
&lt;br&gt;&amp;gt;     [junit]     at
&lt;br&gt;&amp;gt; org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(Ab
&lt;br&gt;&amp;gt; stractCallSite.java:117)
&lt;br&gt;&amp;gt;     [junit]     at
&lt;br&gt;&amp;gt; org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(Ab
&lt;br&gt;&amp;gt; stractCallSite.java:121)
&lt;br&gt;&amp;gt;     [junit]     at
&lt;br&gt;&amp;gt; se.kgk.webshop.integration.erp.SomeTest.testSomeThing(SomeTes
&lt;br&gt;&amp;gt; t.groovy:12)
&lt;br&gt;&amp;gt;     [junit]
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; If I change the interface to...
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; public interface SomeInterface {
&lt;br&gt;&amp;gt;     public String getArticleStatus(String s1);
&lt;br&gt;&amp;gt; }
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; The result is…
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; [junit] Running se.kgk.webshop.integration.erp.SomeTest
&lt;br&gt;&amp;gt; [junit] Testsuite: se.kgk.webshop.integration.erp.SomeTest
&lt;br&gt;&amp;gt; [junit] Tests run: 1, Failures: 0, Errors: 0, Time elapsed: 0,266 sec
&lt;br&gt;&amp;gt; [junit] Tests run: 1, Failures: 0, Errors: 0, Time elapsed: 0,266 sec
&lt;br&gt;&amp;gt; [junit]
&lt;br&gt;&amp;gt; [junit] Testcase: testSomeThing took 0,11 sec
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; /Andreas
&lt;br&gt;&amp;gt;
&lt;/div&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;Guillaume Laforge
&lt;br&gt;Groovy Project Manager
&lt;br&gt;Head of Groovy Development at SpringSource
&lt;br&gt;&lt;a href=&quot;http://www.springsource.com/g2one&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.springsource.com/g2one&lt;/a&gt;&lt;br&gt;&lt;br&gt;---------------------------------------------------------------------
&lt;br&gt;To unsubscribe from this list, please visit:
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &lt;a href=&quot;http://xircles.codehaus.org/manage_email&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://xircles.codehaus.org/manage_email&lt;/a&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;---------------------------------------------------------------------
&lt;br&gt;To unsubscribe from this list, please visit:
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &lt;a href=&quot;http://xircles.codehaus.org/manage_email&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://xircles.codehaus.org/manage_email&lt;/a&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/groovy---user-f11867.html&quot; embed=&quot;fixTarget[11867]&quot; target=&quot;_top&quot; &gt;groovy - user&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Mocking-a-method-with-%3E-1-parameter-using-closures-not-possible--tp26279222p26280069.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26279868</id>
	<title>Re: Mocking a method with &gt; 1 parameter using closures  not possible?</title>
	<published>2009-11-10T00:28:01Z</published>
	<updated>2009-11-10T00:28:01Z</updated>
	<author>
		<name>Guillaume Laforge-2</name>
	</author>
	<content type="html">You have to define your closure with as many arguments as needed.
&lt;br&gt;So instead of { &amp;quot;test&amp;quot; }, you should use { String s1, String s3 -&amp;gt; &amp;quot;test&amp;quot; }
&lt;br&gt;&lt;br&gt;On Tue, Nov 10, 2009 at 08:13, Imner, Andreas &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26279868&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Andreas.Imner@...&lt;/a&gt;&amp;gt; wrote:
&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Hi.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; I am a Java developer just starting with Groovy and my goal is to use it for
&lt;br&gt;&amp;gt; writing unit tests using Groovy
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; My question: Why is it not possible to create a mock using closures for the
&lt;br&gt;&amp;gt; following Java interface that has a method with 2 parameters? 1 Parameter
&lt;br&gt;&amp;gt; works fine?
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; public interface SomeInterface {
&lt;br&gt;&amp;gt;     public String getArticleStatus(String s1, String s2);
&lt;br&gt;&amp;gt; }
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; This is my Groovy test class ...
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; class SomeTest extends GroovyTestCase {
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;     void testSomething() {
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;          def getArticleStatusResultHelperMethod = { &amp;quot;test&amp;quot;}
&lt;br&gt;&amp;gt;          def myMock = [getArticleStatus:getArticleStatusResultHelperMethod]
&lt;br&gt;&amp;gt; as SomeInterface
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;         assertEquals (myMock.getArticleStatus(), &amp;quot;test&amp;quot;)
&lt;br&gt;&amp;gt;     }
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; }
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; This is my output...
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;     [junit] Testcase: testSomeThing took 0,031 sec
&lt;br&gt;&amp;gt;     [junit]     Caused an ERROR
&lt;br&gt;&amp;gt;     [junit] No signature of method: $Proxy0.getArticleStatus() is applicable
&lt;br&gt;&amp;gt; for
&lt;br&gt;&amp;gt; argument types: () values: []
&lt;br&gt;&amp;gt;     [junit] groovy.lang.MissingMethodException: No signature of method:
&lt;br&gt;&amp;gt; $Proxy0.
&lt;br&gt;&amp;gt; getArticleStatus() is applicable for argument types: () values: []
&lt;br&gt;&amp;gt;     [junit]     at
&lt;br&gt;&amp;gt; org.codehaus.groovy.runtime.ScriptBytecodeAdapter.unwrap(Scri
&lt;br&gt;&amp;gt; ptBytecodeAdapter.java:54)
&lt;br&gt;&amp;gt;     [junit]     at
&lt;br&gt;&amp;gt; org.codehaus.groovy.runtime.callsite.PojoMetaClassSite.call(P
&lt;br&gt;&amp;gt; ojoMetaClassSite.java:46)
&lt;br&gt;&amp;gt;     [junit]     at
&lt;br&gt;&amp;gt; org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCal
&lt;br&gt;&amp;gt; l(CallSiteArray.java:40)
&lt;br&gt;&amp;gt;     [junit]     at
&lt;br&gt;&amp;gt; org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(Ab
&lt;br&gt;&amp;gt; stractCallSite.java:117)
&lt;br&gt;&amp;gt;     [junit]     at
&lt;br&gt;&amp;gt; org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(Ab
&lt;br&gt;&amp;gt; stractCallSite.java:121)
&lt;br&gt;&amp;gt;     [junit]     at
&lt;br&gt;&amp;gt; se.kgk.webshop.integration.erp.SomeTest.testSomeThing(SomeTes
&lt;br&gt;&amp;gt; t.groovy:12)
&lt;br&gt;&amp;gt;     [junit]
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; If I change the interface to...
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; public interface SomeInterface {
&lt;br&gt;&amp;gt;     public String getArticleStatus(String s1);
&lt;br&gt;&amp;gt; }
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; The result is…
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; [junit] Running se.kgk.webshop.integration.erp.SomeTest
&lt;br&gt;&amp;gt; [junit] Testsuite: se.kgk.webshop.integration.erp.SomeTest
&lt;br&gt;&amp;gt; [junit] Tests run: 1, Failures: 0, Errors: 0, Time elapsed: 0,266 sec
&lt;br&gt;&amp;gt; [junit] Tests run: 1, Failures: 0, Errors: 0, Time elapsed: 0,266 sec
&lt;br&gt;&amp;gt; [junit]
&lt;br&gt;&amp;gt; [junit] Testcase: testSomeThing took 0,11 sec
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; /Andreas
&lt;br&gt;&amp;gt;
&lt;/div&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;Guillaume Laforge
&lt;br&gt;Groovy Project Manager
&lt;br&gt;Head of Groovy Development at SpringSource
&lt;br&gt;&lt;a href=&quot;http://www.springsource.com/g2one&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.springsource.com/g2one&lt;/a&gt;&lt;br&gt;&lt;br&gt;---------------------------------------------------------------------
&lt;br&gt;To unsubscribe from this list, please visit:
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &lt;a href=&quot;http://xircles.codehaus.org/manage_email&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://xircles.codehaus.org/manage_email&lt;/a&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/groovy---user-f11867.html&quot; embed=&quot;fixTarget[11867]&quot; target=&quot;_top&quot; &gt;groovy - user&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Mocking-a-method-with-%3E-1-parameter-using-closures-not-possible--tp26279222p26279868.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26279711</id>
	<title>Re: Creating a List</title>
	<published>2009-11-10T00:11:19Z</published>
	<updated>2009-11-10T00:11:19Z</updated>
	<author>
		<name>douggiefox</name>
	</author>
	<content type="html">Hi
&lt;br&gt;&lt;br&gt;Nice one.
&lt;br&gt;&lt;br&gt;Best
&lt;br&gt;&lt;br&gt;DF
&lt;br&gt;&lt;br&gt;&lt;blockquote class=&quot;quote light-black dark-border-color&quot;&gt;&lt;div class=&quot;quote light-border-color&quot;&gt;
&lt;div class=&quot;quote-author&quot; style=&quot;font-weight: bold;&quot;&gt;Tim Yates wrote:&lt;/div&gt;
&lt;div class=&quot;quote-message shrinkable-quote&quot;&gt;I'd use JsonSlurper (part of json-lib):
&lt;br&gt;&lt;br&gt;@Grab('net.sf.json-lib:json-lib:2.3:jdk15')
&lt;br&gt;import net.sf.json.groovy.JsonSlurper
&lt;br&gt;&lt;br&gt;JsonSlurper slurper = new JsonSlurper()
&lt;br&gt;def res = slurper.parseText( &amp;quot;[{\&amp;quot;name\&amp;quot;:\&amp;quot;A new
&lt;br&gt;member\&amp;quot;,\&amp;quot;age\&amp;quot;:21,\&amp;quot;cover\&amp;quot;:\&amp;quot;Single\&amp;quot;,\&amp;quot;londonUpgrade\&amp;quot;:0},{\&amp;quot;name\&amp;quot;:\&amp;quot;A
&lt;br&gt;new member\&amp;quot;,\&amp;quot;age\&amp;quot;:21,\&amp;quot;cover\&amp;quot;:\&amp;quot;Single\&amp;quot;,\&amp;quot;excess\&amp;quot;:\&amp;quot;\&amp;quot;}]&amp;quot; )
&lt;br&gt;println res
&lt;br&gt;&lt;br&gt;Tim
&lt;br&gt;&lt;br&gt;On Mon, Nov 9, 2009 at 9:55 AM, douggiefox &amp;lt;paul@javabytes.co.uk&amp;gt; wrote:
&lt;br&gt;&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Hi
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; I have a string that's come from a HTML page and is encoded like this:
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;quot;[{\&amp;quot;name\&amp;quot;:\&amp;quot;A new
&lt;br&gt;&amp;gt; member\&amp;quot;,\&amp;quot;age\&amp;quot;:21,\&amp;quot;cover\&amp;quot;:\&amp;quot;Single\&amp;quot;,\&amp;quot;londonUpgrade\&amp;quot;:0},{\&amp;quot;name\&amp;quot;:\&amp;quot;A
&lt;br&gt;&amp;gt; new member\&amp;quot;,\&amp;quot;age\&amp;quot;:21,\&amp;quot;cover\&amp;quot;:\&amp;quot;Single\&amp;quot;,\&amp;quot;excess\&amp;quot;:\&amp;quot;\&amp;quot;}]&amp;quot;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Is there a simple way I can convert this to a List?
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Best
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; DF
&lt;br&gt;&amp;gt; --
&lt;br&gt;&amp;gt; View this message in context:
&lt;br&gt;&amp;gt; &lt;a href=&quot;http://old.nabble.com/Creating-a-List-tp26263681p26263681.html&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://old.nabble.com/Creating-a-List-tp26263681p26263681.html&lt;/a&gt;&lt;br&gt;&amp;gt; Sent from the groovy - user mailing list archive at Nabble.com.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; ---------------------------------------------------------------------
&lt;br&gt;&amp;gt; To unsubscribe from this list, please visit:
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;&lt;a href=&quot;http://xircles.codehaus.org/manage_email&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://xircles.codehaus.org/manage_email&lt;/a&gt;&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;/div&gt;
&lt;/div&gt;&lt;/blockquote&gt;
&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/groovy---user-f11867.html&quot; embed=&quot;fixTarget[11867]&quot; target=&quot;_top&quot; &gt;groovy - user&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Creating-a-List-tp26263681p26279711.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26279222</id>
	<title>Mocking a method with &gt; 1 parameter using closures not possible?</title>
	<published>2009-11-09T23:13:18Z</published>
	<updated>2009-11-09T23:13:18Z</updated>
	<author>
		<name>Imner, Andreas</name>
	</author>
	<content type="html">&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=iso-8859-1&quot;&gt;
&lt;meta name=&quot;Generator&quot; content=&quot;Microsoft Exchange Server&quot;&gt;
&lt;!-- converted from rtf --&gt;

&lt;/head&gt;
&lt;body&gt;
&lt;font face=&quot;Arial, sans-serif&quot; size=&quot;3&quot;&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&lt;font size=&quot;2&quot;&gt;Hi.&lt;/font&gt;&lt;/div&gt;
&lt;div&gt;&lt;font size=&quot;2&quot;&gt;&amp;nbsp;&lt;/font&gt;&lt;/div&gt;
&lt;div&gt;&lt;font size=&quot;2&quot;&gt;I am a Java developer just starting with Groovy and my goal is to use it for writing unit tests using Groovy&lt;/font&gt;&lt;/div&gt;
&lt;div&gt;&lt;font size=&quot;2&quot;&gt;&amp;nbsp;&lt;/font&gt;&lt;/div&gt;
&lt;div&gt;&lt;font size=&quot;2&quot;&gt;My question: Why is it not possible to create a mock using closures for the following Java interface that has a method with 2 parameters? 1 Parameter works fine?&lt;/font&gt;&lt;/div&gt;
&lt;div&gt;&lt;font size=&quot;2&quot;&gt;&amp;nbsp;&lt;/font&gt;&lt;/div&gt;
&lt;div&gt;&lt;font size=&quot;2&quot;&gt;public interface SomeInterface {&lt;/font&gt;&lt;/div&gt;
&lt;div&gt;&lt;font size=&quot;2&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public String getArticleStatus(String s1, String s2);&lt;/font&gt;&lt;/div&gt;
&lt;div&gt;&lt;font size=&quot;2&quot;&gt;}&lt;/font&gt;&lt;/div&gt;
&lt;div&gt;&lt;font size=&quot;2&quot;&gt;&amp;nbsp;&lt;/font&gt;&lt;/div&gt;
&lt;div&gt;&lt;font size=&quot;2&quot;&gt;&amp;nbsp;&lt;/font&gt;&lt;/div&gt;
&lt;div&gt;&lt;font size=&quot;2&quot;&gt;This is my Groovy test class ...&lt;/font&gt;&lt;/div&gt;
&lt;div&gt;&lt;font size=&quot;2&quot;&gt;&amp;nbsp;&lt;/font&gt;&lt;/div&gt;
&lt;div&gt;&lt;font size=&quot;2&quot;&gt;&amp;nbsp;&lt;/font&gt;&lt;/div&gt;
&lt;div&gt;&lt;font size=&quot;2&quot;&gt;class SomeTest extends GroovyTestCase {&lt;/font&gt;&lt;/div&gt;
&lt;div&gt;&lt;font size=&quot;2&quot;&gt;&amp;nbsp;&lt;/font&gt;&lt;/div&gt;
&lt;div&gt;&lt;font size=&quot;2&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; void testSomething() {&lt;/font&gt;&lt;/div&gt;
&lt;div&gt;&lt;font size=&quot;2&quot;&gt;&amp;nbsp;&lt;/font&gt;&lt;/div&gt;
&lt;div&gt;&lt;font size=&quot;2&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; def getArticleStatusResultHelperMethod = { &amp;quot;test&amp;quot;}&lt;/font&gt;&lt;/div&gt;
&lt;div&gt;&lt;font size=&quot;2&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; def myMock = [getArticleStatus:getArticleStatusResultHelperMethod] as SomeInterface&lt;/font&gt;&lt;/div&gt;
&lt;div&gt;&lt;font size=&quot;2&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/div&gt;
&lt;div&gt;&lt;font size=&quot;2&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; assertEquals (myMock.getArticleStatus(), &amp;quot;test&amp;quot;)&lt;/font&gt;&lt;/div&gt;
&lt;div&gt;&lt;font size=&quot;2&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/font&gt;&lt;/div&gt;
&lt;div&gt;&lt;font size=&quot;2&quot;&gt;&amp;nbsp;&lt;/font&gt;&lt;/div&gt;
&lt;div&gt;&lt;font size=&quot;2&quot;&gt;}&lt;/font&gt;&lt;/div&gt;
&lt;div&gt;&lt;font size=&quot;2&quot;&gt;&amp;nbsp;&lt;/font&gt;&lt;/div&gt;
&lt;div&gt;&lt;font size=&quot;2&quot;&gt;This is my output...&lt;/font&gt;&lt;/div&gt;
&lt;div&gt;&lt;font size=&quot;2&quot;&gt;&amp;nbsp;&lt;/font&gt;&lt;/div&gt;
&lt;div&gt;&lt;font size=&quot;2&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; [junit] Testcase: testSomeThing took 0,031 sec&lt;/font&gt;&lt;/div&gt;
&lt;div&gt;&lt;font size=&quot;2&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; [junit]&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Caused an ERROR&lt;/font&gt;&lt;/div&gt;
&lt;div&gt;&lt;font size=&quot;2&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; [junit] No signature of method: $Proxy0.getArticleStatus() is applicable for&lt;/font&gt;&lt;/div&gt;
&lt;div&gt;&lt;font size=&quot;2&quot;&gt; argument types: () values: []&lt;/font&gt;&lt;/div&gt;
&lt;div&gt;&lt;font size=&quot;2&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; [junit] groovy.lang.MissingMethodException: No signature of method: $Proxy0.&lt;/font&gt;&lt;/div&gt;
&lt;div&gt;&lt;font size=&quot;2&quot;&gt;getArticleStatus() is applicable for argument types: () values: []&lt;/font&gt;&lt;/div&gt;
&lt;div&gt;&lt;font size=&quot;2&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; [junit]&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.unwrap(Scri&lt;/font&gt;&lt;/div&gt;
&lt;div&gt;&lt;font size=&quot;2&quot;&gt;ptBytecodeAdapter.java:54)&lt;/font&gt;&lt;/div&gt;
&lt;div&gt;&lt;font size=&quot;2&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; [junit]&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.codehaus.groovy.runtime.callsite.PojoMetaClassSite.call(P&lt;/font&gt;&lt;/div&gt;
&lt;div&gt;&lt;font size=&quot;2&quot;&gt;ojoMetaClassSite.java:46)&lt;/font&gt;&lt;/div&gt;
&lt;div&gt;&lt;font size=&quot;2&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; [junit]&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCal&lt;/font&gt;&lt;/div&gt;
&lt;div&gt;&lt;font size=&quot;2&quot;&gt;l(CallSiteArray.java:40)&lt;/font&gt;&lt;/div&gt;
&lt;div&gt;&lt;font size=&quot;2&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; [junit]&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(Ab&lt;/font&gt;&lt;/div&gt;
&lt;div&gt;&lt;font size=&quot;2&quot;&gt;stractCallSite.java:117)&lt;/font&gt;&lt;/div&gt;
&lt;div&gt;&lt;font size=&quot;2&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; [junit]&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(Ab&lt;/font&gt;&lt;/div&gt;
&lt;div&gt;&lt;font size=&quot;2&quot;&gt;stractCallSite.java:121)&lt;/font&gt;&lt;/div&gt;
&lt;div&gt;&lt;font size=&quot;2&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; [junit]&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at se.kgk.webshop.integration.erp.SomeTest.testSomeThing(SomeTes&lt;/font&gt;&lt;/div&gt;
&lt;div&gt;&lt;font size=&quot;2&quot;&gt;t.groovy:12)&lt;/font&gt;&lt;/div&gt;
&lt;div&gt;&lt;font size=&quot;2&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; [junit]&lt;/font&gt;&lt;/div&gt;
&lt;div&gt;&lt;font size=&quot;2&quot;&gt;&amp;nbsp;&lt;/font&gt;&lt;/div&gt;
&lt;div&gt;&lt;font size=&quot;2&quot;&gt;&amp;nbsp;&lt;/font&gt;&lt;/div&gt;
&lt;div&gt;&lt;font size=&quot;2&quot;&gt;If I change the interface to...&lt;/font&gt;&lt;/div&gt;
&lt;div&gt;&lt;font size=&quot;2&quot;&gt;&amp;nbsp;&lt;/font&gt;&lt;/div&gt;
&lt;div&gt;&lt;font size=&quot;2&quot;&gt;public interface SomeInterface {&lt;/font&gt;&lt;/div&gt;
&lt;div&gt;&lt;font size=&quot;2&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public String getArticleStatus(String s1);&lt;/font&gt;&lt;/div&gt;
&lt;div&gt;&lt;font size=&quot;2&quot;&gt;}&lt;/font&gt;&lt;/div&gt;
&lt;div&gt;&lt;font size=&quot;2&quot;&gt;&amp;nbsp;&lt;/font&gt;&lt;/div&gt;
&lt;div&gt;&lt;font size=&quot;2&quot;&gt;The result is&amp;#8230;&lt;/font&gt;&lt;/div&gt;
&lt;div&gt;&lt;font size=&quot;2&quot;&gt;&amp;nbsp;&lt;/font&gt;&lt;/div&gt;
&lt;div&gt;&lt;font size=&quot;2&quot;&gt;[junit] Running se.kgk.webshop.integration.erp.SomeTest&lt;/font&gt;&lt;/div&gt;
&lt;div&gt;&lt;font size=&quot;2&quot;&gt;[junit] Testsuite: se.kgk.webshop.integration.erp.SomeTest&lt;/font&gt;&lt;/div&gt;
&lt;div&gt;&lt;font size=&quot;2&quot;&gt;[junit] Tests run: 1, Failures: 0, Errors: 0, Time elapsed: 0,266 sec&lt;/font&gt;&lt;/div&gt;
&lt;div&gt;&lt;font size=&quot;2&quot;&gt;[junit] Tests run: 1, Failures: 0, Errors: 0, Time elapsed: 0,266 sec&lt;/font&gt;&lt;/div&gt;
&lt;div&gt;&lt;font size=&quot;2&quot;&gt;[junit]&lt;/font&gt;&lt;/div&gt;
&lt;div&gt;&lt;font size=&quot;2&quot;&gt;[junit] Testcase: testSomeThing took 0,11 sec&lt;/font&gt;&lt;/div&gt;
&lt;div&gt;&lt;font size=&quot;2&quot;&gt;&amp;nbsp;&lt;/font&gt;&lt;/div&gt;
&lt;div&gt;&lt;font size=&quot;2&quot;&gt;/Andreas&lt;/font&gt;&lt;/div&gt;
&lt;div&gt;&lt;font size=&quot;2&quot;&gt;&amp;nbsp;&lt;/font&gt;&lt;/div&gt;
&lt;/font&gt;
&lt;/body&gt;
&lt;/html&gt;
&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/groovy---user-f11867.html&quot; embed=&quot;fixTarget[11867]&quot; target=&quot;_top&quot; &gt;groovy - user&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Mocking-a-method-with-%3E-1-parameter-using-closures-not-possible--tp26279222p26279222.html" />
</entry>

</feed>
