Migrating from Gatling2.0-M1 to Gatling2.0-M2: HttpBodyXPathCheckBuilder$ - Could not parse response

Hi!

Trying to resolve problems with custom timeouts I try to migrate my tests to newer Gatling versions.

With M3 I receive huge amount of errors, so I try Gatling2.0-M2.

But during the test, all requests, where I use check by xpath ended with same type error:

23:08:17.508 [INFO ] i.g.h.c.b.HttpBodyXPathCheckBuilder$ - Could not parse response into a DOM Document: null

java.nio.BufferUnderflowException: null

at java.nio.HeapByteBuffer.get(Unknown Source) ~[na:1.6.0_45]

at io.gatling.core.util.ByteBufferInputStream.read(ByteBufferInputStream.scala:30) ~[gatling-core-2.0.0-M2.jar:na]

at org.apache.xerces.impl.XMLEntityManager$RewindableInputStream.read(Unknown Source) ~[xercesImpl-2.11.0.jar:na]

at org.apache.xerces.impl.io.UTF8Reader.read(Unknown Source) ~[xercesImpl-2.11.0.jar:na]

at org.apache.xerces.impl.XMLEntityScanner.load(Unknown Source) ~[xercesImpl-2.11.0.jar:na]

at org.apache.xerces.impl.XMLEntityScanner.skipString(Unknown Source) ~[xercesImpl-2.11.0.jar:na]

at org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanEndElement(Unknown Source) ~[xercesImpl-2.11.0.jar:na]

at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown Source) ~[xercesImpl-2.11.0.jar:na]

at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source) ~[xercesImpl-2.11.0.jar:na]

at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source) ~[xercesImpl-2.11.0.jar:na]

at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source) ~[xercesImpl-2.11.0.jar:na]

at org.apache.xerces.parsers.XMLParser.parse(Unknown Source) ~[xercesImpl-2.11.0.jar:na]

at org.apache.xerces.parsers.DOMParser.parse(Unknown Source) ~[xercesImpl-2.11.0.jar:na]

at org.apache.xerces.jaxp.DocumentBuilderImpl.parse(Unknown Source) ~[xercesImpl-2.11.0.jar:na]

at javax.xml.parsers.DocumentBuilder.parse(Unknown Source) ~[na:1.6.0_45]

at io.gatling.core.check.extractor.xpath.XPathExtractors$$anonfun$parse$1.apply(XPathExtractors.scala:60) ~[gatling-core-2.0.0-M2.jar:na]

at io.gatling.core.check.extractor.xpath.XPathExtractors$$anonfun$parse$1.apply(XPathExtractors.scala:58) ~[gatling-core-2.0.0-M2.jar:na]

at io.gatling.core.util.IOHelper$.withCloseable(IOHelper.scala:27) ~[gatling-core-2.0.0-M2.jar:na]

at io.gatling.core.check.extractor.xpath.XPathExtractors$.parse(XPathExtractors.scala:58) ~[gatling-core-2.0.0-M2.jar:na]

at io.gatling.http.check.body.HttpBodyXPathCheckBuilder$$anonfun$1$$anonfun$apply$1.apply(HttpBodyXPathCheckBuilder.scala:35) ~[gatling-http-2.0.0-M2.jar:na]

at io.gatling.http.check.body.HttpBodyXPathCheckBuilder$$anonfun$1$$anonfun$apply$1.apply(HttpBodyXPathCheckBuilder.scala:35) ~[gatling-http-2.0.0-M2.jar:na]

at scala.Option.map(Option.scala:145) ~[scala-library-2.10.1.jar:na]

at io.gatling.http.check.body.HttpBodyXPathCheckBuilder$$anonfun$1.apply(HttpBodyXPathCheckBuilder.scala:35) [gatling-http-2.0.0-M2.jar:na]

at io.gatling.http.check.body.HttpBodyXPathCheckBuilder$$anonfun$1.apply(HttpBodyXPathCheckBuilder.scala:32) [gatling-http-2.0.0-M2.jar:na]

at io.gatling.core.check.CheckBase$$anonfun$memoizedPrepared$1$1.apply(Check.scala:53) [gatling-core-2.0.0-M2.jar:na]

