You are viewing a plain text version of this content. The canonical link for it is here.
Posted to derby-commits@db.apache.org by fu...@apache.org on 2007/04/04 01:19:00 UTC

svn commit: r525326 - in /db/derby/code/trunk/java: testing/org/apache/derbyTesting/functionTests/master/ testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/ testing/org/apache/derbyTesting/functionTests/tests/derbynet/ testing/org/apa...

Author: fuzzylogic
Date: Tue Apr  3 16:18:58 2007
New Revision: 525326

URL: http://svn.apache.org/viewvc?view=rev&rev=525326
Log:
DERBY-2505 (partial): Convert derbynet/testij.java to JUnit. Getting an NPE
looking for the test script when running with jars, need to resolve that before
hooking it into the derbynet _Suite.

Added:
    db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/testclientij.out   (with props)
    db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/derbynet/NetIjTests.java   (with props)
    db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/util/IjTestCase.java   (with props)
Removed:
    db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/testij.out
    db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/derbynet/testij.java
    db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/derbynet/testij.sql
    db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/derbynet/testij_app.properties
    db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/derbynet/testij_sed.properties
Modified:
    db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/derbynet/testclientij.sql
    db/derby/code/trunk/java/tools/org/apache/derby/impl/tools/ij/ConnectionEnv.java
    db/derby/code/trunk/java/tools/org/apache/derby/impl/tools/ij/Main.java
    db/derby/code/trunk/java/tools/org/apache/derby/impl/tools/ij/ij.jj
    db/derby/code/trunk/java/tools/org/apache/derby/impl/tools/ij/util.java
    db/derby/code/trunk/java/tools/org/apache/derby/impl/tools/ij/utilMain.java

Added: db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/testclientij.out
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/testclientij.out?view=auto&rev=525326
==============================================================================
--- db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/testclientij.out (added)
+++ db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/testclientij.out Tue Apr  3 16:18:58 2007
@@ -0,0 +1,72 @@
+ij version 10.3
+ij> --
+--   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.
+--
+driver 'org.apache.derby.jdbc.ClientDriver';
+ij> --Bug 4632  Make the db italian to make sure string selects  are working
+connect 'jdbc:derby://localhost:1527/testij;create=true;territory=it' USER 'dbadmin' PASSWORD 'dbadmin';
+ij> connect 'jdbc:derby://localhost:1527/testij' USER 'dbadmin' PASSWORD 'dbadbmin';
+ij(CONNECTION1)> -- this is a comment, a comment in front of a select should not cause an error
+select * from sys.systables where 1=0;
+TABLEID                             |TABLENAME                                                                                                                       |&|SCHEMAID                            |&
+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+
+0 rows selected
+ij(CONNECTION1)> -- this is a comment, a comment in front of a values clauses should not cause an error
+values(1);
+1          
+-----------
+1          
+
+1 row selected
+ij(CONNECTION1)> -- Try some URL attributes
+disconnect all;
+ij> connect 'jdbc:derby://localhost:1527/testij2;create=true' USER 'dbadmin' PASSWORD 'dbadbmin';
+ij> select * from APP.notthere;
+ERROR 42X05: Table/View 'APP.NOTTHERE' does not exist.
+ij> -- examples from the docs
+
+connect 'jdbc:derby://localhost:1527/testij2;create=true;user=judy;password=judy';
+ij(CONNECTION1)> connect 'jdbc:derby://localhost:1527/./testij2;user=judy;password=judy';
+ij(CONNECTION2)> connect 'jdbc:derby://localhost:1527/toursDB';
+ERROR 08004: The connection was refused because the database toursDB was not found.
+ij(CONNECTION2)> connect 'jdbc:derby://localhost:1527/toursDB' USER 'dbadmin' PASSWORD 'dbadbmin';
+ERROR 08004: The connection was refused because the database toursDB was not found.
+ij(CONNECTION2)> connect 'jdbc:derby://localhost:1527/wombat' USER 'APP' PASSWORD 'APP';
+ij(CONNECTION3)> connect  'jdbc:derby://localhost:1527/testij2;create=true;user=usr;password=pwd';
+ij(CONNECTION4)> connect 'jdbc:derby://localhost:1527/testij2;upgrade=true;user=usr;password=pwd';
+ij(CONNECTION5)> connect 'jdbc:derby://localhost:1527/testij2;shutdown=true;user=usr;password=pwd';
+ERROR 08006: DERBY SQL error: SQLCODE: -1, SQLSTATE: 08006, SQLERRMC: Database 'testij2' shutdown.
+ij(CONNECTION5)> connect 'jdbc:derby://localhost:1527/./testij2;create=true;user=usr;password=pwd';
+ij(CONNECTION6)> connect 'jdbc:derby://localhost:1527/./testij2;create=true;user=usr;password=pwd';
+ij(CONNECTION7)> connect  'jdbc:derby://localhost:1527/testij2;create=true;user=usr;password=pwd';
+ij(CONNECTION8)> connect 'jdbc:derby://localhost:1527/testij2;upgrade=true;user=usr;password=pwd';
+ij(CONNECTION9)> connect 'jdbc:derby://localhost:1527/testij2;shutdown=true;user=usr;password=pwd';
+ERROR 08006: DERBY SQL error: SQLCODE: -1, SQLSTATE: 08006, SQLERRMC: Database 'testij2' shutdown.
+ij(CONNECTION9)> -- retrieveMessageText Testing
+connect 'jdbc:derby://localhost:1527/testij2;create=true;user=usr;password=pwd;retrieveMessageText=false';
+ij(CONNECTION10)> -- Should not get message text
+select * from APP.notthere;
+ERROR 42X05: DERBY SQL error: SQLCODE: -1, SQLSTATE: 42X05, SQLERRMC: APP.NOTTHERE42X05
+ij(CONNECTION10)> connect 'jdbc:derby://localhost:1527/testij2;create=true;user=usr;password=pwd;retrieveMessageText=true';
+ij(CONNECTION11)> -- Should see message text
+select * from APP.notthere;
+ERROR 42X05: Table/View 'APP.NOTTHERE' does not exist.
+ij(CONNECTION11)> -- just user security mechanism
+connect 'jdbc:derby://localhost:1527/testij2;create=true;user=usr;retrieveMessageText=true';
+ij(CONNECTION12)> connect 'jdbc:derby://localhost:1527/wombat' USER 'APP';
+ij(CONNECTION13)> disconnect all;
+ij> 
\ No newline at end of file

