This is an automated email from the ASF dual-hosted git repository.

ntimofeev pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/cayenne.git


The following commit(s) were added to refs/heads/master by this push:
     new 7bf2b6247 Fix CAY2723IT random failure
7bf2b6247 is described below

commit 7bf2b62476ba2c9934670b25971790418b7d9a27
Author: Nikita Timofeev <[email protected]>
AuthorDate: Tue Mar 14 16:57:50 2023 +0300

    Fix CAY2723IT random failure
---
 .../java/org/apache/cayenne/access/CAY2723IT.java  | 88 +++-------------------
 1 file changed, 12 insertions(+), 76 deletions(-)

diff --git 
a/cayenne-server/src/test/java/org/apache/cayenne/access/CAY2723IT.java 
b/cayenne-server/src/test/java/org/apache/cayenne/access/CAY2723IT.java
index 5749e5398..b0e1eef06 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/CAY2723IT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/CAY2723IT.java
@@ -18,32 +18,19 @@
  ****************************************************************/
 package org.apache.cayenne.access;
 
-import org.apache.cayenne.access.translator.ParameterBinding;
-import org.apache.cayenne.configuration.RuntimeProperties;
-import org.apache.cayenne.di.Binder;
 import org.apache.cayenne.di.Inject;
-import org.apache.cayenne.di.Module;
-import org.apache.cayenne.log.JdbcEventLogger;
-import org.apache.cayenne.log.Slf4jJdbcEventLogger;
 import org.apache.cayenne.testdo.testmap.Painting;
 import org.apache.cayenne.testdo.testmap.PaintingInfo;
 import org.apache.cayenne.unit.di.DataChannelInterceptor;
 import org.apache.cayenne.unit.di.server.CayenneProjects;
-import org.apache.cayenne.unit.di.server.ExtraModules;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
-import org.apache.cayenne.util.Util;
 import org.junit.Before;
 import org.junit.Test;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.sql.SQLException;
 
 import static org.junit.Assert.assertEquals;
 
 @UseServerRuntime(CayenneProjects.TESTMAP_PROJECT)
-@ExtraModules(CAY2723IT.CustomLogModule.class)
 public class CAY2723IT extends ServerCase {
     @Inject
     private DataContext context;
@@ -56,13 +43,18 @@ public class CAY2723IT extends ServerCase {
      */
     @Before
     public void warmup() {
-        Painting painting = context.newObject(Painting.class);
-        painting.setPaintingTitle("test_warmup");
-        context.commitChanges();
-
-        painting = context.newObject(Painting.class);
-        painting.setPaintingTitle("test_warmup");
-        context.commitChanges();
+        // try to trigger PK generator. so it wouldn't random fail the actual 
test
+        for(int i=0; i<20; i++) {
+            int queryCounter = queryInterceptor.runWithQueryCounter(() -> {
+                Painting painting = context.newObject(Painting.class);
+                painting.setPaintingTitle("test_warmup");
+                context.commitChanges();
+            });
+            // PK generator triggered, we are ready
+            if(queryCounter > 1) {
+                return;
+            }
+        }
     }
 
     @Test
@@ -82,60 +74,4 @@ public class CAY2723IT extends ServerCase {
         int queryCounter = queryInterceptor.runWithQueryCounter(() -> 
context.commitChanges());
         assertEquals(1, queryCounter);
     }
-
-    public static class CustomLogger extends Slf4jJdbcEventLogger {
-
-        private static final Logger logger = 
LoggerFactory.getLogger(JdbcEventLogger.class);
-
-        public CustomLogger(@Inject RuntimeProperties runtimeProperties) {
-            super(runtimeProperties);
-        }
-
-        @Override
-        public void log(String message) {
-            if (message != null) {
-                logger.error("\t>>>>>\t" + message);
-            }
-        }
-
-        @Override
-        public void logQuery(String sql, ParameterBinding[] bindings) {
-            StringBuilder buffer = new StringBuilder("\t>>>>>\t")
-                    .append(sql)
-                    .append(" ");
-            appendParameters(buffer, "bind", bindings);
-            if (buffer.length() > 0) {
-                logger.error(buffer.toString());
-            }
-        }
-
-        @Override
-        public void logQueryError(Throwable th) {
-            if (th != null) {
-                th = Util.unwindException(th);
-            }
-
-            logger.error("*** error.", th);
-
-            if (th instanceof SQLException) {
-                SQLException sqlException = ((SQLException) 
th).getNextException();
-                while (sqlException != null) {
-                    logger.error("*** nested SQL error.", sqlException);
-                    sqlException = sqlException.getNextException();
-                }
-            }
-        }
-
-        @Override
-        public boolean isLoggable() {
-            return true;
-        }
-    }
-
-    public static class CustomLogModule implements Module {
-        @Override
-        public void configure(Binder binder) {
-            binder.bind(JdbcEventLogger.class).to(CustomLogger.class);
-        }
-    }
 }

Reply via email to