diff --git a/src/main/java/com/alibaba/druid/pool/DruidDataSourceStatLoggerAdapter.java b/src/main/java/com/alibaba/druid/pool/DruidDataSourceStatLoggerAdapter.java index 1caeceb131..76df534148 100644 --- a/src/main/java/com/alibaba/druid/pool/DruidDataSourceStatLoggerAdapter.java +++ b/src/main/java/com/alibaba/druid/pool/DruidDataSourceStatLoggerAdapter.java @@ -1,3 +1,18 @@ +/* + * Copyright 1999-2011 Alibaba Group Holding Ltd. + * + * Licensed 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 com.alibaba.druid.pool; import java.util.Properties; diff --git a/src/main/java/com/alibaba/druid/pool/ValidConnectionCheckerAdapter.java b/src/main/java/com/alibaba/druid/pool/ValidConnectionCheckerAdapter.java index 218b0ca686..96e669a215 100644 --- a/src/main/java/com/alibaba/druid/pool/ValidConnectionCheckerAdapter.java +++ b/src/main/java/com/alibaba/druid/pool/ValidConnectionCheckerAdapter.java @@ -1,3 +1,18 @@ +/* + * Copyright 1999-2011 Alibaba Group Holding Ltd. + * + * Licensed 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 com.alibaba.druid.pool; import java.sql.Connection; diff --git a/src/main/java/com/alibaba/druid/sql/ast/expr/SQLCastExpr.java b/src/main/java/com/alibaba/druid/sql/ast/expr/SQLCastExpr.java index 0b9f84fcd6..dce42ce5b3 100644 --- a/src/main/java/com/alibaba/druid/sql/ast/expr/SQLCastExpr.java +++ b/src/main/java/com/alibaba/druid/sql/ast/expr/SQLCastExpr.java @@ -36,6 +36,9 @@ public class SQLCastExpr extends SQLExprImpl { } public void setExpr(SQLExpr expr) { + if (expr != null) { + expr.setParent(this); + } this.expr = expr; } diff --git a/src/main/java/com/alibaba/druid/wall/spi/WallVisitorUtils.java b/src/main/java/com/alibaba/druid/wall/spi/WallVisitorUtils.java index 9e5de6c5b9..0f40e89d5b 100644 --- a/src/main/java/com/alibaba/druid/wall/spi/WallVisitorUtils.java +++ b/src/main/java/com/alibaba/druid/wall/spi/WallVisitorUtils.java @@ -57,6 +57,7 @@ import com.alibaba.druid.sql.ast.statement.SQLDropViewStatement; import com.alibaba.druid.sql.ast.statement.SQLExprTableSource; import com.alibaba.druid.sql.ast.statement.SQLInsertInto; import com.alibaba.druid.sql.ast.statement.SQLInsertStatement; +import com.alibaba.druid.sql.ast.statement.SQLInsertStatement.ValuesClause; import com.alibaba.druid.sql.ast.statement.SQLJoinTableSource; import com.alibaba.druid.sql.ast.statement.SQLRollbackStatement; import com.alibaba.druid.sql.ast.statement.SQLSelect; @@ -971,7 +972,7 @@ public class WallVisitorUtils { } } - if (isWhereOrHaving(x)) { + if (!(x.getParent() instanceof ValuesClause)) { addViolation(visitor, ErrorCode.FUNCTION_DENY, "deny function : " + methodName, x); } } diff --git a/src/test/java/com/alibaba/druid/bvt/pool/vendor/MySqlValidConnectionCheckerTest.java b/src/test/java/com/alibaba/druid/bvt/pool/vendor/MySqlValidConnectionCheckerTest.java deleted file mode 100644 index 8eafedbc71..0000000000 --- a/src/test/java/com/alibaba/druid/bvt/pool/vendor/MySqlValidConnectionCheckerTest.java +++ /dev/null @@ -1,8 +0,0 @@ -package com.alibaba.druid.bvt.pool.vendor; - -import junit.framework.TestCase; - - -public class MySqlValidConnectionCheckerTest extends TestCase { - -} diff --git a/src/test/java/com/alibaba/druid/bvt/stat/DruidStatServiceTest.java b/src/test/java/com/alibaba/druid/bvt/stat/DruidStatServiceTest.java index d95be562f6..434f99f41b 100644 --- a/src/test/java/com/alibaba/druid/bvt/stat/DruidStatServiceTest.java +++ b/src/test/java/com/alibaba/druid/bvt/stat/DruidStatServiceTest.java @@ -204,8 +204,9 @@ public class DruidStatServiceTest extends TestCase { String result = DruidStatService.getInstance().service("/activeConnectionStackTrace.json"); Map resultMap = (Map) JSONUtils.parse(result); List contentList = (List) resultMap.get("Content"); + Object first = contentList.get(0); - assertThat(contentList.get(0), is(not(nullValue()))); + assertThat(first, is(not(nullValue()))); // close connection at last. stmt.close(); conn.close(); diff --git a/src/test/java/com/alibaba/druid/bvt/stat/DruidStatServiceTest2.java b/src/test/java/com/alibaba/druid/bvt/stat/DruidStatServiceTest2.java index eaa8263522..0a5ad3a9fd 100644 --- a/src/test/java/com/alibaba/druid/bvt/stat/DruidStatServiceTest2.java +++ b/src/test/java/com/alibaba/druid/bvt/stat/DruidStatServiceTest2.java @@ -23,9 +23,12 @@ import static org.junit.Assert.assertThat; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; +import java.util.Collections; import java.util.List; import java.util.Map; +import junit.framework.TestCase; + import org.junit.After; import org.junit.Before; import org.junit.Test; @@ -38,13 +41,12 @@ import com.alibaba.druid.util.JdbcUtils; /** * Multiple data source test case. */ -public class DruidStatServiceTest2 { +public class DruidStatServiceTest2 extends TestCase { private DruidDataSource dataSource; private DruidDataSource dataSource2; // every test, two data source initialized. - @Before public void setUp() throws Exception { // DruidStatService is singleton, reset all for other testcase. DruidStatService.getInstance().service("/reset-all.json"); @@ -62,13 +64,11 @@ public class DruidStatServiceTest2 { dataSource2.init(); } - @After public void tearDown() throws Exception { JdbcUtils.close(dataSource); JdbcUtils.close(dataSource2); } - @Test public void test_statService_getSqlList() throws Exception { String sql = "select 1"; @@ -106,7 +106,6 @@ public class DruidStatServiceTest2 { } } - @Test public void test_statService_getSqlById() throws Exception { String sql = "select 1"; @@ -155,7 +154,6 @@ public class DruidStatServiceTest2 { assertThat(resultMap.get("Content"), is(nullValue())); } - @Test public void test_statService_getDataSourceList() throws Exception { String result = DruidStatService.getInstance().service("/datasource.json"); Map resultMap = (Map) JSONUtils.parse(result); @@ -167,5 +165,9 @@ public class DruidStatServiceTest2 { assertThat((Integer) dataSourceStat.get("PoolingCount"), equalTo(0)); assertThat((Integer) dataSourceStat.get("ActiveCount"), equalTo(0)); } + + public void test_getWallStatMap() throws Exception { + DruidStatService.getInstance().getWallStatMap(Collections.emptyMap()); + } }