Propchange: db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/testclientij.out
------------------------------------------------------------------------------
    svn:eol-style = native

Added: db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/derbynet/NetIjTests.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/derbynet/NetIjTests.java?view=auto&rev=525326
==============================================================================
--- db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/derbynet/NetIjTests.java (added)
+++ db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/derbynet/NetIjTests.java Tue Apr  3 16:18:58 2007
@@ -0,0 +1,46 @@
+/*
+ *
+ * Derby - Class org.apache.derbyTesting.functionTests.tests.derbynet.NetIjTests
+ *
+ * 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.derbyTesting.functionTests.tests.derbynet;
+
+import junit.framework.Test;
+import junit.framework.TestSuite;
+
+import org.apache.derbyTesting.functionTests.util.IjTestCase;
+import org.apache.derbyTesting.junit.TestConfiguration;
+
+/**
+ * Network client .sql tests to run via ij.
+ */
+public class NetIjTests extends IjTestCase {
+	
+	private NetIjTests(String name) {
+		super(name);
+	}
+	
+	public static Test suite() {
+        
+        TestSuite suite = new TestSuite("NetIjTests");
+        suite.addTest(TestConfiguration.clientServerDecorator(
+        		new NetIjTests("testclientij")));
+        
+        return suite;
+    }
+}

Propchange: db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/derbynet/NetIjTests.java
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/derbynet/testclientij.sql
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/derbynet/testclientij.sql?view=diff&rev=525326&r1=525325&r2=525326
==============================================================================
--- db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/derbynet/testclientij.sql (original)
+++ db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/derbynet/testclientij.sql Tue Apr  3 16:18:58 2007
@@ -16,9 +16,9 @@
 --
 driver 'org.apache.derby.jdbc.ClientDriver';
 --Bug 4632  Make the db italian to make sure string selects  are working
-connect 'jdbc:derby://localhost:1527/wombat;create=true;territory=it' USER 'dbadmin' PASSWORD 'dbadmin';
+connect 'jdbc:derby://localhost:1527/testij;create=true;territory=it' USER 'dbadmin' PASSWORD 'dbadmin';
 
-connect 'jdbc:derby://localhost:1527/wombat' USER 'dbadmin' PASSWORD 'dbadbmin';
+connect 'jdbc:derby://localhost:1527/testij' USER 'dbadmin' PASSWORD 'dbadbmin';
 -- this is a comment, a comment in front of a select should not cause an error
 select * from sys.systables where 1=0;
 -- this is a comment, a comment in front of a values clauses should not cause an error
