Cookie Parsing Issue

Dr Chris Barran <[email protected]> Mon, 10 Jun 2013 12:23:44 +0100
Newsgroups gmane.comp.java.grinder.devel
Message-ID <CAD3bevw2re2MZCmcdVry-2pUVsAo82xMoEXvn3BBVvNozuuajQ@mail.gmail.com>
--===============9074158458359395604==
Content-Type: multipart/alternative; boundary=089e016818cc76a6ee04decb0372

--089e016818cc76a6ee04decb0372
Content-Type: text/plain; charset=UTF-8

The Cookie.parse method seems to be  mangling this perfectly valid cookie.
Set-Cookie:
nap.sid=s%3Ams3rfahjl9mCHmula5U1vv9H.sJGkzJojCliyoDUJgDNv30rjC0CqoRvVqaa%2B3j4z0V8;
Path=/nap; HttpOnly; Secure

And turning it into
Set-Cookie:
nap.sid=s%3AEz2JzmmKmISynN7nPujVwjO%2B.gxgOhA6ovhajiWRe8RZ9UHUKzjcBw1hl5f16cjMQ44I;
Path=/nap;, Secure

Which it then announces is an Invalid cookie and exits.

I'm trying to use version 3.11

I raised a bug for it.


Also I'm trying to build the latest version to test / patch this issue as
it looks like just some over zealous regexp but I'm getting build failures.

Can't seem to build without running tests and some tests fail.  You don't
seem to have a lot of documentation on how to set up a sane build
environment.

Any help appreciated.  what should this jython2_5_3.dir property be set to
and where do I set it?

Actually I seem to have jython 2.5.2 installed will that be a problem?



Running
net.grinder.scriptengine.jython.instrumentation.dcr.TestJython25Instrumenter

Tests run: 1, Failures: 1, Errors: 0, Skipped: 0, Time elapsed: 0.001 sec
<<< FAILURE!

initializationError(net.grinder.scriptengine.jython.instrumentation.dcr.TestJython25Instrumenter)
 Time elapsed: 0.001 sec  <<< FAILURE!

java.lang.AssertionError: jython2_5_3.dir property is set, but value
[/opt/jython/jython2.5.3] is not a directory

at org.junit.Assert.fail(Assert.java:88)

at org.junit.Assert.assertTrue(Assert.java:41)

at
net.grinder.testutility.JythonVersionRunner.getHomes(JythonVersionRunner.java:101)

at
net.grinder.testutility.Jython25_27Runner.<clinit>(Jython25_27Runner.java:41)

at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)

at
sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)

at
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)

at java.lang.reflect.Constructor.newInstance(Constructor.java:513)

at
org.junit.internal.builders.AnnotatedBuilder.buildRunner(AnnotatedBuilder.java:29)

at
org.junit.internal.builders.AnnotatedBuilder.runnerForClass(AnnotatedBuilder.java:21)

at
org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:59)

at
org.junit.internal.builders.AllDefaultPossibilitiesBuilder.runnerForClass(AllDefaultPossibilitiesBuilder.java:26)

at
org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:59)

at org.junit.internal.requests.ClassRequest.getRunner(ClassRequest.java:26)

at
org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:250)

at
org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:141)

at
org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:112)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)

at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)

at java.lang.reflect.Method.invoke(Method.java:597)

at
org.apache.maven.surefire.util.ReflectionUtils.invokeMethodWithArray(ReflectionUtils.java:189)

at
org.apache.maven.surefire.booter.ProviderFactory$ProviderProxy.invoke(ProviderFactory.java:165)

at
org.apache.maven.surefire.booter.ProviderFactory.invokeProvider(ProviderFactory.java:85)

at
org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:115)

at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:75)

-- 
-- 
*Dr Christopher Barran*
Senior Developer
Corporate Information & Computing Services
The University of Sheffield
10-12 Brunswick Street
Sheffield
S10 2FN
England
Tel: +44 114 22*21193*
*http://uspace.shef.ac.uk/people/ad1cdb*

