Author: markt
Date: Fri Mar 28 14:18:25 2008
New Revision: 642391

URL: http://svn.apache.org/viewvc?rev=642391&view=rev
Log:
Remove hack for getting env since JDK >= 1.5 provide a suitable method. Fixes 
issue with CGI, env and vista.

Modified:
    tomcat/trunk/java/org/apache/catalina/servlets/CGIServlet.java

Modified: tomcat/trunk/java/org/apache/catalina/servlets/CGIServlet.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/servlets/CGIServlet.java?rev=642391&r1=642390&r2=642391&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/servlets/CGIServlet.java (original)
+++ tomcat/trunk/java/org/apache/catalina/servlets/CGIServlet.java Fri Mar 28 
14:18:25 2008
@@ -304,13 +304,7 @@
             
Boolean.valueOf(getServletConfig().getInitParameter("passShellEnvironment")).booleanValue();
 
         if (passShellEnvironment) {
-            try {
-                shellEnv.putAll(getShellEnvironment());
-            } catch (IOException ioe) {
-                ServletException e = new ServletException(
-                        "Unable to read shell environment variables", ioe);
-                throw e;
-            }
+            shellEnv.putAll(System.getenv());
         }
 
         if (getServletConfig().getInitParameter("executable") != null) {
@@ -636,55 +630,6 @@
     public static void main(String[] args) {
         System.out.println("$Header$");
     }
-
-    /**
-     * Get all shell environment variables. Have to do it this rather ugly way
-     * as the API to obtain is not available in 1.4 and earlier APIs.
-     *
-     * See <a href="http://www.rgagnon.com/javadetails/java-0150.html";>Read 
environment
-     * variables from an application</a> for original source and article.
-     */
-    private Hashtable<String,String> getShellEnvironment() throws IOException {
-        Hashtable<String,String> envVars = new Hashtable<String,String>();
-        Process p = null;
-        Runtime r = Runtime.getRuntime();
-        String OS = System.getProperty("os.name").toLowerCase();
-        boolean ignoreCase;
-
-        if (OS.indexOf("windows 9") > -1) {
-            p = r.exec( "command.com /c set" );
-            ignoreCase = true;
-        } else if ( (OS.indexOf("nt") > -1)
-                || (OS.indexOf("windows 20") > -1)
-                || (OS.indexOf("windows xp") > -1) ) {
-            // thanks to JuanFran for the xp fix!
-            p = r.exec( "cmd.exe /c set" );
-            ignoreCase = true;
-        } else {
-            // our last hope, we assume Unix (thanks to H. Ware for the fix)
-            p = r.exec( "env" );
-            ignoreCase = false;
-        }
-
-        BufferedReader br = new BufferedReader
-            ( new InputStreamReader( p.getInputStream() ) );
-        String line;
-        while( (line = br.readLine()) != null ) {
-            int idx = line.indexOf( '=' );
-            String key = line.substring( 0, idx );
-            String value = line.substring( idx+1 );
-            if (ignoreCase) {
-                key = key.toUpperCase();
-            }
-            envVars.put(key, value);
-        }
-        return envVars;
-    }
-
-
-
-
-
 
 
     /**



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to