@@ -26,62 +26,52 @@
 
 -- Try some URL attributes
 disconnect all;
-connect 'jdbc:derby://localhost:1527/junk;create=true' USER 'dbadmin' PASSWORD 'dbadbmin';
+connect 'jdbc:derby://localhost:1527/testij2;create=true' USER 'dbadmin' PASSWORD 'dbadbmin';
 select * from APP.notthere;
 
 
 -- examples from the docs
 
-connect 'jdbc:derby://localhost:1527/wombat;create=true;user=judy;password=judy';
+connect 'jdbc:derby://localhost:1527/testij2;create=true;user=judy;password=judy';
 
-connect 'jdbc:derby://localhost:1527/./wombat;user=judy;password=judy';
+connect 'jdbc:derby://localhost:1527/./testij2;user=judy;password=judy';
 
 connect 'jdbc:derby://localhost:1527/toursDB';
 
-
 connect 'jdbc:derby://localhost:1527/toursDB' USER 'dbadmin' PASSWORD 'dbadbmin';
 
 connect 'jdbc:derby://localhost:1527/wombat' USER 'APP' PASSWORD 'APP';
 
-connect  'jdbc:derby://localhost:1527/my-db-name;create=true;user=usr;password=pwd';
-
-connect 'jdbc:derby://localhost:1527/my-db-name;upgrade=true;user=usr;password=pwd';
-
-connect 'jdbc:derby://localhost:1527/my-db-name;shutdown=true;user=usr;password=pwd';
+connect  'jdbc:derby://localhost:1527/testij2;create=true;user=usr;password=pwd';
 
-connect 'jdbc:derby://localhost:1527/./my-dbname;create=true;user=usr;password=pwd';
+connect 'jdbc:derby://localhost:1527/testij2;upgrade=true;user=usr;password=pwd';
 
-connect 'jdbc:derby://localhost:1527/./my-dbname;create=true;user=usr;password=pwd';
+connect 'jdbc:derby://localhost:1527/testij2;shutdown=true;user=usr;password=pwd';
 
-connect 'jdbc:derby://localhost:1527/toursDB' USER 'dbadmin' PASSWORD 'dbadbmin';
-
-connect 'jdbc:derby://localhost:1527/wombat' USER 'APP' PASSWORD 'APP';
+connect 'jdbc:derby://localhost:1527/./testij2;create=true;user=usr;password=pwd';
 
-connect  'jdbc:derby://localhost:1527/my-db-name;create=true;user=usr;password=pwd';
+connect 'jdbc:derby://localhost:1527/./testij2;create=true;user=usr;password=pwd';
 
-connect 'jdbc:derby://localhost:1527/my-db-name;upgrade=true;user=usr;password=pwd';
-
-connect 'jdbc:derby://localhost:1527/my-db-name;shutdown=true;user=usr;password=pwd';
-
--- Database names with /'s
-connect 'jdbc:derby://localhost:1527/./my-dbname;create=true;user=usr;password=pwd';
-
-connect 'jdbc:derby://localhost:1527/./my-dbname;create=true;user=usr;password=pwd';
+connect  'jdbc:derby://localhost:1527/testij2;create=true;user=usr;password=pwd';
 
+connect 'jdbc:derby://localhost:1527/testij2;upgrade=true;user=usr;password=pwd';
 
+connect 'jdbc:derby://localhost:1527/testij2;shutdown=true;user=usr;password=pwd';
 
 -- retrieveMessageText Testing
-connect 'jdbc:derby://localhost:1527/my-db-name;create=true;user=usr;password=pwd;retrieveMessageText=false';
+connect 'jdbc:derby://localhost:1527/testij2;create=true;user=usr;password=pwd;retrieveMessageText=false';
 
 -- Should not get message text
 select * from APP.notthere;
 
-connect 'jdbc:derby://localhost:1527/my-db-name;create=true;user=usr;password=pwd;retrieveMessageText=true';
+connect 'jdbc:derby://localhost:1527/testij2;create=true;user=usr;password=pwd;retrieveMessageText=true';
 
 -- Should see message text
 select * from APP.notthere;
 
 -- just user security mechanism
