# \[Gatling 2.0.0.M3a\] Action HttpRequestAction crashed

**URL:** <https://community.gatling.io/t/gatling-2-0-0-m3a-action-httprequestaction-crashed/862>\
**Category:** Gatling (Open-Source)\
**Created:** [March 9, 2014, 3:46pm UTC](https://community.gatling.io/t/gatling-2-0-0-m3a-action-httprequestaction-crashed/862 "2014-03-09T15:46:29Z")\
**Posts on this page:** 18\
**Page:** 1

<div class="post-metadata">

**Author:** ![Dian](https://avatars.discourse-cdn.com/v4/letter/d/c4cdca/32.png) [@Dian](https://community.gatling.io/u/Dian)\
**Post date:** [March 9, 2014, 3:46pm UTC](https://community.gatling.io/t/gatling-2-0-0-m3a-action-httprequestaction-crashed/862/1 "2014-03-09T15:46:29Z")

</div>

Hello:

I am using Gatling 2.0.0-M3a to record the script. When running the script, gatling report some error messages, How can i deal with it?

The recorded scripts looks like :

val httpProtocol = http  
.baseURL(“[https://xxx:9443](https://xxx:9443)”)  
.acceptHeader("_/_")  
.acceptCharsetHeader(“iso-8859-1,\*,utf-8”)  
.acceptEncodingHeader(“gzip,deflate,sdch”)  
.acceptLanguageHeader(“zh-CN,zh;q=0.8”)  
.connection(“keep-alive”)  
.userAgentHeader(“Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.146 Safari/537.36”)

val headers\_61 = Map(  
“”“Accept”"" → “”“application/json”"",  
“”“Content-Type”"" → “”“application/x-www-form-urlencoded”"",  
“”“X-Requested-With”"" → “”“XMLHttpRequest”"")

… …

val chain\_1 =  
exec(http(“request\_83”)  
.get("""/rest/…""")  
.headers(headers\_61)  
)

The Error Message looks like below:

[ERROR] [03/09/2014 23:29:50.178] [GatlingSystem-akka.actor.default-dispatcher-13] [akka://GatlingSystem/user/$o] null  
java.lang.NullPointerException  
at io.gatling.http.cookie.CookieJar$.domainMatches(CookieJar.scala:30)  
at io.gatling.http.cookie.CookieJar.io$gatling$http$cookie$CookieJar$$matchSubDomain$1(CookieJar.scala:126)  
at io.gatling.http.cookie.CookieJar$$anonfun$1$$anonfun$applyOrElse$1.apply(CookieJar.scala:129)  
at io.gatling.http.cookie.CookieJar$$anonfun$1$$anonfun$applyOrElse$1.apply(CookieJar.scala:129)  
at scala.collection.TraversableLike$$anonfun$filter$1.apply(TraversableLike.scala:264)  
at scala.collection.immutable.List.foreach(List.scala:318)  
at scala.collection.TraversableLike$class.filter(TraversableLike.scala:263)  
at scala.collection.AbstractTraversable.filter(Traversable.scala:105)  
at io.gatling.http.cookie.CookieJar$$anonfun$1.applyOrElse(CookieJar.scala:129)  
at io.gatling.http.cookie.CookieJar$$anonfun$1.applyOrElse(CookieJar.scala:129)  
at scala.runtime.AbstractPartialFunction.apply(AbstractPartialFunction.scala:33)  
at scala.collection.TraversableLike$$anonfun$collect$1.apply(TraversableLike.scala:278)  
at scala.collection.immutable.Map$Map1.foreach(Map.scala:109)  
at scala.collection.TraversableLike$class.collect(TraversableLike.scala:278)  
at scala.collection.AbstractTraversable.collect(Traversable.scala:105)  
at io.gatling.http.cookie.CookieJar.get(CookieJar.scala:129)  
at io.gatling.http.cookie.CookieHandling$$anonfun$getStoredCookies$1.apply(CookieHandling.scala:33)  
at io.gatling.http.cookie.CookieHandling$$anonfun$getStoredCookies$1.apply(CookieHandling.scala:33)  
at scala.Option.map(Option.scala:145)  
at io.gatling.http.cookie.CookieHandling$.getStoredCookies(CookieHandling.scala:33)  
at io.gatling.http.cookie.CookieHandling$.getStoredCookies(CookieHandling.scala:29)  
at io.gatling.http.request.builder.AbstractHttpRequestBuilder.io$gatling$http$request$builder$AbstractHttpRequestBuilder$$configureQueryCookiesAndProxy$1(AbstractHttpRequestBuilder.scala:156)  
at io.gatling.http.request.builder.AbstractHttpRequestBuilder$$anonfun$getAHCRequestBuilder$2.apply(AbstractHttpRequestBuilder.scala:198)  
at io.gatling.http.request.builder.AbstractHttpRequestBuilder$$anonfun$getAHCRequestBuilder$2.apply(AbstractHttpRequestBuilder.scala:198)  
at io.gatling.core.validation.Success.flatMap(Validation.scala:27)  
at io.gatling.http.request.builder.AbstractHttpRequestBuilder.getAHCRequestBuilder(AbstractHttpRequestBuilder.scala:198)  
at io.gatling.http.request.builder.AbstractHttpRequestBuilder$$anonfun$build$1.apply(AbstractHttpRequestBuilder.scala:208)  
at io.gatling.http.request.builder.AbstractHttpRequestBuilder$$anonfun$build$1.apply(AbstractHttpRequestBuilder.scala:208)  
at io.gatling.http.action.HttpRequestAction$$anonfun$1.apply(HttpRequestAction.scala:82)  
at io.gatling.http.action.HttpRequestAction$$anonfun$1.apply(HttpRequestAction.scala:81)  
at io.gatling.core.validation.Success.flatMap(Validation.scala:27)  
at io.gatling.http.action.HttpRequestAction.execute(HttpRequestAction.scala:81)  
at io.gatling.core.action.Action$$anonfun$receive$1.applyOrElse(Action.scala:27)  
at scala.PartialFunction$OrElse.applyOrElse(PartialFunction.scala:166)  
at akka.actor.ActorCell.receiveMessage(ActorCell.scala:425)  
at akka.actor.ActorCell.invoke(ActorCell.scala:386)  
at akka.dispatch.Mailbox.processMailbox(Mailbox.scala:230)  
at akka.dispatch.Mailbox.run(Mailbox.scala:212)  
at akka.dispatch.ForkJoinExecutorConfigurator$MailboxExecutionTask.exec(AbstractDispatcher.scala:506)  
at scala.concurrent.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260)  
at scala.concurrent.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1339)  
at scala.concurrent.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979)  
at scala.concurrent.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107)

23:29:50.180 [ERROR] i.g.h.a.HttpRequestAction - Action HttpRequestAction crashed, forwarding user to next one  
java.lang.NullPointerException: null  
at io.gatling.http.cookie.CookieJar$.domainMatches(CookieJar.scala:30) ~[gatling-http-2.0.0.20130628.jar:na]  
at io.gatling.http.cookie.CookieJar.io$gatling$http$cookie$CookieJar$$matchSubDomain$1(CookieJar.scala:126) ~[gatling-http-2.0.0.20130628.jar:na]  
at io.gatling.http.cookie.CookieJar$$anonfun$1$$anonfun$applyOrElse$1.apply(CookieJar.scala:129) ~[gatling-http-2.0.0.20130628.jar:na]  
at io.gatling.http.cookie.CookieJar$$anonfun$1$$anonfun$applyOrElse$1.apply(CookieJar.scala:129) ~[gatling-http-2.0.0.20130628.jar:na]  
at scala.collection.TraversableLike$$anonfun$filter$1.apply(TraversableLike.scala:264) ~[na:na]  
at scala.collection.immutable.List.foreach(List.scala:318) ~[na:na]  
at scala.collection.TraversableLike$class.filter(TraversableLike.scala:263) ~[na:na]  
at scala.collection.AbstractTraversable.filter(Traversable.scala:105) ~[na:na]  
at io.gatling.http.cookie.CookieJar$$anonfun$1.applyOrElse(CookieJar.scala:129) ~[gatling-http-2.0.0.20130628.jar:na]  
at io.gatling.http.cookie.CookieJar$$anonfun$1.applyOrElse(CookieJar.scala:129) ~[gatling-http-2.0.0.20130628.jar:na]  
at scala.runtime.AbstractPartialFunction.apply(AbstractPartialFunction.scala:33) ~[na:na]  
at scala.collection.TraversableLike$$anonfun$collect$1.apply(TraversableLike.scala:278) ~[na:na]  
at scala.collection.immutable.Map$Map1.foreach(Map.scala:109) ~[na:na]  
at scala.collection.TraversableLike$class.collect(TraversableLike.scala:278) ~[na:na]  
at scala.collection.AbstractTraversable.collect(Traversable.scala:105) ~[na:na]  
at io.gatling.http.cookie.CookieJar.get(CookieJar.scala:129) ~[gatling-http-2.0.0.20130628.jar:na]  
at io.gatling.http.cookie.CookieHandling$$anonfun$getStoredCookies$1.apply(CookieHandling.scala:33) ~[gatling-http-2.0.0.20130628.jar:na]  
at io.gatling.http.cookie.CookieHandling$$anonfun$getStoredCookies$1.apply(CookieHandling.scala:33) ~[gatling-http-2.0.0.20130628.jar:na]  
at scala.Option.map(Option.scala:145) ~[na:na]  
at io.gatling.http.cookie.CookieHandling$.getStoredCookies(CookieHandling.scala:33) ~[gatling-http-2.0.0.20130628.jar:na]  
at io.gatling.http.cookie.CookieHandling$.getStoredCookies(CookieHandling.scala:29) ~[gatling-http-2.0.0.20130628.jar:na]  
at io.gatling.http.request.builder.AbstractHttpRequestBuilder.io$gatling$http$request$builder$AbstractHttpRequestBuilder$$configureQueryCookiesAndProxy$1(AbstractHttpRequestBuilder.scala:156) ~[gatling-http-2.0.0.20130628.jar:na]  
at io.gatling.http.request.builder.AbstractHttpRequestBuilder$$anonfun$getAHCRequestBuilder$2.apply(AbstractHttpRequestBuilder.scala:198) ~[gatling-http-2.0.0.20130628.jar:na]  
at io.gatling.http.request.builder.AbstractHttpRequestBuilder$$anonfun$getAHCRequestBuilder$2.apply(AbstractHttpRequestBuilder.scala:198) ~[gatling-http-2.0.0.20130628.jar:na]  
at io.gatling.core.validation.Success.flatMap(Validation.scala:27) ~[gatling-core-2.0.0.20130628.jar:na]  
at io.gatling.http.request.builder.AbstractHttpRequestBuilder.getAHCRequestBuilder(AbstractHttpRequestBuilder.scala:198) ~[gatling-http-2.0.0.20130628.jar:na]  
at io.gatling.http.request.builder.AbstractHttpRequestBuilder$$anonfun$build$1.apply(AbstractHttpRequestBuilder.scala:208) ~[gatling-http-2.0.0.20130628.jar:na]  
at io.gatling.http.request.builder.AbstractHttpRequestBuilder$$anonfun$build$1.apply(AbstractHttpRequestBuilder.scala:208) ~[gatling-http-2.0.0.20130628.jar:na]  
at io.gatling.http.action.HttpRequestAction$$anonfun$1.apply(HttpRequestAction.scala:82) ~[gatling-http-2.0.0.20130628.jar:na]  
at io.gatling.http.action.HttpRequestAction$$anonfun$1.apply(HttpRequestAction.scala:81) ~[gatling-http-2.0.0.20130628.jar:na]  
at io.gatling.core.validation.Success.flatMap(Validation.scala:27) ~[gatling-core-2.0.0.20130628.jar:na]  
at io.gatling.http.action.HttpRequestAction.execute(HttpRequestAction.scala:81) ~[gatling-http-2.0.0.20130628.jar:na]  
at io.gatling.core.action.Action$$anonfun$receive$1.applyOrElse(Action.scala:27) ~[gatling-core-2.0.0.20130628.jar:na]  
at scala.PartialFunction$OrElse.applyOrElse(PartialFunction.scala:166) ~[na:na]  
at akka.actor.ActorCell.receiveMessage(ActorCell.scala:425) ~[akka-actor\_2.10-2.1.4.jar:na]  
at akka.actor.ActorCell.invoke(ActorCell.scala:386) ~[akka-actor\_2.10-2.1.4.jar:na]  
at akka.dispatch.Mailbox.processMailbox(Mailbox.scala:230) ~[akka-actor\_2.10-2.1.4.jar:na]  
at akka.dispatch.Mailbox.run(Mailbox.scala:212) ~[akka-actor\_2.10-2.1.4.jar:na]  
at akka.dispatch.ForkJoinExecutorConfigurator$MailboxExecutionTask.exec(AbstractDispatcher.scala:506) [akka-actor\_2.10-2.1.4.jar:na]  
at scala.concurrent.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260) [na:na]  
at scala.concurrent.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1339) [na:na]  
at scala.concurrent.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979) [na:na]  
at scala.concurrent.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107) [na:na]

