package org.tests.query; import io.ebean.Transaction; import io.ebean.xtest.BaseTestCase; import io.ebean.DB; import io.ebean.Query; import org.junit.jupiter.api.Test; import org.tests.model.basic.Customer; import static org.junit.jupiter.api.Assertions.fail; public class TestConnectionCloseOnSqlerr extends BaseTestCase { static boolean runManuallyNow = true; @Test public void test() { if (runManuallyNow) { return; } try { for (int i = 0; i < 100; i++) { try { Query q0 = DB.find(Customer.class).where().icontains("namexxx", "Rob") .query(); q0.findList(); } catch (Exception e) { if (e.getMessage().contains("Unsuccessfully waited")) { fail(); } else { e.printStackTrace(); } } } } catch (Exception e) { e.printStackTrace(); } } @Test public void testTransactional() { if (runManuallyNow) { return; } try { for (int i = 0; i < 100; i++) { try (Transaction txn = DB.beginTransaction()) { Query q0 = DB.find(Customer.class).where().icontains("namexxx", "Rob") .query(); q0.findList(); txn.commit(); } catch (Exception e) { if (e.getMessage().contains("Unsuccessfully waited")) { fail("No connections found while only one thread is running. (after " + i + " queries)"); } else { e.printStackTrace(); } } } } catch (Exception e) { e.printStackTrace(); } } }