--089e016818cc76a6ee04decb0372
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><p style=3D"font-size:13px;margin:0px;padding:0px 10px 1em=
;border:0px;outline:0px;vertical-align:baseline;color:rgb(85,85,85);font-fa=
mily:sans-serif;line-height:18px">The Cookie.parse method seems to be =C2=
=A0mangling this perfectly valid cookie.<br>
Set-Cookie: nap.sid=3Ds%3Ams3rfahjl9mCHmula5U1vv9H.sJGkzJojCliyoDUJgDNv30rj=
C0CqoRvVqaa%2B3j4z0V8; Path=3D/nap; HttpOnly; Secure</p><p style=3D"font-si=
ze:13px;margin:0px;padding:0px 10px 1em;border:0px;outline:0px;vertical-ali=
gn:baseline;color:rgb(85,85,85);font-family:sans-serif;line-height:18px">
And turning it into<br>Set-Cookie: nap.sid=3Ds%3AEz2JzmmKmISynN7nPujVwjO%2B=
.gxgOhA6ovhajiWRe8RZ9UHUKzjcBw1hl5f16cjMQ44I; Path=3D/nap;, Secure</p><p st=
yle=3D"font-size:13px;margin:0px;padding:0px 10px 1em;border:0px;outline:0p=
x;vertical-align:baseline;color:rgb(85,85,85);font-family:sans-serif;line-h=
eight:18px">
Which it then announces is an Invalid cookie and exits.</p><p style=3D"font=
-size:13px;margin:0px;padding:0px 10px 1em;border:0px;outline:0px;vertical-=
align:baseline;color:rgb(85,85,85);font-family:sans-serif;line-height:18px"=
>
I&#39;m trying to use version 3.11</p><p style=3D"font-size:13px;margin:0px=
;padding:0px 10px 1em;border:0px;outline:0px;vertical-align:baseline;color:=
rgb(85,85,85);font-family:sans-serif;line-height:18px">I raised a bug for i=
t.</p>
<p style=3D"font-size:13px;margin:0px;padding:0px 10px 1em;border:0px;outli=
ne:0px;vertical-align:baseline;color:rgb(85,85,85);font-family:sans-serif;l=
ine-height:18px"><br></p><p style=3D"font-size:13px;margin:0px;padding:0px =
10px 1em;border:0px;outline:0px;vertical-align:baseline;color:rgb(85,85,85)=
;font-family:sans-serif;line-height:18px">
Also I&#39;m trying to build the latest version to test / patch this issue =
as it looks like just some over zealous regexp but I&#39;m getting build fa=
ilures.</p><p style=3D"font-size:13px;margin:0px;padding:0px 10px 1em;borde=
r:0px;outline:0px;vertical-align:baseline;color:rgb(85,85,85);font-family:s=
ans-serif;line-height:18px">
Can&#39;t seem to build without running tests and some tests fail. =C2=A0Yo=
u don&#39;t seem to have a lot of documentation on how to set up a sane bui=
ld environment.</p><p style=3D"font-size:13px;margin:0px;padding:0px 10px 1=
em;border:0px;outline:0px;vertical-align:baseline;color:rgb(85,85,85);font-=
family:sans-serif;line-height:18px">
Any help appreciated. =C2=A0what should this=C2=A0<span style=3D"font-size:=
small">jython2_5_3.dir property be set to and where do I set it?</span><spa=
n style=3D"font-size:small">=C2=A0=C2=A0</span></p><p style=3D"font-size:13=
px;margin:0px;padding:0px 10px 1em;border:0px;outline:0px;vertical-align:ba=
seline;color:rgb(85,85,85);font-family:sans-serif;line-height:18px">
<span style=3D"font-size:small">Actually I seem to have jython 2.5.2 instal=
led will that be a problem?</span></p><p style=3D"font-size:13px;margin:0px=
;padding:0px 10px 1em;border:0px;outline:0px;vertical-align:baseline;color:=
rgb(85,85,85);font-family:sans-serif;line-height:18px">
<span style=3D"font-size:small"><br></span></p><p style=3D"font-size:13px;m=
argin:0px;padding:0px 10px 1em;border:0px;outline:0px;vertical-align:baseli=
ne;color:rgb(85,85,85);font-family:sans-serif;line-height:18px"><br></p><p =
style=3D"font-family:arial,sans-serif;font-size:13px;margin:0px;padding:0px=
 10px 1em;border:0px;outline:0px;vertical-align:baseline">
