Author: fhanik Date: Thu Aug 7 20:31:19 2014 New Revision: 1616592 URL: http://svn.apache.org/r1616592 Log: Fix https://issues.apache.org/bugzilla/show_bug.cgi?id=54225 Don't allow empty strings as initSQL
Added: tomcat/trunk/modules/jdbc-pool/src/test/java/org/apache/tomcat/jdbc/bugs/Bug54225.java (with props) Modified: tomcat/trunk/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/PoolProperties.java Modified: tomcat/trunk/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/PoolProperties.java URL: http://svn.apache.org/viewvc/tomcat/trunk/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/PoolProperties.java?rev=1616592&r1=1616591&r2=1616592&view=diff ============================================================================== --- tomcat/trunk/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/PoolProperties.java (original) +++ tomcat/trunk/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/PoolProperties.java Thu Aug 7 20:31:19 2014 @@ -791,7 +791,7 @@ public class PoolProperties implements P @Override public void setInitSQL(String initSQL) { - this.initSQL = initSQL; + this.initSQL = initSQL!=null && initSQL.trim().length()>0 ? initSQL : null; } /** Added: tomcat/trunk/modules/jdbc-pool/src/test/java/org/apache/tomcat/jdbc/bugs/Bug54225.java URL: http://svn.apache.org/viewvc/tomcat/trunk/modules/jdbc-pool/src/test/java/org/apache/tomcat/jdbc/bugs/Bug54225.java?rev=1616592&view=auto ============================================================================== --- tomcat/trunk/modules/jdbc-pool/src/test/java/org/apache/tomcat/jdbc/bugs/Bug54225.java (added) +++ tomcat/trunk/modules/jdbc-pool/src/test/java/org/apache/tomcat/jdbc/bugs/Bug54225.java Thu Aug 7 20:31:19 2014 @@ -0,0 +1,74 @@ +/* + * 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.tomcat.jdbc.bugs; + +import java.sql.Connection; +import java.sql.DriverManager; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collection; +import java.util.List; +import java.util.concurrent.ArrayBlockingQueue; +import java.util.concurrent.CountDownLatch; +import java.util.concurrent.atomic.AtomicInteger; + +import org.junit.Assert; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.junit.runners.Parameterized; + +import org.apache.tomcat.jdbc.pool.ConnectionPool; +import org.apache.tomcat.jdbc.pool.DataSource; +import org.apache.tomcat.jdbc.pool.PoolExhaustedException; +import org.apache.tomcat.jdbc.pool.PoolProperties; +import org.apache.tomcat.jdbc.test.DefaultProperties; + +import static org.junit.Assert.assertNull; + +@RunWith(Parameterized.class) +public class Bug54225 { + + private String initSQL; + + public Bug54225(String initSQL) { + this.initSQL = initSQL; + } + + @Parameterized.Parameters + public static Collection<Object[]> parameters() { + return Arrays.asList(new Object[][]{ + new Object[] {""}, + new Object[] {null}, + }); + } + + @Test + public void testPool() throws SQLException, InterruptedException { + PoolProperties poolProperties = new DefaultProperties(); + poolProperties.setMinIdle(0); + poolProperties.setInitialSize(0); + poolProperties.setMaxWait(5000); + poolProperties.setRemoveAbandoned(true); + poolProperties.setRemoveAbandonedTimeout(300); + poolProperties.setRollbackOnReturn(true); + poolProperties.setInitSQL(initSQL); + final DataSource ds = new DataSource(poolProperties); + ds.getConnection().close(); + assertNull(poolProperties.getInitSQL()); + } +} \ No newline at end of file Propchange: tomcat/trunk/modules/jdbc-pool/src/test/java/org/apache/tomcat/jdbc/bugs/Bug54225.java ------------------------------------------------------------------------------ svn:eol-style = native --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org