# Java DSL : "java.lang.IllegalStateException: Feeder is now empty, stopping engine" issue coming

**URL:** <https://community.gatling.io/t/java-dsl-java-lang-illegalstateexception-feeder-is-now-empty-stopping-engine-issue-coming/6739>\
**Category:** Gatling (Open-Source)\
**Created:** [May 10, 2022, 3:29pm UTC](https://community.gatling.io/t/java-dsl-java-lang-illegalstateexception-feeder-is-now-empty-stopping-engine-issue-coming/6739 "2022-05-10T15:29:33Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![arcmukh](https://avatars.discourse-cdn.com/v4/letter/a/d6d6ee/32.png) [@arcmukh](https://community.gatling.io/u/arcmukh)\
**Post date:** [May 10, 2022, 3:29pm UTC](https://community.gatling.io/t/java-dsl-java-lang-illegalstateexception-feeder-is-now-empty-stopping-engine-issue-coming/6739/1 "2022-05-10T15:29:33Z")

</div>

Hi,  
I am using an iterator of AtomicLong to generate transactionid of different requests.  
Issue is , it is arbirarily stopping as “Feeder is now empty”.  
Similar Approach with scala test suite is working fine.

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

To simulate the script , I am running a Jmeter Mirror server and just posting dummy messages.  
I am providing the simplified script here :

```java
package test;

import io.gatling.javaapi.core.ScenarioBuilder;

import io.gatling.javaapi.core.Simulation;

import io.gatling.javaapi.http.HttpProtocolBuilder;

import java.time.Duration;

import java.util.Collections;

import java.util.Iterator;

import java.util.Map;

import java.util.concurrent.atomic.AtomicLong;

import java.util.function.Supplier;

import java.util.stream.Stream;

import static io.gatling.javaapi.core.CoreDsl.*;

import static io.gatling.javaapi.http.HttpDsl.http;

public class testSimulation extends Simulation {

    // Declared Variables

    private final String baseURL = "http://localhost:9090";

    private final AtomicLong transactionId = new AtomicLong(10000000000000L);

    private final int duration = 5;

    private final int executionTime = duration * 4;

    private final int maxThroughput = 100;

    private final int maxUser = 100;

    private final double pct_transaction1 = 0.75;

    private final double pct_transaction2 = 0.25;

    private final HttpProtocolBuilder httpProtocol = http

            .baseUrl(baseURL)

            .warmUp(baseURL)

// .disableWarmUp()

// .proxy(Proxy("localhost", 8888))

            .acceptHeader("text/html")

            .acceptEncodingHeader("gzip,deflate")

            .contentTypeHeader("text/xml;charset=UTF-8")

            .userAgentHeader("Apache-HttpClient/4.5.5 (Java/16.0.1)");

    Iterator<Map<String, Object>> sourceTransactionIdfeed =

            Stream.generate((Supplier<Map<String, Object>>) () -> {

                        String trId = Long.toString(transactionId.getAndIncrement());

                        return Collections.singletonMap("sourceTransactionId", trId);

                    }

            ).iterator();

    private final ScenarioBuilder transaction_1 = scenario("transaction1")

            .feed(sourceTransactionIdfeed)

            .exec(

                    http("transaction1")

                            .post("/services/ws/transaction1")

                            .body(StringBody("#{sourceTransactionId}"))

            );

    private final ScenarioBuilder transaction_2 = scenario("transaction2")

            .feed(sourceTransactionIdfeed)

            .exec(

                    http("transaction2")

                            .post("/services/ws/transaction2")

                            .body(StringBody("#{sourceTransactionId}"))

            );

    private final int usr_tr1 = (int) Math.ceil(maxUser * pct_transaction1);

    private final int usr_tr2 = (int) Math.ceil(maxUser * pct_transaction2);

    private final int load_tr1 = (int) Math.ceil(maxThroughput * pct_transaction1 / 4);

    private final int load_tr2 = (int) Math.ceil(maxThroughput * pct_transaction2 / 4);

    {

        setUp(

                transaction_1.injectClosed(constantConcurrentUsers(usr_tr1).during(Duration.ofMinutes(executionTime)))

                        .throttle(

                                jumpToRps(load_tr1), holdFor(Duration.ofMinutes(duration)),

                                jumpToRps(load_tr1 * 2), holdFor(Duration.ofMinutes(duration)),

                                jumpToRps(load_tr1 * 3), holdFor(Duration.ofMinutes(duration)),

                                jumpToRps(load_tr1 * 4), holdFor(Duration.ofMinutes(duration))

                        ),

                transaction_2.injectClosed(constantConcurrentUsers(usr_tr2).during(Duration.ofMinutes(executionTime)))

                        .throttle(

                                jumpToRps(load_tr2), holdFor(Duration.ofMinutes(duration)),

                                jumpToRps(load_tr2 * 2), holdFor(Duration.ofMinutes(duration)),

                                jumpToRps(load_tr2 * 3), holdFor(Duration.ofMinutes(duration)),

                                jumpToRps(load_tr2 * 4), holdFor(Duration.ofMinutes(duration))

                        )

        ).protocols(httpProtocol);

    }

}

```

---

<div class="post-metadata">

**Author:** ![slandelle](https://dub1.discourse-cdn.com/flex013/user_avatar/community.gatling.io/slandelle/32/4_2.png) [@slandelle](https://community.gatling.io/u/slandelle)\
**Post date:** [May 10, 2022, 6:46pm UTC](https://community.gatling.io/t/java-dsl-java-lang-illegalstateexception-feeder-is-now-empty-stopping-engine-issue-coming/6739/2 "2022-05-10T18:46:25Z")

</div>

That’s a [known issue](https://github.com/gatling/gatling/issues/4240) that will be fixed in Gatling 3.8.0.

---

<div class="post-metadata">

**Author:** ![arcmukh](https://avatars.discourse-cdn.com/v4/letter/a/d6d6ee/32.png) [@arcmukh](https://community.gatling.io/u/arcmukh)\
**Post date:** [May 11, 2022, 5:14am UTC](https://community.gatling.io/t/java-dsl-java-lang-illegalstateexception-feeder-is-now-empty-stopping-engine-issue-coming/6739/3 "2022-05-11T05:14:36Z")

</div>

Thanks a lot for very prompt response. I will surely try on upcoming version.
