You are viewing a plain text version of this content. The canonical link for it is here.
Posted to axis-cvs@ws.apache.org by di...@apache.org on 2007/06/19 17:47:57 UTC

svn commit: r548771 - in /webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2: context/ deployment/ deployment/scheduler/ engine/

Author: dims
Date: Tue Jun 19 08:47:55 2007
New Revision: 548771

URL: http://svn.apache.org/viewvc?view=rev&rev=548771
Log:
Fix for OutOfMemory and cleanup of files etc. Please see http://marc.info/?t=118217698900011&r=1&w=2 for more information

Modified:
    webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/context/ConfigurationContext.java
    webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/DeploymentEngine.java
    webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/FileSystemConfigurator.java
    webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/URLBasedAxisConfigurator.java
    webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/WarBasedAxisConfigurator.java
    webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/scheduler/Scheduler.java
    webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/engine/AxisConfiguration.java
    webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/engine/AxisConfigurator.java

Modified: webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/context/ConfigurationContext.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/context/ConfigurationContext.java?view=diff&rev=548771&r1=548770&r2=548771
==============================================================================
--- webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/context/ConfigurationContext.java (original)
+++ webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/context/ConfigurationContext.java Tue Jun 19 08:47:55 2007
@@ -540,6 +540,7 @@
         if (listenerManager != null) {
             listenerManager.stop();
         }
+        axisConfiguration.cleanup();
         cleanupTemp();
     }
 

Modified: webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/DeploymentEngine.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/DeploymentEngine.java?view=diff&rev=548771&r1=548770&r2=548771
==============================================================================
--- webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/DeploymentEngine.java (original)
+++ webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/DeploymentEngine.java Tue Jun 19 08:47:55 2007
@@ -53,6 +53,7 @@
 
     //to keep the web resource location if any
     protected static String webLocationString = null;
+    protected Scheduler scheduler;
 
     public static void setWebLocationString(String webLocationString) {
         DeploymentEngine.webLocationString = webLocationString;
@@ -598,7 +599,7 @@
      * @param listener : RepositoryListener
      */
     protected void startSearch(RepositoryListener listener) {
-        Scheduler scheduler = new Scheduler();
+        scheduler = new Scheduler();
 
         scheduler.schedule(new SchedulerTask(listener), new DeploymentIterator());
     }
@@ -1070,5 +1071,14 @@
 
     public Deployer getDeployerForExtension(String extension) {
         return (Deployer)extensionToDeployerMappingMap.get(extension);
+    }
+
+    /**
+     * Clean up the mess
+     */
+    public void cleanup() {
+        if(scheduler != null){
+            scheduler.cleanup();
+        }
     }
 }

Modified: webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/FileSystemConfigurator.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/FileSystemConfigurator.java?view=diff&rev=548771&r1=548770&r2=548771
==============================================================================
--- webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/FileSystemConfigurator.java (original)
+++ webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/FileSystemConfigurator.java Tue Jun 19 08:47:55 2007
@@ -13,6 +13,7 @@
 import java.io.FileInputStream;
 import java.io.FileNotFoundException;
 import java.io.InputStream;
+import java.io.IOException;
 
 /*
 * Copyright 2004,2005 The Apache Software Foundation.
@@ -103,7 +104,7 @@
      * @throws AxisFault
      */
     public synchronized AxisConfiguration getAxisConfiguration() throws AxisFault {
-        InputStream configStream;
+        InputStream configStream = null;
         try {
             if (axis2xml != null && !"".equals(axis2xml)) {
                 configStream = new FileInputStream(axis2xml);
@@ -114,6 +115,14 @@
             axisConfig = populateAxisConfiguration(configStream);
         } catch (FileNotFoundException e) {
             throw new AxisFault("System can not find the given axis2.xml " + axis2xml);
+        } finally {
+            if(configStream != null) {
+                try {
+                    configStream.close();
+                } catch (IOException e) {
+                    throw AxisFault.makeFault(e);
+                }
+            }
         }
         Parameter axis2repoPara = axisConfig.getParameter(DeploymentConstants.AXIS2_REPO);
         if (axis2repoPara != null) {
@@ -124,6 +133,7 @@
         } else {
             loadFromClassPath();
         }
+        axisConfig.setConfigurator(this);
         return axisConfig;
     }
 

Modified: webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/URLBasedAxisConfigurator.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/URLBasedAxisConfigurator.java?view=diff&rev=548771&r1=548770&r2=548771
==============================================================================
--- webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/URLBasedAxisConfigurator.java (original)
+++ webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/URLBasedAxisConfigurator.java Tue Jun 19 08:47:55 2007
@@ -75,6 +75,7 @@
         } catch (IOException e) {
             throw new AxisFault(e.getMessage());
         }