-connect 'jdbc:derby://localhost:1527/my-db-name;create=true;user=usr;retrieveMessageText=true';
+connect 'jdbc:derby://localhost:1527/testij2;create=true;user=usr;retrieveMessageText=true';
 
 connect 'jdbc:derby://localhost:1527/wombat' USER 'APP';
+
+disconnect all;

Added: db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/util/IjTestCase.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/util/IjTestCase.java?view=auto&rev=525326
==============================================================================
--- db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/util/IjTestCase.java (added)
+++ db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/util/IjTestCase.java Tue Apr  3 16:18:58 2007
@@ -0,0 +1,110 @@
+/*
+ * Derby - Class org.apache.derbyTesting.functionTests.util.ExecIjTestCase
+ *
+ * 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.derbyTesting.functionTests.util;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+import java.io.OutputStream;
+import java.security.AccessController;
+import java.security.PrivilegedAction;
+
+import org.apache.derby.tools.ij;
+
+/**
+ * Run a .sql script via ij's main method and compare with a canon.
+ */
+public class IjTestCase extends ScriptTestCase {
+
+	String scriptName;
+	String outfileName;
+    File outfile;
+	
+    /**
+     * Create a script testcase that runs the .sql script with the
+     * given name. The name should not include the ".sql" suffix.
+     */
+	public IjTestCase(String name) {
+		super(name);
+		scriptName = getName() + ".sql";
+		outfileName = "system" + File.separator + getName() + ".out";
+		outfile = new File(outfileName);
+	}
+	
+	public void setUp() throws Exception{
+	    super.setUp();
+		setSystemProperty("ij.outfile", outfileName);
+		setSystemProperty("ij.defaultResourcePackage",
+				"/org/apache/derbyTesting/functionTests/tests/"
+				+ getArea() + File.separator);
+	}
+	
+	public void tearDown() throws Exception {
+		super.tearDown();
+		removeSystemProperty("ij.outfile");
+		removeSystemProperty("ij.defaultResourcePackage");
+	}
+	
+	/**
+	 * Run a .sql test, calling ij's main method.
+	 * Then, take the output filre and read it into our OutputStream
+	 * so that it can be compared via compareCanon().
+	 */
+	public void runTest() throws Throwable {
+		String [] args = { "-fr", scriptName };
+		ij.main(args);
+		
+		String canon =
+			"org/apache/derbyTesting/functionTests/master/"
+			+ getName() + ".out";
+		
+		final File out = outfile;
+		FileInputStream fis = (FileInputStream) AccessController.doPrivileged(new PrivilegedAction() {
+			public Object run() {
+				FileInputStream fis = null;
+				try {
+					fis = new FileInputStream(out);
+				} catch (FileNotFoundException e) {
+					fail("Could not open ij output file.");
+				}				
+				return fis;
+			}
+		});
+		OutputStream os = getOutputStream();
+		int b;
+		while ((b = fis.read()) != -1) {
+			os.write(b);
+		}
+		fis.close();
+		
+		Boolean deleted = (Boolean) AccessController.doPrivileged(new PrivilegedAction() {
+			public Object run() {
+				boolean d = outfile.delete();
+				
+				return new Boolean(d);
+			}
+		});
+		
+		if (!deleted.booleanValue())
+			println("Could not delete outfile for " + scriptName);
+		
+		this.compareCanon(canon);
+	}
+}

Propchange: db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/util/IjTestCase.java
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: db/derby/code/trunk/java/tools/org/apache/derby/impl/tools/ij/ConnectionEnv.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/tools/org/apache/derby/impl/tools/ij/ConnectionEnv.java?view=diff&rev=525326&r1=525325&r2=525326
==============================================================================
--- db/derby/code/trunk/java/tools/org/apache/derby/impl/tools/ij/ConnectionEnv.java (original)
+++ db/derby/code/trunk/java/tools/org/apache/derby/impl/tools/ij/ConnectionEnv.java Tue Apr  3 16:18:58 2007
@@ -28,6 +28,8 @@
 import java.util.Enumeration;
 import java.util.Properties;
 
+import java.security.AccessController;
+import java.security.PrivilegedAction;
 import java.sql.Connection;
 import java.sql.DriverManager;
 import java.sql.SQLException;