at io.gatling.core.check.CheckBase$$anonfun$memoizedPrepared$1$1.apply(Check.scala:53) [gatling-core-2.0.0-M2.jar:na]

at scala.collection.mutable.MapLike$class.getOrElseUpdate(MapLike.scala:189) [scala-library-2.10.1.jar:na]

at scala.collection.mutable.AbstractMap.getOrElseUpdate(Map.scala:91) [scala-library-2.10.1.jar:na]

at io.gatling.core.check.CheckBase.memoizedPrepared$1(Check.scala:53) [gatling-core-2.0.0-M2.jar:na]

at io.gatling.core.check.CheckBase.check(Check.scala:63) [gatling-core-2.0.0-M2.jar:na]

at io.gatling.http.check.HttpCheck.check(HttpCheck.scala:30) [gatling-http-2.0.0-M2.jar:na]

at io.gatling.http.check.HttpCheck.check(HttpCheck.scala:29) [gatling-http-2.0.0-M2.jar:na]

at io.gatling.core.check.Checks$$anonfun$check$1$$anonfun$apply$1.apply(Check.scala:30) [gatling-core-2.0.0-M2.jar:na]

at io.gatling.core.check.Checks$$anonfun$check$1$$anonfun$apply$1.apply(Check.scala:30) [gatling-core-2.0.0-M2.jar:na]

at io.gatling.core.validation.Success.flatMap(Validation.scala:27) [gatling-core-2.0.0-M2.jar:na]

at io.gatling.core.check.Checks$$anonfun$check$1.apply(Check.scala:30) [gatling-core-2.0.0-M2.jar:na]

at io.gatling.core.check.Checks$$anonfun$check$1.apply(Check.scala:29) [gatling-core-2.0.0-M2.jar:na]

at scala.collection.LinearSeqOptimized$class.foldLeft(LinearSeqOptimized.scala:111) [scala-library-2.10.1.jar:na]

at scala.collection.immutable.List.foldLeft(List.scala:84) [scala-library-2.10.1.jar:na]

at io.gatling.core.check.Checks$.check(Check.scala:29) [gatling-core-2.0.0-M2.jar:na]

at io.gatling.http.ahc.GatlingAsyncHandlerActor.checkAndProceed$1(GatlingAsyncHandlerActor.scala:224) [gatling-http-2.0.0-M2.jar:na]

at io.gatling.http.ahc.GatlingAsyncHandlerActor.io$gatling$http$ahc$GatlingAsyncHandlerActor$$processResponse(GatlingAsyncHandlerActor.scala:237) [gatling-http-2.0.0-M2.jar:na]

at io.gatling.http.ahc.GatlingAsyncHandlerActor$$anonfun$receive$1.applyOrElse(GatlingAsyncHandlerActor.scala:103) [gatling-http-2.0.0-M2.jar:na]

at akka.actor.ActorCell.receiveMessage(ActorCell.scala:425) [akka-actor_2.10-2.1.2.jar:na]

at akka.actor.ActorCell.invoke(ActorCell.scala:386) [akka-actor_2.10-2.1.2.jar:na]

at akka.dispatch.Mailbox.processMailbox(Mailbox.scala:230) [akka-actor_2.10-2.1.2.jar:na]

at akka.dispatch.Mailbox.run(Mailbox.scala:212) [akka-actor_2.10-2.1.2.jar:na]

at akka.dispatch.ForkJoinExecutorConfigurator$MailboxExecutionTask.exec(AbstractDispatcher.scala:506) [akka-actor_2.10-2.1.2.jar:na]

at scala.concurrent.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:262) [scala-library-2.10.1.jar:na]

at scala.concurrent.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:975) [scala-library-2.10.1.jar:na]

at scala.concurrent.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1478) [scala-library-2.10.1.jar:na]

at scala.concurrent.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:104) [scala-library-2.10.1.jar:na]

I recheck my page xpath structure – It look ok. Also the same tests with Gatling2.0-M1 going ok.

Could I help you migrating your scenarios to upcoming M4 instead?