You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by le...@apache.org on 2007/07/05 07:53:45 UTC
svn commit: r553376 - in /harmony/enhanced/classlib/trunk/modules/sql:
META-INF/ src/main/java/java/sql/
src/test/java/org/apache/harmony/sql/tests/java/sql/
Author: leoli
Date: Wed Jul 4 22:53:44 2007
New Revision: 553376
URL: http://svn.apache.org/viewvc?view=rev&rev=553376
Log:
Apply patch for HARMONY-4303([classlib][sql] java.sql.DriverManager.getDrivers() will read System prpperty "jdbc.drivers" cause java.lang.ExceptionInInitializerError
).
Added:
harmony/enhanced/classlib/trunk/modules/sql/src/test/java/org/apache/harmony/sql/tests/java/sql/TestMainForDriver.java (with props)
Modified:
harmony/enhanced/classlib/trunk/modules/sql/META-INF/MANIFEST.MF
harmony/enhanced/classlib/trunk/modules/sql/src/main/java/java/sql/DriverManager.java
harmony/enhanced/classlib/trunk/modules/sql/src/test/java/org/apache/harmony/sql/tests/java/sql/DriverManagerTest.java
Modified: harmony/enhanced/classlib/trunk/modules/sql/META-INF/MANIFEST.MF
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/trunk/modules/sql/META-INF/MANIFEST.MF?view=diff&rev=553376&r1=553375&r2=553376
==============================================================================
--- harmony/enhanced/classlib/trunk/modules/sql/META-INF/MANIFEST.MF (original)
+++ harmony/enhanced/classlib/trunk/modules/sql/META-INF/MANIFEST.MF Wed Jul 4 22:53:44 2007
@@ -27,7 +27,8 @@
javax.naming,
org.apache.harmony.kernel.vm,
org.apache.harmony.luni.util,
- org.apache.harmony.testframework.serialization;hy_usage=test;resolution:=optional
+ org.apache.harmony.testframework.serialization;hy_usage=test;resolution:=optional,
+ tests.support;hy_usage=test;resolution:=optional
Export-Package: java.sql,
javax.sql,
javax.sql.rowset,
Modified: harmony/enhanced/classlib/trunk/modules/sql/src/main/java/java/sql/DriverManager.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/trunk/modules/sql/src/main/java/java/sql/DriverManager.java?view=diff&rev=553376&r1=553375&r2=553376
==============================================================================
--- harmony/enhanced/classlib/trunk/modules/sql/src/main/java/java/sql/DriverManager.java (original)
+++ harmony/enhanced/classlib/trunk/modules/sql/src/main/java/java/sql/DriverManager.java Wed Jul 4 22:53:44 2007
@@ -22,11 +22,11 @@
import java.util.Properties;
import java.util.Enumeration;
import java.util.Iterator;
-import java.util.Set;
import java.io.PrintStream;
import java.io.PrintWriter;
-import java.util.HashSet;
import java.util.Vector;
+import java.security.AccessController;
+import org.apache.harmony.luni.util.PriviAction;
import org.apache.harmony.sql.internal.nls.Messages;
import org.apache.harmony.kernel.vm.VM;
@@ -70,7 +70,9 @@
* it is defined.
*/
private static void loadInitialDrivers() {
- String theDriverList = System.getProperty("jdbc.drivers", null); //$NON-NLS-1$
+ String theDriverList = AccessController
+ .doPrivileged(new PriviAction<String>("jdbc.drivers", null)); //$NON-NLS-1$
+
if (theDriverList == null) {
return;
}
Modified: harmony/enhanced/classlib/trunk/modules/sql/src/test/java/org/apache/harmony/sql/tests/java/sql/DriverManagerTest.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/trunk/modules/sql/src/test/java/org/apache/harmony/sql/tests/java/sql/DriverManagerTest.java?view=diff&rev=553376&r1=553375&r2=553376
==============================================================================
--- harmony/enhanced/classlib/trunk/modules/sql/src/test/java/org/apache/harmony/sql/tests/java/sql/DriverManagerTest.java (original)
+++ harmony/enhanced/classlib/trunk/modules/sql/src/test/java/org/apache/harmony/sql/tests/java/sql/DriverManagerTest.java Wed Jul 4 22:53:44 2007
@@ -18,6 +18,7 @@
package org.apache.harmony.sql.tests.java.sql;
import java.io.ByteArrayOutputStream;
+import java.io.IOException;
import java.io.PrintStream;
import java.io.PrintWriter;
import java.lang.reflect.Method;
@@ -30,6 +31,7 @@
import java.sql.SQLPermission;
import java.util.Enumeration;
import java.util.Properties;
+import tests.support.Support_Exec;
import junit.framework.TestCase;
@@ -601,6 +603,16 @@
}
Driver d = DriverManager.getDriver("jdbc:dummy_protocol:dummy_subname");
assertNotNull(d);
+ }
+
+ /**
+ * Regression for HARMONY-4303
+ */
+ public void test_initClass() throws Exception {
+ String[] arg = new String[1];
+ arg[0] = "org/apache/harmony/sql/tests/java/sql/TestMainForDriver";
+ String result = Support_Exec.execJava(arg, null, true);
+ assertEquals("", result);
}
private static class BadDummyDriver extends DummyDriver {
Added: harmony/enhanced/classlib/trunk/modules/sql/src/test/java/org/apache/harmony/sql/tests/java/sql/TestMainForDriver.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/trunk/modules/sql/src/test/java/org/apache/harmony/sql/tests/java/sql/TestMainForDriver.java?view=auto&rev=553376
==============================================================================
--- harmony/enhanced/classlib/trunk/modules/sql/src/test/java/org/apache/harmony/sql/tests/java/sql/TestMainForDriver.java (added)
+++ harmony/enhanced/classlib/trunk/modules/sql/src/test/java/org/apache/harmony/sql/tests/java/sql/TestMainForDriver.java Wed Jul 4 22:53:44 2007
@@ -0,0 +1,36 @@
+/*
+ * 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.harmony.sql.tests.java.sql;
+
+/*
+ * Load DriverManager class and initialize the class with SecurityManager
+ * Regression for HARMONY-4303
+ */
+public class TestMainForDriver {
+ public static void main(String[] args) throws Throwable {
+ // Install SecurityManager
+ System.setSecurityManager(new SecurityManager());
+ // Load java.sql.DriverManager and it will invoke its <clinit> method
+ try{
+ Class.forName("java.sql.DriverManager");
+ }catch (ExceptionInInitializerError e){
+ // ExceptionInInitializerError is caused by AccessControlException
+ throw e.getException();
+ }
+ }
+}
Propchange: harmony/enhanced/classlib/trunk/modules/sql/src/test/java/org/apache/harmony/sql/tests/java/sql/TestMainForDriver.java
------------------------------------------------------------------------------
svn:eol-style = native