@@ -64,8 +66,12 @@
 		// only load up ij.connection.* properties if there is
 		// only one ConnectionEnv in the system.
 		if (only) {
-		    Properties p = System.getProperties();
-		    protocol = p.getProperty(ij.PROTOCOL_PROPERTY);
+            Properties p = (Properties) AccessController.doPrivileged(new PrivilegedAction() {
+            	public Object run() {
+                	return System.getProperties();
+            	}
+            });
+            protocol = p.getProperty(ij.PROTOCOL_PROPERTY);
 
 	        String prefix = CONNECTION_PROPERTY + ".";
 		    for (Enumeration e = p.propertyNames(); e.hasMoreElements(); )

Modified: db/derby/code/trunk/java/tools/org/apache/derby/impl/tools/ij/Main.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/tools/org/apache/derby/impl/tools/ij/Main.java?view=diff&rev=525326&r1=525325&r2=525326
==============================================================================
--- db/derby/code/trunk/java/tools/org/apache/derby/impl/tools/ij/Main.java (original)
+++ db/derby/code/trunk/java/tools/org/apache/derby/impl/tools/ij/Main.java Tue Apr  3 16:18:58 2007
@@ -37,6 +37,8 @@
 import java.io.UnsupportedEncodingException;
 import java.io.IOException;
 
+import java.security.AccessController;
+import java.security.PrivilegedAction;
 import java.sql.Connection;
 import java.sql.SQLException;
 
@@ -132,15 +134,25 @@
                     }
                 }
 
-		String outFile = util.getSystemProperty("ij.outfile");
+		final String outFile = util.getSystemProperty("ij.outfile");
 		if (outFile != null && outFile.length()>0) {
 			LocalizedOutput oldOut = out;
-			try {
-				out = langUtil.getNewOutput(new FileOutputStream(outFile));
-			}
-			catch (IOException ioe) {
-				oldOut.println(langUtil.getTextMessage("IJ_IjErroUnabTo",outFile));
-			}
+			FileOutputStream fos = (FileOutputStream) AccessController.doPrivileged(new PrivilegedAction() {
+				public Object run() {
+					FileOutputStream out = null;
+					try {
+						out = new FileOutputStream(outFile);
+					} catch (FileNotFoundException e) {
+						out = null;
+					}
+					return out;
+				}
+			});
+			out = langUtil.getNewOutput(fos);
+
+			if (out == null)
+			   oldOut.println(langUtil.getTextMessage("IJ_IjErroUnabTo",outFile));
+	
 		}
 
 		// the old property name is deprecated...
@@ -238,4 +250,5 @@
 		// adjust the application in accordance with derby.ui.locale and derby.ui.codeset
 	LocalizedResource.getInstance();	
   }
+  
 }

Modified: db/derby/code/trunk/java/tools/org/apache/derby/impl/tools/ij/ij.jj
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/tools/org/apache/derby/impl/tools/ij/ij.jj?view=diff&rev=525326&r1=525325&r2=525326
==============================================================================
--- db/derby/code/trunk/java/tools/org/apache/derby/impl/tools/ij/ij.jj (original)
+++ db/derby/code/trunk/java/tools/org/apache/derby/impl/tools/ij/ij.jj Tue Apr  3 16:18:58 2007
@@ -47,6 +47,8 @@
 import org.apache.derby.tools.URLCheck;
 
 import java.lang.reflect.*;
+import java.security.AccessController;
+import java.security.PrivilegedAction;
 import java.sql.Connection;
 import java.sql.DatabaseMetaData;
 import java.sql.DriverManager;
@@ -98,7 +100,8 @@
  */
 class ij {
 	static final String PROTOCOL_PROPERTY = "ij.protocol";
-    static final String USER_PROPERTY = "ij.user";
+    static final String URLCHECK_PROPERTY = "ij.URLCheck";
+	static final String USER_PROPERTY = "ij.user";
     static final String PASSWORD_PROPERTY = "ij.password";
 	static final String FRAMEWORK_PROPERTY = "framework";
 
@@ -106,6 +109,7 @@
 
 	Connection theConnection = null;
 	ConnectionEnv currentConnEnv = null;
+	String urlCheck = null;
 
 	xaAbstractHelper xahelper = null;
 	boolean exit = false;
@@ -138,7 +142,12 @@
 
 		// load all protocols specified via properties
 		//
-		Properties p = System.getProperties();
+        Properties p = (Properties) AccessController.doPrivileged(new PrivilegedAction() {
+          	public Object run() {
+              	return System.getProperties();
+            }
+        });
+        urlCheck = p.getProperty(URLCHECK_PROPERTY);
 		protocol = p.getProperty(PROTOCOL_PROPERTY);
 		String framework_property = p.getProperty(FRAMEWORK_PROPERTY);
 		
@@ -1473,7 +1482,7 @@
                         }
 			// By default perform extra checking on the URL attributes.
 			// This checking does not change the processing.
