You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by gg...@apache.org on 2019/02/14 15:18:45 UTC

[commons-dbcp] branch master updated: Add missiing license header.

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

ggregory pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/commons-dbcp.git


The following commit(s) were added to refs/heads/master by this push:
     new 3d64f60  Add missiing license header.
3d64f60 is described below

commit 3d64f608ecf0153c2080374810711428d689cded
Author: Gary Gregory <ga...@gmail.com>
AuthorDate: Thu Feb 14 10:18:43 2019 -0500

    Add missiing license header.
---
 .../dbcp2/TestParallelCreationWithNoIdle.java      | 304 +++++++++++----------
 1 file changed, 160 insertions(+), 144 deletions(-)

diff --git a/src/test/java/org/apache/commons/dbcp2/TestParallelCreationWithNoIdle.java b/src/test/java/org/apache/commons/dbcp2/TestParallelCreationWithNoIdle.java
index f39bcae..03ec7f3 100644
--- a/src/test/java/org/apache/commons/dbcp2/TestParallelCreationWithNoIdle.java
+++ b/src/test/java/org/apache/commons/dbcp2/TestParallelCreationWithNoIdle.java
@@ -1,144 +1,160 @@
-package org.apache.commons.dbcp2;
-
-import org.apache.commons.logging.LogFactory;
-import org.junit.Before;
-import org.junit.BeforeClass;
-import org.junit.Test;
-
-import java.sql.Connection;
-import java.sql.PreparedStatement;
-import java.sql.ResultSet;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.List;
-
-import static org.junit.Assert.assertEquals;
-
-/**
- * Test if the pooling if no idle objects are used
- */
-public class TestParallelCreationWithNoIdle  {
-
-
-    protected BasicDataSource ds = null;
-    private static final String CATALOG = "test catalog";
-
-    @BeforeClass
-    public static void setUpClass() {
-        // register a custom logger which supports inspection of the log messages
-        LogFactory.getFactory().setAttribute("org.apache.commons.logging.Log", "org.apache.commons.dbcp2.StackMessageLog");
-    }
-
-    @Before
-    public void setUp() throws Exception {
-        ds = new BasicDataSource();
-        ds.setDriverClassName("org.apache.commons.dbcp2.TesterConnectionDelayDriver");
-        ds.setUrl("jdbc:apache:commons:testerConnectionDelayDriver:50");
-        ds.setMaxTotal(10);
-
-        // this one is actually very important.
-        // see DBCP-513
-        ds.setMaxIdle(0);
-
-        // wait a minute. Usually the test runs in ~ 1 second
-        // but often it's getting stuck ^^
-        // you have one second to get a thread dump ;)
-        ds.setMaxWaitMillis(60000);
-
-        ds.setDefaultAutoCommit(Boolean.TRUE);
-        ds.setDefaultReadOnly(Boolean.FALSE);
-        ds.setDefaultTransactionIsolation(Connection.TRANSACTION_READ_COMMITTED);
-        ds.setDefaultCatalog(CATALOG);
-        ds.setUsername("userName");
-        ds.setPassword("password");
-        ds.setValidationQuery("SELECT DUMMY FROM DUAL");
-        ds.setConnectionInitSqls(Arrays.asList(new String[] { "SELECT 1", "SELECT 2"}));
-        ds.setDriverClassLoader(new TesterClassLoader());
-        ds.setJmxName("org.apache.commons.dbcp2:name=test");
-    }
-
-    /**
-     * Fire up 100 Threads but only have 10 maxActive and forcedBlock.
-     * See
-     * @throws Exception
-     */
-    @Test
-    public void testMassiveConcurrentInitBorrow() throws Exception {
-        final int numThreads = 200;
-        ds.setDriverClassName("org.apache.commons.dbcp2.TesterConnectionDelayDriver");
-        ds.setUrl("jdbc:apache:commons:testerConnectionDelayDriver:20");
-        ds.setInitialSize(8);
-        final List<Throwable> errors = Collections.synchronizedList(new ArrayList<>());
-
-        final Thread[] threads = new Thread[numThreads];
-        for (int i = 0; i < numThreads; i++) {
-            threads[i] = new TestThread(2, 0, 50);
-            threads[i].setUncaughtExceptionHandler((t, e) -> errors.add(e));
-        }
-
-        for (int i = 0; i < numThreads; i++) {
-            threads[i].start();
-
-            if (i%4 == 0) {
-                Thread.sleep(20);
-            }
-        }
-
-        for (int i = 0; i < numThreads; i++) {
-            threads[i].join();
-        }
-
-        assertEquals(0, errors.size());
-        ds.close();
-    }
-
-
-
-    class TestThread extends Thread {
-        java.util.Random _random = new java.util.Random();
-        final int iter;
-        final int delay;
-        final int delayAfter;
-
-
-        public TestThread(final int iter, final int delay, final int delayAfter) {
-            this.iter = iter;
-            this.delay = delay;
-            this.delayAfter = delayAfter;
-        }
-
-
-        @Override
-        public void run() {
-            // System.out.println("Thread started " + Thread.currentThread().toString());
-            for (int i = 0; i < iter; i++) {
-                sleepMax(delay);
-                try (Connection conn = ds.getConnection();
-                        PreparedStatement stmt = conn.prepareStatement("select 'literal', SYSDATE from dual");) {
-                    // System.out.println("Got Connection " + Thread.currentThread().toString());
-                    final ResultSet rset = stmt.executeQuery();
-                    rset.next();
-                    sleepMax(delayAfter);
-                    rset.close();
-                } catch (final Exception e) {
-                    e.printStackTrace();
-                    throw new RuntimeException(e);
-                }
-            }
-            // System.out.println("Thread done " + Thread.currentThread().toString());
-        }
-
-        private void sleepMax(final int timeMax) {
-            if (timeMax == 0) {
-                return;
-            }
-            try {
-                Thread.sleep(_random.nextInt(timeMax));
-            } catch(final Exception e) {
-                // ignored
-            }
-        }
-    }
-
-}
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.commons.dbcp2;
+
+import org.apache.commons.logging.LogFactory;
+import org.junit.Before;
+import org.junit.BeforeClass;
+import org.junit.Test;
+
+import java.sql.Connection;
+import java.sql.PreparedStatement;
+import java.sql.ResultSet;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import static org.junit.Assert.assertEquals;
+
+/**
+ * Test if the pooling if no idle objects are used
+ */
+public class TestParallelCreationWithNoIdle  {
+
+
+    protected BasicDataSource ds = null;
+    private static final String CATALOG = "test catalog";
+
+    @BeforeClass
+    public static void setUpClass() {
+        // register a custom logger which supports inspection of the log messages
+        LogFactory.getFactory().setAttribute("org.apache.commons.logging.Log", "org.apache.commons.dbcp2.StackMessageLog");
+    }
+
+    @Before
+    public void setUp() throws Exception {
+        ds = new BasicDataSource();
+        ds.setDriverClassName("org.apache.commons.dbcp2.TesterConnectionDelayDriver");
+        ds.setUrl("jdbc:apache:commons:testerConnectionDelayDriver:50");
+        ds.setMaxTotal(10);
+
+        // this one is actually very important.
+        // see DBCP-513
+        ds.setMaxIdle(0);
+
+        // wait a minute. Usually the test runs in ~ 1 second
+        // but often it's getting stuck ^^
+        // you have one second to get a thread dump ;)
+        ds.setMaxWaitMillis(60000);
+
+        ds.setDefaultAutoCommit(Boolean.TRUE);
+        ds.setDefaultReadOnly(Boolean.FALSE);
+        ds.setDefaultTransactionIsolation(Connection.TRANSACTION_READ_COMMITTED);
+        ds.setDefaultCatalog(CATALOG);
+        ds.setUsername("userName");
+        ds.setPassword("password");
+        ds.setValidationQuery("SELECT DUMMY FROM DUAL");
+        ds.setConnectionInitSqls(Arrays.asList(new String[] { "SELECT 1", "SELECT 2"}));
+        ds.setDriverClassLoader(new TesterClassLoader());
+        ds.setJmxName("org.apache.commons.dbcp2:name=test");
+    }
+
+    /**
+     * Fire up 100 Threads but only have 10 maxActive and forcedBlock.
+     * See
+     * @throws Exception
+     */
+    @Test
+    public void testMassiveConcurrentInitBorrow() throws Exception {
+        final int numThreads = 200;
+        ds.setDriverClassName("org.apache.commons.dbcp2.TesterConnectionDelayDriver");
+        ds.setUrl("jdbc:apache:commons:testerConnectionDelayDriver:20");
+        ds.setInitialSize(8);
+        final List<Throwable> errors = Collections.synchronizedList(new ArrayList<>());
+
+        final Thread[] threads = new Thread[numThreads];
+        for (int i = 0; i < numThreads; i++) {
+            threads[i] = new TestThread(2, 0, 50);
+            threads[i].setUncaughtExceptionHandler((t, e) -> errors.add(e));
+        }
+
+        for (int i = 0; i < numThreads; i++) {
+            threads[i].start();
+
+            if (i%4 == 0) {
+                Thread.sleep(20);
+            }
+        }
+
+        for (int i = 0; i < numThreads; i++) {
+            threads[i].join();
+        }
+
+        assertEquals(0, errors.size());
+        ds.close();
+    }
+
+
+
+    class TestThread extends Thread {
+        java.util.Random _random = new java.util.Random();
+        final int iter;
+        final int delay;
+        final int delayAfter;
+
+
+        public TestThread(final int iter, final int delay, final int delayAfter) {
+            this.iter = iter;
+            this.delay = delay;
+            this.delayAfter = delayAfter;
+        }
+
+
+        @Override
+        public void run() {
+            // System.out.println("Thread started " + Thread.currentThread().toString());
+            for (int i = 0; i < iter; i++) {
+                sleepMax(delay);
+                try (Connection conn = ds.getConnection();
+                        PreparedStatement stmt = conn.prepareStatement("select 'literal', SYSDATE from dual");) {
+                    // System.out.println("Got Connection " + Thread.currentThread().toString());
+                    final ResultSet rset = stmt.executeQuery();
+                    rset.next();
+                    sleepMax(delayAfter);
+                    rset.close();
+                } catch (final Exception e) {
+                    e.printStackTrace();
+                    throw new RuntimeException(e);
+                }
+            }
+            // System.out.println("Thread done " + Thread.currentThread().toString());
+        }
+
+        private void sleepMax(final int timeMax) {
+            if (timeMax == 0) {
+                return;
+            }
+            try {
+                Thread.sleep(_random.nextInt(timeMax));
+            } catch(final Exception e) {
+                // ignored
+            }
+        }
+    }
+
+}