+        axisConfig.setConfigurator(this);
         return axisConfig;
     }
 

Modified: webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/WarBasedAxisConfigurator.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/WarBasedAxisConfigurator.java?view=diff&rev=548771&r1=548770&r2=548771
==============================================================================
--- webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/WarBasedAxisConfigurator.java (original)
+++ webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/WarBasedAxisConfigurator.java Tue Jun 19 08:47:55 2007
@@ -144,6 +144,9 @@
             }
             axisConfig = populateAxisConfiguration(axis2Stream);
 
+            if(axis2Stream != null){
+                axis2Stream.close();
+            }
             Parameter param = new Parameter();
             param.setName(Constants.Configuration.ARTIFACTS_TEMP_DIR);
             param.setValue(config.getServletContext().getAttribute("javax.servlet.context.tempdir"));
@@ -233,6 +236,7 @@
             log.error(ex + ": loading repository from classpath");
             loadFromClassPath();
         }
+        axisConfig.setConfigurator(this);
         return axisConfig;
     }
 

Modified: webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/scheduler/Scheduler.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/scheduler/Scheduler.java?view=diff&rev=548771&r1=548770&r2=548771
==============================================================================
--- webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/scheduler/Scheduler.java (original)
+++ webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/scheduler/Scheduler.java Tue Jun 19 08:47:55 2007
@@ -63,6 +63,10 @@
         }
     }
 
+    public void cleanup(){
+        timer.cancel();
+    }
+
     public class SchedulerTimerTask extends TimerTask {
         private DeploymentIterator iterator;
         private SchedulerTask schedulerTask;

Modified: webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/engine/AxisConfiguration.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/engine/AxisConfiguration.java?view=diff&rev=548771&r1=548770&r2=548771
==============================================================================
--- webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/engine/AxisConfiguration.java (original)
+++ webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/engine/AxisConfiguration.java Tue Jun 19 08:47:55 2007
@@ -127,8 +127,10 @@
 
     private ClusterManager clusterManager;
 
+    private AxisConfigurator configurator;
+
     /**
-     * Constructor AxisConfigurationImpl.
+     * Constructor AxisConfiguration.
      */
     public AxisConfiguration() {
         moduleConfigmap = new HashMap();
@@ -1057,5 +1059,19 @@
         setInFaultPhases(phasesInfo.getGlobalInFaultPhases());
         setGlobalOutPhase(phasesInfo.getGlobalOutPhaseList());
         setOutFaultPhases(phasesInfo.getOUT_FaultPhases());
+    }
+
+    public AxisConfigurator getConfigurator() {
+        return configurator;
+    }
+
+    public void setConfigurator(AxisConfigurator configurator) {
+        this.configurator = configurator;
+    }
+
+    public void cleanup(){
+        if(configurator != null){
+            configurator.cleanup();
+        }
     }
 }

Modified: webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/engine/AxisConfigurator.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/engine/AxisConfigurator.java?view=diff&rev=548771&r1=548770&r2=548771
==============================================================================
--- webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/engine/AxisConfigurator.java (original)
+++ webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/engine/AxisConfigurator.java Tue Jun 19 08:47:55 2007
@@ -40,4 +40,9 @@
      * @throws AxisFault
      */
     void engageGlobalModules() throws AxisFault;
+
+    /**
+     * Clean up the mess
+     */
+    void cleanup();
 }



---------------------------------------------------------------------
To unsubscribe, e-mail: axis-cvs-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-cvs-help@ws.apache.org