-                        if (System.getProperty("ij.URLCheck") == null || Boolean.getBoolean("ij.URLCheck")) {
+			if (urlCheck == null || Boolean.valueOf(urlCheck).booleanValue()) {
                           URLCheck aCheck = new URLCheck(sVal);
                         }
 		if (!sVal.startsWith("jdbc:") && (p == null) && (protocol != null)) {

Modified: db/derby/code/trunk/java/tools/org/apache/derby/impl/tools/ij/util.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/tools/org/apache/derby/impl/tools/ij/util.java?view=diff&rev=525326&r1=525325&r2=525326
==============================================================================
--- db/derby/code/trunk/java/tools/org/apache/derby/impl/tools/ij/util.java (original)
+++ db/derby/code/trunk/java/tools/org/apache/derby/impl/tools/ij/util.java Tue Apr  3 16:18:58 2007
@@ -31,6 +31,8 @@
 import java.io.IOException;
 import java.lang.reflect.InvocationTargetException;
 
+import java.security.AccessController;
+import java.security.PrivilegedAction;
 import java.sql.Connection;
 import java.sql.DriverManager;
 import java.sql.SQLException;
@@ -219,11 +221,19 @@
 	  */
 	static public InputStream getResourceAsStream(String resourceName) 
 	{
-		Class c= util.class;
-		resourceName = qualifyResourceName(resourceName,true);
-		if (resourceName == null) 
+		final Class c = util.class;
+		final String resource = qualifyResourceName(resourceName,true);
+		if (resource == null) 
 			return null;
-		InputStream is = c.getResourceAsStream(resourceName);
+		InputStream is = (InputStream) AccessController.doPrivileged(new PrivilegedAction() {
+            public Object run() { 
+                      InputStream locis = 
+                          c.getResourceAsStream(resource);
+                                  return locis;
+            }
+        }
+     );
+
 		if (is != null) 
 			is = new BufferedInputStream(is, utilMain.BUFFEREDFILESIZE);
 		return is;

Modified: db/derby/code/trunk/java/tools/org/apache/derby/impl/tools/ij/utilMain.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/tools/org/apache/derby/impl/tools/ij/utilMain.java?view=diff&rev=525326&r1=525325&r2=525326
==============================================================================
--- db/derby/code/trunk/java/tools/org/apache/derby/impl/tools/ij/utilMain.java (original)
+++ db/derby/code/trunk/java/tools/org/apache/derby/impl/tools/ij/utilMain.java Tue Apr  3 16:18:58 2007
@@ -42,6 +42,8 @@
 import java.io.BufferedInputStream;
 import java.io.FileNotFoundException;
 import java.io.StringReader;
+import java.security.AccessController;
+import java.security.PrivilegedAction;
 import java.sql.DriverManager;
 import java.sql.Driver;
 import java.sql.Connection;
@@ -248,13 +250,25 @@
 
       		//check if the property is set to not show select count and set the static variable
       		//accordingly. 
-    		boolean showNoCountForSelect = Boolean.getBoolean("ij.showNoCountForSelect");
+    		//boolean showNoCountForSelect = Boolean.getBoolean("ij.showNoCountForSelect");
+    		String prop = (String) AccessController.doPrivileged(new PrivilegedAction() {
+    					public Object run() {
+    						return System.getProperty("ij.showNoCountForSelect");
+    					}
+    		});
+    		boolean showNoCountForSelect = Boolean.valueOf(prop).booleanValue();
       		JDBCDisplayUtil.showSelectCount = !showNoCountForSelect;
 
       		//check if the property is set to not show initial connections and accordingly set the
       		//static variable.
-    		boolean showNoConnectionsAtStart = Boolean.getBoolean("ij.showNoConnectionsAtStart");
-      		if (!(showNoConnectionsAtStart)) {
+    		prop = (String) AccessController.doPrivileged(new PrivilegedAction() {
+				public Object run() {
+					return System.getProperty("ij.showNoConnectionsAtStart");
+				}
+         	});
+    		boolean showNoConnectionsAtStart = Boolean.valueOf(prop).booleanValue();
+
+    		if (!(showNoConnectionsAtStart)) {
          		try {
            			ijResult result = ijParser.showConnectionsMethod(true);
  					displayResult(out,result,connEnv[currCE].getConnection());