---

<div class="post-metadata">

**Author:** ![Excilys](https://avatars.discourse-cdn.com/v4/letter/e/8797f3/32.png) [@Excilys](https://community.gatling.io/u/Excilys)\
**Post date:** [March 9, 2014, 7:29pm UTC](https://community.gatling.io/t/gatling-2-0-0-m3a-action-httprequestaction-crashed/862/2 "2014-03-09T19:29:17Z")

</div>

Hi,

Could you check if you can reproduce with current snapshot, please?  
[https://github.com/excilys/gatling/wiki/Continuous-Integration](https://github.com/excilys/gatling/wiki/Continuous-Integration)

I can help migrating.

Cheers,  
Stéphane

---

<div class="post-metadata">

**Author:** ![Dian](https://avatars.discourse-cdn.com/v4/letter/d/c4cdca/32.png) [@Dian](https://community.gatling.io/u/Dian)\
**Post date:** [March 10, 2014, 2:00am UTC](https://community.gatling.io/t/gatling-2-0-0-m3a-action-httprequestaction-crashed/862/3 "2014-03-10T02:00:48Z")

</div>

Hi, Stéphane, Thanks a lot for your quick response!

I download the snapshot from below URL according the wiki page :  
[https://oss.sonatype.org/content/repositories/snapshots/io/gatling/highcharts/gatling-charts-highcharts/2.0.0-SNAPSHOT/](https://oss.sonatype.org/content/repositories/snapshots/io/gatling/highcharts/gatling-charts-highcharts/2.0.0-SNAPSHOT/).

Firstly, I’d like to record scripts again using 2.0.0-SNAPSHOT, but failed to do that, I will report it in another subject.

Then I tried to migrated the scripts with below changing:  
a. Remove the imports: bootstrap.\_ and assertions.\_  
b. Change ramp to rampUsers.

Running the modifed scripts on 2.0.0-SNAPSHOT with JDK 7, it report similar error message like below:

09:44:45.457 [WARN] i.g.h.r.b.HttpRequestExpressionBuilder - Failed to build request  
java.lang.NullPointerException: null  
at io.gatling.http.cookie.CookieJar$.io$gatling$http$cookie$CookieJar$$requestDomain(CookieJar.scala:29) ~[gatling-http-2.0.0-SNAPSHOT.jar:2.0.0-SNAPSHOT]  
at io.gatling.http.cookie.CookieJar.get(CookieJar.scala:129) ~[gatling-http-2.0.0-SNAPSHOT.jar:2.0.0-SNAPSHOT]  
at io.gatling.http.cookie.CookieHandling$.getStoredCookies(CookieHandling.scala:34) ~[gatling-http-2.0.0-SNAPSHOT.jar:2.0.0-SNAPSHOT]  
at io.gatling.http.request.builder.RequestExpressionBuilder.configureCookies(RequestExpressionBuilder.scala:61) ~[gatling-http-2.0.0-SNAPSHOT.jar:2.0.0-SNAPSHOT]  
at io.gatling.http.request.builder.RequestExpressionBuilder$$anonfun$configureRequestBuilder$1.apply(RequestExpressionBuilder.scala:111) ~[gatling-http-2.0.0-SNAPSHOT.jar:2.0.0-SNAPSHOT]  
at io.gatling.http.request.builder.RequestExpressionBuilder$$anonfun$configureRequestBuilder$1.apply(RequestExpressionBuilder.scala:111) ~[gatling-http-2.0.0-SNAPSHOT.jar:2.0.0-SNAPSHOT]  
at io.gatling.core.validation.Success.flatMap(Validation.scala:32) [gatling-core-2.0.0-SNAPSHOT.jar:2.0.0-SNAPSHOT]  
at io.gatling.http.request.builder.RequestExpressionBuilder.configureRequestBuilder(RequestExpressionBuilder.scala:111) ~[gatling-http-2.0.0-SNAPSHOT.jar:2.0.0-SNAPSHOT]  
at io.gatling.http.request.builder.HttpRequestExpressionBuilder.configureRequestBuilder(HttpRequestExpressionBuilder.scala:72) ~[gatling-http-2.0.0-SNAPSHOT.jar:2.0.0-SNAPSHOT]  
at io.gatling.http.request.builder.RequestExpressionBuilder$$anonfun$build$1$$anonfun$apply$5.apply(RequestExpressionBuilder.scala:134) ~[gatling-http-2.0.0-SNAPSHOT.jar:2.0.0-SNAPSHOT]  
at io.gatling.http.request.builder.RequestExpressionBuilder$$anonfun$build$1$$anonfun$apply$5.apply(RequestExpressionBuilder.scala:133) ~[gatling-http-2.0.0-SNAPSHOT.jar:2.0.0-SNAPSHOT]  
at io.gatling.core.validation.Success.flatMap(Validation.scala:32) [gatling-core-2.0.0-SNAPSHOT.jar:2.0.0-SNAPSHOT]  
at io.gatling.http.request.builder.RequestExpressionBuilder$$anonfun$build$1.apply(RequestExpressionBuilder.scala:133) [gatling-http-2.0.0-SNAPSHOT.jar:2.0.0-SNAPSHOT]  
at io.gatling.http.request.builder.RequestExpressionBuilder$$anonfun$build$1.apply(RequestExpressionBuilder.scala:118) [gatling-http-2.0.0-SNAPSHOT.jar:2.0.0-SNAPSHOT]  
at io.gatling.http.action.HttpRequestAction.sendRequest(HttpRequestAction.scala:84) [gatling-http-2.0.0-SNAPSHOT.jar:2.0.0-SNAPSHOT]  
at io.gatling.http.action.RequestAction$$anonfun$executeOrFail$1.apply(RequestAction.scala:33) [gatling-http-2.0.0-SNAPSHOT.jar:2.0.0-SNAPSHOT]  
at io.gatling.http.action.RequestAction$$anonfun$executeOrFail$1.apply(RequestAction.scala:31) [gatling-http-2.0.0-SNAPSHOT.jar:2.0.0-SNAPSHOT]  
at io.gatling.core.validation.Success.flatMap(Validation.scala:32) [gatling-core-2.0.0-SNAPSHOT.jar:2.0.0-SNAPSHOT]  
at io.gatling.http.action.RequestAction.executeOrFail(RequestAction.scala:31) [gatling-http-2.0.0-SNAPSHOT.jar:2.0.0-SNAPSHOT]  
at io.gatling.core.action.Failable$class.execute(Actions.scala:97) [gatling-core-2.0.0-SNAPSHOT.jar:2.0.0-SNAPSHOT]  
at io.gatling.http.action.RequestAction.execute(RequestAction.scala:25)[gatling-http-2.0.0-SNAPSHOT.jar:2.0.0-SNAPSHOT]  
at io.gatling.core.action.Action$$anonfun$receive$1.applyOrElse(Actions.scala:30) [gatling-core-2.0.0-SNAPSHOT.jar:2.0.0-SNAPSHOT]  
at scala.PartialFunction$OrElse.applyOrElse(PartialFunction.scala:166) [scala-library-2.10.4-RC3.jar:na]  
at akka.actor.ActorCell.receiveMessage(ActorCell.scala:498) [akka-actor\_2.10-2.2.4.jar:2.2.4]  
at akka.actor.ActorCell.invoke(ActorCell.scala:456) [akka-actor\_2.10-2.2.4.jar:2.2.4]  
at akka.dispatch.Mailbox.processMailbox(Mailbox.scala:237) [akka-actor\_2.10-2.2.4.jar:2.2.4]  
at akka.dispatch.Mailbox.run(Mailbox.scala:219) [akka-actor\_2.10-2.2.4.jar:2.2.4]  
at akka.dispatch.ForkJoinExecutorConfigurator$AkkaForkJoinTask.exec(AbstractDispatcher.scala:385) [akka-actor\_2.10-2.2.4.jar:2.2.4]  
at scala.concurrent.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260)[scala-library-2.10.4-RC3.jar:na]  
at scala.concurrent.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1339) [scala-library-2.10.4-RC3.jar:na]  
at scala.concurrent.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979) [scala-library-2.10.4-RC3.jar:na]  
at scala.concurrent.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107) [scala-library-2.10.4-RC3.jar:na]  
09:44:45.467 [ERROR] i.g.h.a.HttpRequestAction - Failed to build request: null

---

<div class="post-metadata">

**Author:** ![Excilys](https://avatars.discourse-cdn.com/v4/letter/e/8797f3/32.png) [@Excilys](https://community.gatling.io/u/Excilys)\
**Post date:** [March 10, 2014, 5:21am UTC](https://community.gatling.io/t/gatling-2-0-0-m3a-action-httprequestaction-crashed/862/4 "2014-03-10T05:21:11Z")

</div>

Hi,

I don’t get how that’s possible, but it seems that you’re trying to build an URI with a null host.  
Does it ring a bell to you?

Stéphane

---

<div class="post-metadata">

**Author:** ![Dian](https://avatars.discourse-cdn.com/v4/letter/d/c4cdca/32.png) [@Dian](https://community.gatling.io/u/Dian)\
**Post date:** [March 10, 2014, 7:53am UTC](https://community.gatling.io/t/gatling-2-0-0-m3a-action-httprequestaction-crashed/862/5 "2014-03-10T07:53:19Z")

</div>

Hi, Stéphane, Thanks for so quickly response! 8- )

I highly doubt that the issue is related the special URI which including some empty char, like:  
“[https://xxx:9443/rest/](https://xxx:9443/rest/)…&sortAttributes=IS\_AT\_RISK DESC,DUE ASC,TKIID ASC&…”

Running with this URL on [Gatling 2.0.0.M3a], it will report error message like:

java.net.URISyntaxException: Illegal character in query at index 297: [https://xxx:9443/rest/](https://xxx:9443/rest/)…&sortAttributes=IS\_AT\_RISK DESC,DUE ASC,TKIID ASC&…  
at java.net.URI$Parser.fail(URI.java:2809) ~[na:1.6.0]  
at java.net.URI$Parser.checkChars(URI.java:2982) ~[na:1.6.0]  
at java.net.URI$Parser.parseHierarchical(URI.java:3072) ~[na:1.6.0]  
at java.net.URI$Parser.parse(URI.java:3014) ~[na:1.6.0]  
at java.net.URI.(URI.java:578) ~[na:1.6.0]  
at java.net.URI.create(URI.java:840) ~[na:1.6.0]  
Wrapped by: java.lang.IllegalArgumentException: null  
at java.net.URI.create(URI.java:842) ~[na:1.6.0]  
at com.ning.http.client.RequestBuilderBase$RequestImpl.toURI(RequestBuilderBase.java:215) ~[async-http-client-1.7.18.20130621.jar:na]  
at com.ning.http.client.RequestBuilderBase$RequestImpl.getRawURI(RequestBuilderBase.java:162) ~[async-http-client-1.7.18.20130621.jar:na]  
at com.ning.http.client.RequestBuilderBase$RequestImpl.getRawUrl(RequestBuilderBase.java:147) ~[async-http-client-1.7.18.20130621.jar:na]  
at io.gatling.highcharts.gatling\_highcharts\_maven\_archetype.RecordedSimulation$$anonfun$1.apply(RecordedSimulation.scala:76) ~[test-classes/:na]  
at io.gatling.highcharts.gatling\_highcharts\_maven\_archetype.RecordedSimulation$$anonfun$1.apply(RecordedSimulation.scala:74) ~[test-classes/:na]  
at io.gatling.http.ahc.AsyncHandlerActor$$anonfun$1.apply(AsyncHandlerActor.scala:89) ~[gatling-http-2.0.0.20130628.jar:na]  
at io.gatling.http.ahc.AsyncHandlerActor$$anonfun$1.apply(AsyncHandlerActor.scala:89) ~[gatling-http-2.0.0.20130628.jar:na]  
at scala.Option.map(Option.scala:145) ~[na:na]  
at io.gatling.http.ahc.AsyncHandlerActor.logRequest(AsyncHandlerActor.scala:89) [gatling-http-2.0.0.20130628.jar:na]  
at io.gatling.http.ahc.AsyncHandlerActor.ok(AsyncHandlerActor.scala:117) [gatling-http-2.0.0.20130628.jar:na]  
at io.gatling.http.ahc.AsyncHandlerActor.checkAndProceed$1(AsyncHandlerActor.scala:166) [gatling-http-2.0.0.20130628.jar:na]  
at io.gatling.http.ahc.AsyncHandlerActor.io$gatling$http$ahc$AsyncHandlerActor$$processResponse(AsyncHandlerActor.scala:176) [gatling-http-2.0.0.20130628.jar:na]  
at io.gatling.http.ahc.AsyncHandlerActor$$anonfun$receive$1.applyOrElse(AsyncHandlerActor.scala:55) [gatling-http-2.0.0.20130628.jar:na]  
at akka.actor.ActorCell.receiveMessage(ActorCell.scala:425) [akka-actor\_2.10-2.1.4.jar:na]  
at akka.actor.ActorCell.invoke(ActorCell.scala:386) [akka-actor\_2.10-2.1.4.jar:na]  
at akka.dispatch.Mailbox.processMailbox(Mailbox.scala:230) [akka-actor\_2.10-2.1.4.jar:na]  
at akka.dispatch.Mailbox.run(Mailbox.scala:212) [akka-actor\_2.10-2.1.4.jar:na]  
at akka.dispatch.ForkJoinExecutorConfigurator$MailboxExecutionTask.exec(AbstractDispatcher.scala:506) [akka-actor\_2.10-2.1.4.jar:na]  
at scala.concurrent.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260) [na:na]  
at scala.concurrent.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1339) [na:na]  
at scala.concurrent.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979) [na:na]  
at scala.concurrent.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107) [na:na]

Then, I wrapped the URI with URLEncoder.encode(…). Now, I highly doubt the beginning error message was related this URLEncoder.encode(…), I need to remove it and try again , but the question is how to deal with such special URI which including the empty char?

Stéphane Landelle於 2014年3月10日星期一UTC+8下午1時21分11秒寫道：

---

<div class="post-metadata">

**Author:** ![Excilys](https://avatars.discourse-cdn.com/v4/letter/e/8797f3/32.png) [@Excilys](https://community.gatling.io/u/Excilys)\
**Post date:** [March 10, 2014, 8:50am UTC](https://community.gatling.io/t/gatling-2-0-0-m3a-action-httprequestaction-crashed/862/6 "2014-03-10T08:50:32Z")

</div>

I don’t think the problem is related to unencoded chars in the path.  
The problem really seems to be with the host.

Here’s a replacement for gatling-http jar that would throw an Exception if the host was null. Could you give it a try, please?

Regarding spaces in the query, this is not valid HTTP. Those are supposed to be URLencoded. java.net.URI respects the RFC on this point, and most java HTTP clients are based on this class (AsyncHttpClient, Apache HttpComponents, Jetty client…). Sadly, browsers don’t and are very permissive, not encouraging people to fix their implementation and turning the internet into a mess. I’m actually working on AsyncHttpClient in order to make it permissive as well ☹

[gatling-http-2.0.0-SNAPSHOT.jar](https://community.gatling.io/uploads/short-url/3ba5zSjAJ8br2uJDz3EvbGRBSJh.jar) (984 KB)

---

<div class="post-metadata">

**Author:** ![Dian](https://avatars.discourse-cdn.com/v4/letter/d/c4cdca/32.png) [@Dian](https://community.gatling.io/u/Dian)\
**Post date:** [March 10, 2014, 10:54am UTC](https://community.gatling.io/t/gatling-2-0-0-m3a-action-httprequestaction-crashed/862/7 "2014-03-10T10:54:09Z")

</div>

> Hi, Stéphane:

---

<div class="post-metadata">

**Author:** ![Excilys](https://avatars.discourse-cdn.com/v4/letter/e/8797f3/32.png) [@Excilys](https://community.gatling.io/u/Excilys)\
**Post date:** [March 10, 2014, 11:15am UTC](https://community.gatling.io/t/gatling-2-0-0-m3a-action-httprequestaction-crashed/862/8 "2014-03-10T11:15:38Z")

</div>

> > a. From below testing 1, 2, 3, I think that the beginning error message  
> > is related to use the URLEncoder.encode(..) to wrap original URI.

2 probably means that there's another character that wasn't encoded.  
3 is wrong: that's not how you use URLEncoder.encode, please read the  
javadoc. It is used to encode query parameter names and values, not the  
full query, otherwise you end up encoding all the characters, for example  
the "=" and "&".

> > b. From below testing 1, 2, it looks like gatling have some trouble to  
> > deal with the URL including the empty char or %20 .

See above, I think 2 is not complete.  
And as I said, empty char is not valid according to the RFC.

> > c. From below testing 4, it was the output when useing the attached jar  
> > file.

Is "[https://xxx:9443/rest/...&sortAttributes=IS\_AT\_RISK](https://xxx:9443/rest/...&sortAttributes=IS_AT_RISK) DESC,DUE ASC,TKIID  
ASC&..." the real url (appart from the anonymized host)?  
If not, could you provide the full url? We're playing riddles here.

---

<div class="post-metadata">

**Author:** ![Dian](https://avatars.discourse-cdn.com/v4/letter/d/c4cdca/32.png) [@Dian](https://community.gatling.io/u/Dian)\
**Post date:** [March 10, 2014, 11:35am UTC](https://community.gatling.io/t/gatling-2-0-0-m3a-action-httprequestaction-crashed/862/9 "2014-03-10T11:35:00Z")

</div>

Stéphane Landelle於 2014年3月10日星期一UTC+8下午7時15分38秒寫道：

> > > a. From below testing 1, 2, 3, I think that the beginning error message is related to use the URLEncoder.encode(…) to wrap original URI.
> 
> 2 probably means that there’s another character that wasn’t encoded.  
> 3 is wrong: that’s not how you use URLEncoder.encode, please read the javadoc. It is used to encode query parameter names and values, not the full query, otherwise you end up encoding all the characters, for example the “=” and “&”.

There is no other special characters in URL, One simple URL is :  
“/rest/TASKSLIST?selectedAttributes=TKIID&interactionFilter=ASSESS\_AND\_WORK\_ON&size=26&sortAttributes=IS\_AT\_RISK DESC,DUE ASC,TKIID ASC”

When remove “&sortAttributes=IS\_AT\_RISK DESC,DUE ASC,TKIID ASC” from above url like below , the Gatling works and won’t throw out the exception. (but the testing is required to use the full url not just part of them).  
“/rest/TASKSLIST?selectedAttributes=TKIID&interactionFilter=ASSESS\_AND\_WORK\_ON&size=26”

So I think the questions now is how to deal with the URL containing the empty char (though it is not a good HTTP URL) … 8- )

---

<div class="post-metadata">

**Author:** ![Excilys](https://avatars.discourse-cdn.com/v4/letter/e/8797f3/32.png) [@Excilys](https://community.gatling.io/u/Excilys)\
**Post date:** [March 10, 2014, 11:48am UTC](https://community.gatling.io/t/gatling-2-0-0-m3a-action-httprequestaction-crashed/862/10 "2014-03-10T11:48:39Z")

</div>

> There is no other special characters in URL, One simple URL is :
> 
> > 
> 
> "/rest/TASKSLIST?selectedAttributes=TKIID&interactionFilter=ASSESS\_AND\_WORK\_ON&size=26&sortAttributes=IS\_AT\_RISK  
> DESC,DUE ASC,TKIID ASC"

Yes there is. For example, comma should be %2C.

> When remove "&sortAttributes=IS\_AT\_RISK DESC,DUE ASC,TKIID ASC" from above  
> url like below , the Gatling works and won't throw out the exception. (but  
> the testing is required to use the full url not just part of them).
> 
> "/rest/TASKSLIST?selectedAttributes=TKIID&interactionFilter=ASSESS\_AND\_WORK\_ON&size=26"
> 
> So I think the questions now is how to deal with the URL containing the  
> empty char (though it is not a good HTTP URL) ... 8- )

"/rest/TASKSLIST?selectedAttributes=TKIID&interactionFilter=ASSESS\_AND\_WORK\_ON&size=26&sortAttributes="  
+ UrlEncoder.encode("IS\_AT\_RISK DESC,DUE ASC,TKIID ASC", "UTF-8")

---

<div class="post-metadata">

**Author:** ![Dian](https://avatars.discourse-cdn.com/v4/letter/d/c4cdca/32.png) [@Dian](https://community.gatling.io/u/Dian)\
**Post date:** [March 11, 2014, 7:48am UTC](https://community.gatling.io/t/gatling-2-0-0-m3a-action-httprequestaction-crashed/862/11 "2014-03-11T07:48:20Z")

</div>

With URLEncoder.encode(…), the beginning Error message is gone, but Gatling threw out a Warning Message like below.

22:15:45.453 [WARN] i.g.h.a.AsyncHandlerActor - Encountered error while extracting extra request info  
java.net.URISyntaxException: Illegal character in query at index 297: [https://xxx:9443/rest/](https://xxx:9443/rest/)…&sortAttributes=IS\_AT\_RISK DESC,DUE ASC,TKIID ASC&…  
at java.net.URI$Parser.fail(URI.java:2809) ~[na:1.6.0]  
at java.net.URI$Parser.checkChars(URI.java:2982) ~[na:1.6.0]  
at java.net.URI$Parser.parseHierarchical(URI.java:3072) ~[na:1.6.0]  
at java.net.URI$Parser.parse(URI.java:3014) ~[na:1.6.0]  
at java.net.URI.(URI.java:578) ~[na:1.6.0]  
at java.net.URI.create(URI.java:840) ~[na:1.6.0]  
Wrapped by: java.lang.IllegalArgumentException: null  
at java.net.URI.create(URI.java:842) ~[na:1.6.0]  
at com.ning.http.client.RequestBuilderBase$RequestImpl.toURI(RequestBuilderBase.java:215) ~[async-http-client-1.7.18.20130621.jar:na]  
at com.ning.http.client.RequestBuilderBase$RequestImpl.getRawURI(RequestBuilderBase.java:162) ~[async-http-client-1.7.18.20130621.jar:na]  
at com.ning.http.client.RequestBuilderBase$RequestImpl.getRawUrl(RequestBuilderBase.java:147) ~[async-http-client-1.7.18.20130621.jar:na]  
at io.gatling.highcharts.gatling\_highcharts\_maven\_archetype.RecordedSimulation$$anonfun$1.apply(RecordedSimulation.scala:483) ~[test-classes/:na]  
at io.gatling.highcharts.gatling\_highcharts\_maven\_archetype.RecordedSimulation$$anonfun$1.apply(RecordedSimulation.scala:481) ~[test-classes/:na]  
at io.gatling.http.ahc.AsyncHandlerActor$$anonfun$1.apply(AsyncHandlerActor.scala:89) ~[gatling-http-2.0.0.20130628.jar:na]  
at io.gatling.http.ahc.AsyncHandlerActor$$anonfun$1.apply(AsyncHandlerActor.scala:89) ~[gatling-http-2.0.0.20130628.jar:na]  
at scala.Option.map(Option.scala:145) ~[na:na]  
at io.gatling.http.ahc.AsyncHandlerActor.logRequest(AsyncHandlerActor.scala:89) [gatling-http-2.0.0.20130628.jar:na]  
at io.gatling.http.ahc.AsyncHandlerActor.ok(AsyncHandlerActor.scala:117) [gatling-http-2.0.0.20130628.jar:na]  
at io.gatling.http.ahc.AsyncHandlerActor.checkAndProceed$1(AsyncHandlerActor.scala:166) [gatling-http-2.0.0.20130628.jar:na]  
at io.gatling.http.ahc.AsyncHandlerActor.io$gatling$http$ahc$AsyncHandlerActor$$processResponse(AsyncHandlerActor.scala:176) [gatling-http-2.0.0.20130628.jar:na]  
at io.gatling.http.ahc.AsyncHandlerActor$$anonfun$receive$1.applyOrElse(AsyncHandlerActor.scala:55) [gatling-http-2.0.0.20130628.jar:na]  
at akka.actor.ActorCell.receiveMessage(ActorCell.scala:425) [akka-actor\_2.10-2.1.4.jar:na]  
at akka.actor.ActorCell.invoke(ActorCell.scala:386) [akka-actor\_2.10-2.1.4.jar:na]  
at akka.dispatch.Mailbox.processMailbox(Mailbox.scala:230) [akka-actor\_2.10-2.1.4.jar:na]  
at akka.dispatch.Mailbox.run(Mailbox.scala:212) [akka-actor\_2.10-2.1.4.jar:na]  
at akka.dispatch.ForkJoinExecutorConfigurator$MailboxExecutionTask.exec(AbstractDispatcher.scala:506) [akka-actor\_2.10-2.1.4.jar:na]  
at scala.concurrent.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260) [na:na]  
at scala.concurrent.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1339) [na:na]  
at scala.concurrent.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979) [na:na]  
at scala.concurrent.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107) [na:na]

I am wondering if this URL have been called successfully, so using below method to print some message for each url. Other url calling can print out message Except this url calling. So it looks like the URL was still failed to be called.

.extraInfoExtractor( (status,session,request,response) =\>  
status match {  
case \_ =\> List( response.getStatusCode() + " : " + session(“username”).as[String] + " : " + response.getStatusText + " : " + request.getRawUrl() )  
})

---

<div class="post-metadata">

**Author:** ![Excilys](https://avatars.discourse-cdn.com/v4/letter/e/8797f3/32.png) [@Excilys](https://community.gatling.io/u/Excilys)\
**Post date:** [March 11, 2014, 8:49am UTC](https://community.gatling.io/t/gatling-2-0-0-m3a-action-httprequestaction-crashed/862/12 "2014-03-11T08:49:48Z")

</div>

response.getStatusCode and response.getStatusText will throw an exception if the response was never received (ConnectionTimeout, Request timeout, etc).

---

<div class="post-metadata">

**Author:** ![Dian](https://avatars.discourse-cdn.com/v4/letter/d/c4cdca/32.png) [@Dian](https://community.gatling.io/u/Dian)\
**Post date:** [March 11, 2014, 9:16am UTC](https://community.gatling.io/t/gatling-2-0-0-m3a-action-httprequestaction-crashed/862/13 "2014-03-11T09:16:10Z")

</div>

Hi, Stéphane :

Thanks for your patient to answer my questions … 8- )

One more update is that, I have downloaded the latest 2.0 Snapshot (March. 10 version) from below link, record scripts again, the special char. was converted to the %xx chars in the new generated URL, then try to run the new scripts again, it looks like the issues were gone. I would like continue to try this new version.

[https://oss.sonatype.org/content/repositories/snapshots/io/gatling/highcharts/gatling-charts-highcharts/2.0.0-SNAPSHOT/gatling-charts-highcharts-2.0.0-SNAPSHOT-bundle.zip](https://oss.sonatype.org/content/repositories/snapshots/io/gatling/highcharts/gatling-charts-highcharts/2.0.0-SNAPSHOT/gatling-charts-highcharts-2.0.0-SNAPSHOT-bundle.zip)

One more question is that the gatling-charts-highcharts-2.0.0-SNAPSHOT-bundle.zip is the command line , how can I build up the Eclipse based IDE environment with this new version gatling? So that it is easier to write scripts in Eclipse …

---

<div class="post-metadata">

**Author:** ![Excilys](https://avatars.discourse-cdn.com/v4/letter/e/8797f3/32.png) [@Excilys](https://community.gatling.io/u/Excilys)\
**Post date:** [March 11, 2014, 9:19am UTC](https://community.gatling.io/t/gatling-2-0-0-m3a-action-httprequestaction-crashed/862/14 "2014-03-11T09:19:33Z")

</div>

Just use the same procedure than in Gatling 1, but use [https://oss.sonatype.org/content/repositories/snapshots/archetype-catalog.xml](https://oss.sonatype.org/content/repositories/snapshots/archetype-catalog.xml) for the archetype catalog. 2M4 will be on central.

---

<div class="post-metadata">

**Author:** ![Dian](https://avatars.discourse-cdn.com/v4/letter/d/c4cdca/32.png) [@Dian](https://community.gatling.io/u/Dian)\
**Post date:** [March 11, 2014, 10:59am UTC](https://community.gatling.io/t/gatling-2-0-0-m3a-action-httprequestaction-crashed/862/15 "2014-03-11T10:59:41Z")

</div>

Hi, Stéphane :

Sorry, but another question to setup the IDE for Gatling 2.0.0 Snapshot, I can create Gatling IDE environment with 2.0M3a, but failed to create on 2.0.0Snapshot and Maven project can’t be created, the screenshot “step3.png” is the error message, the screenshot step1, step2 are my step, would you mind let me know which step is incorrect?

Stéphane Landelle於 2014年3月11日星期二UTC+8下午5時19分33秒寫道：

 ![step1.png](https://europe1.discourse-cdn.com/flex013/uploads/gatling2/original/1X/402e672190e333f2cf4d72d44ce5a07082500b22.png)

 ![step2.png](https://europe1.discourse-cdn.com/flex013/uploads/gatling2/original/1X/9967909f97b257c0a4743bf6c9514498ab2406d7.png)

![step3.png](https://europe1.discourse-cdn.com/flex013/uploads/gatling2/original/1X/1064540a5e1eca418c2d1edce6f510c1abdd23ca.png)

---

<div class="post-metadata">

**Author:** ![Excilys](https://avatars.discourse-cdn.com/v4/letter/e/8797f3/32.png) [@Excilys](https://community.gatling.io/u/Excilys)\
**Post date:** [March 11, 2014, 11:10am UTC](https://community.gatling.io/t/gatling-2-0-0-m3a-action-httprequestaction-crashed/862/16 "2014-03-11T11:10:18Z")

</div>

No idea. Maybe clicking on “Details” on step 3 would provide more information.  
Also beware that Gatling 2 uses Scala 2.10, so make sure you pick the right ScalaIDE version.

---

<div class="post-metadata">

**Author:** ![Dian](https://avatars.discourse-cdn.com/v4/letter/d/c4cdca/32.png) [@Dian](https://community.gatling.io/u/Dian)\
**Post date:** [March 12, 2014, 1:44am UTC](https://community.gatling.io/t/gatling-2-0-0-m3a-action-httprequestaction-crashed/862/17 "2014-03-12T01:44:28Z")

</div>

The “Details” box gave message like below:

Unable to create project from archetype [io.gatling.highcharts:gatling-highcharts-maven-archetype:2.0.0-SNAPSHOT → [https://oss.sonatype.org/content/repositories/snapshots](https://oss.sonatype.org/content/repositories/snapshots)]  
The defined artifact is not an archetype

---

<div class="post-metadata">

**Author:** ![Excilys](https://avatars.discourse-cdn.com/v4/letter/e/8797f3/32.png) [@Excilys](https://community.gatling.io/u/Excilys)\
**Post date:** [March 12, 2014, 9:12am UTC](https://community.gatling.io/t/gatling-2-0-0-m3a-action-httprequestaction-crashed/862/18 "2014-03-12T09:12:01Z")

</div>

I just removed the archetype from my local repo, set up the archetype and created a project with it.  
It went perfectly fine, as expected.

I suspect something like a broken download that stays in eclipse’s cache. Maybe removing the archetype from your local repository and restarting eclipse could help.

I won’t be able to help any further, the problem is really on your side.