<font color=3D"#555555" face=3D"sans-serif"><span style=3D"line-height:18px=
">Running net.grinder.scriptengine.jython.instrumentation.dcr.TestJython25I=
nstrumenter</span></font></p><p style=3D"font-family:arial,sans-serif;font-=
size:13px;margin:0px;padding:0px 10px 1em;border:0px;outline:0px;vertical-a=
lign:baseline">
<font color=3D"#555555" face=3D"sans-serif"><span style=3D"line-height:18px=
">Tests run: 1, Failures: 1, Errors: 0, Skipped: 0, Time elapsed: 0.001 sec=
 &lt;&lt;&lt; FAILURE!</span></font></p><p style=3D"font-family:arial,sans-=
serif;font-size:13px;margin:0px;padding:0px 10px 1em;border:0px;outline:0px=
;vertical-align:baseline">
<font color=3D"#555555" face=3D"sans-serif"><span style=3D"line-height:18px=
">initializationError(net.grinder.scriptengine.jython.instrumentation.dcr.T=
estJython25Instrumenter) =C2=A0Time elapsed: 0.001 sec =C2=A0&lt;&lt;&lt; F=
AILURE!</span></font></p>
<p style=3D"font-family:arial,sans-serif;font-size:13px;margin:0px;padding:=
0px 10px 1em;border:0px;outline:0px;vertical-align:baseline"><font color=3D=
"#555555" face=3D"sans-serif"><span style=3D"line-height:18px">java.lang.As=
sertionError: jython2_5_3.dir property is set, but value [/opt/jython/jytho=
n2.5.3] is not a directory</span></font></p>
<p style=3D"font-family:arial,sans-serif;font-size:13px;margin:0px;padding:=
0px 10px 1em;border:0px;outline:0px;vertical-align:baseline"><font color=3D=
"#555555" face=3D"sans-serif"><span style=3D"line-height:18px"><span style=
=3D"white-space:pre-wrap">	</span>at org.junit.Assert.fail(Assert.java:88)<=
/span></font></p>
<p style=3D"font-family:arial,sans-serif;font-size:13px;margin:0px;padding:=
0px 10px 1em;border:0px;outline:0px;vertical-align:baseline"><font color=3D=
"#555555" face=3D"sans-serif"><span style=3D"line-height:18px"><span style=
=3D"white-space:pre-wrap">	</span>at org.junit.Assert.assertTrue(Assert.jav=
a:41)</span></font></p>
<p style=3D"font-family:arial,sans-serif;font-size:13px;margin:0px;padding:=
0px 10px 1em;border:0px;outline:0px;vertical-align:baseline"><font color=3D=
"#555555" face=3D"sans-serif"><span style=3D"line-height:18px"><span style=
=3D"white-space:pre-wrap">	</span>at net.grinder.testutility.JythonVersionR=
unner.getHomes(JythonVersionRunner.java:101)</span></font></p>
<p style=3D"font-family:arial,sans-serif;font-size:13px;margin:0px;padding:=
0px 10px 1em;border:0px;outline:0px;vertical-align:baseline"><font color=3D=
"#555555" face=3D"sans-serif"><span style=3D"line-height:18px"><span style=
=3D"white-space:pre-wrap">	</span>at net.grinder.testutility.Jython25_27Run=
ner.&lt;clinit&gt;(Jython25_27Runner.java:41)</span></font></p>
<p style=3D"font-family:arial,sans-serif;font-size:13px;margin:0px;padding:=
0px 10px 1em;border:0px;outline:0px;vertical-align:baseline"><font color=3D=
"#555555" face=3D"sans-serif"><span style=3D"line-height:18px"><span style=
=3D"white-space:pre-wrap">	</span>at sun.reflect.NativeConstructorAccessorI=
mpl.newInstance0(Native Method)</span></font></p>
<p style=3D"font-family:arial,sans-serif;font-size:13px;margin:0px;padding:=
0px 10px 1em;border:0px;outline:0px;vertical-align:baseline"><font color=3D=
"#555555" face=3D"sans-serif"><span style=3D"line-height:18px"><span style=
=3D"white-space:pre-wrap">	</span>at sun.reflect.NativeConstructorAccessorI=
mpl.newInstance(NativeConstructorAccessorImpl.java:39)</span></font></p>
<p style=3D"font-family:arial,sans-serif;font-size:13px;margin:0px;padding:=
0px 10px 1em;border:0px;outline:0px;vertical-align:baseline"><font color=3D=
"#555555" face=3D"sans-serif"><span style=3D"line-height:18px"><span style=
=3D"white-space:pre-wrap">	</span>at sun.reflect.DelegatingConstructorAcces=
sorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)</span></font=
></p>
<p style=3D"font-family:arial,sans-serif;font-size:13px;margin:0px;padding:=
0px 10px 1em;border:0px;outline:0px;vertical-align:baseline"><font color=3D=
"#555555" face=3D"sans-serif"><span style=3D"line-height:18px"><span style=
=3D"white-space:pre-wrap">	</span>at java.lang.reflect.Constructor.newInsta=
nce(Constructor.java:513)</span></font></p>
<p style=3D"font-family:arial,sans-serif;font-size:13px;margin:0px;padding:=
0px 10px 1em;border:0px;outline:0px;vertical-align:baseline"><font color=3D=
"#555555" face=3D"sans-serif"><span style=3D"line-height:18px"><span style=
=3D"white-space:pre-wrap">	</span>at org.junit.internal.builders.AnnotatedB=
uilder.buildRunner(AnnotatedBuilder.java:29)</span></font></p>
<p style=3D"font-family:arial,sans-serif;font-size:13px;margin:0px;padding:=
0px 10px 1em;border:0px;outline:0px;vertical-align:baseline"><font color=3D=
"#555555" face=3D"sans-serif"><span style=3D"line-height:18px"><span style=
=3D"white-space:pre-wrap">	</span>at org.junit.internal.builders.AnnotatedB=
uilder.runnerForClass(AnnotatedBuilder.java:21)</span></font></p>
<p style=3D"font-family:arial,sans-serif;font-size:13px;margin:0px;padding:=
0px 10px 1em;border:0px;outline:0px;vertical-align:baseline"><font color=3D=
"#555555" face=3D"sans-serif"><span style=3D"line-height:18px"><span style=
=3D"white-space:pre-wrap">	</span>at org.junit.runners.model.RunnerBuilder.=
safeRunnerForClass(RunnerBuilder.java:59)</span></font></p>
<p style=3D"font-family:arial,sans-serif;font-size:13px;margin:0px;padding:=
0px 10px 1em;border:0px;outline:0px;vertical-align:baseline"><font color=3D=
"#555555" face=3D"sans-serif"><span style=3D"line-height:18px"><span style=
=3D"white-space:pre-wrap">	</span>at org.junit.internal.builders.AllDefault=
PossibilitiesBuilder.runnerForClass(AllDefaultPossibilitiesBuilder.java:26)=
</span></font></p>
<p style=3D"font-family:arial,sans-serif;font-size:13px;margin:0px;padding:=
0px 10px 1em;border:0px;outline:0px;vertical-align:baseline"><font color=3D=
"#555555" face=3D"sans-serif"><span style=3D"line-height:18px"><span style=
=3D"white-space:pre-wrap">	</span>at org.junit.runners.model.RunnerBuilder.=
safeRunnerForClass(RunnerBuilder.java:59)</span></font></p>
<p style=3D"font-family:arial,sans-serif;font-size:13px;margin:0px;padding:=
0px 10px 1em;border:0px;outline:0px;vertical-align:baseline"><font color=3D=
"#555555" face=3D"sans-serif"><span style=3D"line-height:18px"><span style=
=3D"white-space:pre-wrap">	</span>at org.junit.internal.requests.ClassReque=
st.getRunner(ClassRequest.java:26)</span></font></p>
<p style=3D"font-family:arial,sans-serif;font-size:13px;margin:0px;padding:=
0px 10px 1em;border:0px;outline:0px;vertical-align:baseline"><font color=3D=
"#555555" face=3D"sans-serif"><span style=3D"line-height:18px"><span style=
=3D"white-space:pre-wrap">	</span>at org.apache.maven.surefire.junit4.JUnit=
4Provider.execute(JUnit4Provider.java:250)</span></font></p>
<p style=3D"font-family:arial,sans-serif;font-size:13px;margin:0px;padding:=
0px 10px 1em;border:0px;outline:0px;vertical-align:baseline"><font color=3D=
"#555555" face=3D"sans-serif"><span style=3D"line-height:18px"><span style=
=3D"white-space:pre-wrap">	</span>at org.apache.maven.surefire.junit4.JUnit=
4Provider.executeTestSet(JUnit4Provider.java:141)</span></font></p>
<p style=3D"font-family:arial,sans-serif;font-size:13px;margin:0px;padding:=
0px 10px 1em;border:0px;outline:0px;vertical-align:baseline"><font color=3D=
"#555555" face=3D"sans-serif"><span style=3D"line-height:18px"><span style=
=3D"white-space:pre-wrap">	</span>at org.apache.maven.surefire.junit4.JUnit=
4Provider.invoke(JUnit4Provider.java:112)</span></font></p>
<p style=3D"font-family:arial,sans-serif;font-size:13px;margin:0px;padding:=
0px 10px 1em;border:0px;outline:0px;vertical-align:baseline"><font color=3D=
"#555555" face=3D"sans-serif"><span style=3D"line-height:18px"><span style=
=3D"white-space:pre-wrap">	</span>at sun.reflect.NativeMethodAccessorImpl.i=
nvoke0(Native Method)</span></font></p>
<p style=3D"font-family:arial,sans-serif;font-size:13px;margin:0px;padding:=
0px 10px 1em;border:0px;outline:0px;vertical-align:baseline"><font color=3D=
"#555555" face=3D"sans-serif"><span style=3D"line-height:18px"><span style=
=3D"white-space:pre-wrap">	</span>at sun.reflect.NativeMethodAccessorImpl.i=
nvoke(NativeMethodAccessorImpl.java:39)</span></font></p>
<p style=3D"font-family:arial,sans-serif;font-size:13px;margin:0px;padding:=
0px 10px 1em;border:0px;outline:0px;vertical-align:baseline"><font color=3D=
"#555555" face=3D"sans-serif"><span style=3D"line-height:18px"><span style=
=3D"white-space:pre-wrap">	</span>at sun.reflect.DelegatingMethodAccessorIm=
pl.invoke(DelegatingMethodAccessorImpl.java:25)</span></font></p>
<p style=3D"font-family:arial,sans-serif;font-size:13px;margin:0px;padding:=
0px 10px 1em;border:0px;outline:0px;vertical-align:baseline"><font color=3D=
"#555555" face=3D"sans-serif"><span style=3D"line-height:18px"><span style=
=3D"white-space:pre-wrap">	</span>at java.lang.reflect.Method.invoke(Method=
.java:597)</span></font></p>
<p style=3D"font-family:arial,sans-serif;font-size:13px;margin:0px;padding:=
0px 10px 1em;border:0px;outline:0px;vertical-align:baseline"><font color=3D=
"#555555" face=3D"sans-serif"><span style=3D"line-height:18px"><span style=
=3D"white-space:pre-wrap">	</span>at org.apache.maven.surefire.util.Reflect=
ionUtils.invokeMethodWithArray(ReflectionUtils.java:189)</span></font></p>
<p style=3D"font-family:arial,sans-serif;font-size:13px;margin:0px;padding:=
0px 10px 1em;border:0px;outline:0px;vertical-align:baseline"><font color=3D=
"#555555" face=3D"sans-serif"><span style=3D"line-height:18px"><span style=
=3D"white-space:pre-wrap">	</span>at org.apache.maven.surefire.booter.Provi=
derFactory$ProviderProxy.invoke(ProviderFactory.java:165)</span></font></p>
<p style=3D"font-family:arial,sans-serif;font-size:13px;margin:0px;padding:=
0px 10px 1em;border:0px;outline:0px;vertical-align:baseline"><font color=3D=
"#555555" face=3D"sans-serif"><span style=3D"line-height:18px"><span style=
=3D"white-space:pre-wrap">	</span>at org.apache.maven.surefire.booter.Provi=
derFactory.invokeProvider(ProviderFactory.java:85)</span></font></p>
<p style=3D"font-family:arial,sans-serif;font-size:13px;margin:0px;padding:=
0px 10px 1em;border:0px;outline:0px;vertical-align:baseline"><font color=3D=
"#555555" face=3D"sans-serif"><span style=3D"line-height:18px"><span style=
=3D"white-space:pre-wrap">	</span>at org.apache.maven.surefire.booter.Forke=
dBooter.runSuitesInProcess(ForkedBooter.java:115)</span></font></p>
<p style=3D"font-family:arial,sans-serif;font-size:13px;margin:0px;padding:=
0px 10px 1em;border:0px;outline:0px;vertical-align:baseline"><font color=3D=
"#555555" face=3D"sans-serif"><span style=3D"line-height:18px"><span style=
=3D"white-space:pre-wrap">	</span>at org.apache.maven.surefire.booter.Forke=
dBooter.main(ForkedBooter.java:75)</span></font></p>
<div><br></div>-- <br><font face=3D"arial, sans-serif"><span style=3D"borde=
r-collapse:collapse">--=C2=A0</span></font><br><div><b style=3D"border-coll=
apse:collapse;color:rgb(80,0,80);font-family:arial,sans-serif;font-size:13p=
x">Dr Christopher Barran</b><div style=3D"border-collapse:collapse;color:rg=
b(80,0,80);font-family:arial,sans-serif;font-size:13px">
Senior Developer<br></div><div style=3D"border-collapse:collapse;color:rgb(=
80,0,80);font-family:arial,sans-serif;font-size:13px">Corporate=C2=A0Inform=
ation=C2=A0&amp; Computing Services</div>
The University of Sheffield<br>
10-12 Brunswick Street<br>
Sheffield<br>
S10 2FN<br>
England<div style=3D"border-collapse:collapse;color:rgb(80,0,80);font-famil=
y:arial,sans-serif;font-size:13px">Tel: +44 114 22<b>21193</b></div><div st=
yle=3D"border-collapse:collapse;color:rgb(80,0,80);font-family:arial,sans-s=
erif;font-size:13px">
<b><a href=3D"http://uspace.shef.ac.uk/people/ad1cdb" style=3D"color:rgb(42=
,93,176)" target=3D"_blank">http://uspace.shef.ac.uk/people/ad1cdb</a></b><=
/div></div><div><font color=3D"#500050" face=3D"arial, sans-serif"><span st=
yle=3D"border-collapse:collapse"><br>
</span></font></div>
</div>

--089e016818cc76a6ee04decb0372--


--===============9074158458359395604==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

------------------------------------------------------------------------------
How ServiceNow helps IT people transform IT departments:
1. A cloud service to automate IT design, transition and operations
2. Dashboards that offer high-level views of enterprise services
3. A single system of record for all IT processes
http://p.sf.net/sfu/servicenow-d2d-j
--===============9074158458359395604==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
Grinder-development mailing list
Grinder-development-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org
https://lists.sourceforge.net/lists/listinfo/grinder-development

--===============9074158458359395604==--