[ 
https://issues.apache.org/struts/browse/STR-3103?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Dmitry Rubenchik updated STR-3103:
----------------------------------

    Summary: Preloaded initialization servlet effects global exception handling 
 (was: L)

> Preloaded initialization servlet effects global exception handling
> ------------------------------------------------------------------
>
>                 Key: STR-3103
>                 URL: https://issues.apache.org/struts/browse/STR-3103
>             Project: Struts 1
>          Issue Type: Bug
>    Affects Versions: 1.3.8
>         Environment: Windows XP
>            Reporter: Dmitry Rubenchik
>
> I load my InitSrvlet through WEB.xml to perform an app initialization from 
> property files. Once this servlet is loaded, it effects struts global 
> exception handling.
> Defined global exceptions are not caught by struts framework. If I would 
> disable load of the servlet, global exceptions are handled normally. Please 
> let me know what could be a cause for this behavior.
> WEB.xml fragment:
> <servlet>
>               <servlet-name>action</servlet-name>
>               <servlet-class>
>                       org.apache.struts.action.ActionServlet
>               </servlet-class>
>               <init-param>
>                       <param-name>config</param-name>
>                       <param-value>/WEB-INF/struts-config.xml</param-value>
>               </init-param>
>               <init-param>
>                       <param-name>debug</param-name>
>                       <param-value>2</param-value>
>               </init-param>
>               <init-param>
>                       <param-name>detail</param-name>
>                       <param-value>2</param-value>
>               </init-param>
>               <init-param>
>                       <param-name>validate</param-name>
>                       <param-value>true</param-value>
>               </init-param>
>               <load-on-startup>2</load-on-startup>
>       </servlet>
>       <servlet>
>               <servlet-name>InitSrvlt</servlet-name>
>               <servlet-class>
>               com.ubs.fcm.servlets.InitSrvlt</servlet-class>
>               <init-param>
>                       <param-name>configFileName</param-name>
>                       
> <param-value>/apps/WasApps/FCM/FCMSystem/properties/log4j.properties</param-value>
>               </init-param>
>               <load-on-startup>-1</load-on-startup>
>       </servlet>
>       <servlet-mapping>
>               <servlet-name>action</servlet-name>
>               <url-pattern>*.do</url-pattern>
>       </servlet-mapping>
>       <servlet-mapping>
>               <servlet-name>InitSrvlt</servlet-name>
>               <url-pattern>/InitSrvlt</url-pattern>
>       </servlet-mapping>
> InitSrvlet.java:
> package com.ubs.fcm.servlets;
> import java.io.FileInputStream;
> import java.io.IOException;
> import java.io.InputStream;
> import java.util.Enumeration;
> import java.util.Properties;
> import javax.servlet.Servlet;
> import javax.servlet.ServletConfig;
> import javax.servlet.ServletException;
> import javax.servlet.http.HttpServlet;
> import com.pwj.fwa.log4j.PwLoggingConfigurator;
> import com.pwj.fwa.log4j.PwLoggingSubLevel;
> import com.ubs.fcm.common.ConfigFCM;
> //import com.ubs.fcm.exceptions.*;
> import com.ubs.fcm.log.Log;
> /**
>  * @version   1.0
>  * @author
>  */
> public class InitSrvlt extends HttpServlet implements Servlet {
>       
>       /**
>       * @see javax.servlet.GenericServlet#void ()
>       */
>       public void init(ServletConfig config) throws ServletException {        
>         
>               
>               // Setting pwlog init parameters
>               
>               
>               String configFileName=null;
>               try { 
>                       configFileName = (String)(new 
> javax.naming.InitialContext()).lookup("java:comp/env/LOG4J_SOURCE"); 
>               } catch (Exception e) {
>                       e.printStackTrace(System.err);             
>               }
>               String rootLogDir = null;
>       
>               InputStream logPropsFile;
>               Properties logProp = new Properties();
>               try {
>                       logPropsFile = new FileInputStream(configFileName);
>               
>                       logProp.load(logPropsFile);
>                       logPropsFile.close();
>                       
>                       Enumeration enLogProps = logProp.propertyNames(); 
>                       String logKey;
>                       while ( enLogProps.hasMoreElements() ) {
>                               logKey = (String) enLogProps.nextElement();
>                               try{    
>                                       if(logKey.equals("ROOT_LOG_DIR")){ 
>                                               
> rootLogDir=logProp.getProperty(logKey);
>                                       }
>                               }
>                               catch(NumberFormatException e){ 
>                                       e.printStackTrace(System.err);          
>                         
>                                       throw e;
>                               }               
>                       }
>               } catch (IOException e) {
>                       e.printStackTrace(System.err);                  
>               }
>               
>               PwLoggingConfigurator pwLog = 
> PwLoggingConfigurator.getInstance(config);
>               pwLog.setLogFileName(rootLogDir);
>               
>               if (Log.loggerDebug.isDebugEnabled())
>                       Log.loggerDebug.debug("InitSrvlt.init(): PwLoggin 
> initialized successfully ", PwLoggingSubLevel.DEBUG);
>                       
>               super.init(config);
>               
>               InputStream propsFile;
>               Properties prop = new Properties();     
>               
>               
>               
>               try { 
>                       try { 
>                               ConfigFCM.setAppPropPath((String)(new 
> javax.naming.InitialContext()).lookup("java:comp/env/CONFIG_SOURCE")); 
>                       } catch (Exception e) {                         
>                               Log.loggerError.error("InitSrvlt.init(): Error 
> retrieving environment variable java:comp/env/CONFIG_SOURCE.", 
> PwLoggingSubLevel.NONE);
>                       }
>                       
>                       propsFile = new 
> FileInputStream(ConfigFCM.getAppPropPath());
>                       
>                       //Throw an application exception if results were not 
> found.
>                       //if (propsFile == null) {
>                               //throw new 
> ConfigurationFileNotFoundException();
>                       //}
>                       
>                       prop.load(propsFile);
>                       propsFile.close();
>                       Enumeration enProps = prop.propertyNames(); 
>                       String key;
>                       while ( enProps.hasMoreElements() ) {
>                               key = (String) enProps.nextElement();
>                               if(key.equals("propPath")) 
>                                       
> ConfigFCM.setPwSecPropPath(prop.getProperty(key));
>                               try{
>                                       if(key.equals("appCode")) 
>                                               
> ConfigFCM.setPwSecAppCode(Integer.parseInt(prop.getProperty(key)));
>                               }
>                               catch(NumberFormatException e){                 
>                                                 
>                                       
> Log.loggerError.error("InitSrvlt.init(): Invalid value for appCode in 
> FCMapp.properties.", PwLoggingSubLevel.NONE);
>                                       throw e;
>                               }
>                               try{
>                                       if(key.equals("appName")) 
>                                               
> ConfigFCM.setPwSecAppName(prop.getProperty(key));
>                               }
>                               catch(NumberFormatException e){                 
>                                                 
>                                       
> Log.loggerError.error("InitSrvlt.init(): Invalid value for appName in 
> FCMapp.properties.", PwLoggingSubLevel.NONE);
>                                       throw e;
>                               }
>                               try{    
>                                       if(key.equals("generalUserPermCode")) 
>                                               
> ConfigFCM.setPwSecGenUserCode(Integer.parseInt(prop.getProperty(key)));
>                               }
>                               catch(NumberFormatException e){                 
>                  
>                                       
> Log.loggerError.error("InitSrvlt.init(): Invalid value for 
> generalUserPermCode in FCMapp.properties.", PwLoggingSubLevel.NONE);
>                                       throw e;
>                               }
>                               try{    
>                                       if(key.equals("adminUserPermCode")) 
>                                               
> ConfigFCM.setPwSecAdminUserCode(Integer.parseInt(prop.getProperty(key)));
>                               }
>                               catch(NumberFormatException e){                 
>                  
>                                       
> Log.loggerError.error("InitSrvlt.init(): Invalid value for adminUserPermCode 
> in FCMapp.properties.", PwLoggingSubLevel.NONE);
>                                       throw e;
>                               }                       
>                               if(key.equals("data_source")) 
>                                       
> ConfigFCM.setDataSource(prop.getProperty(key));
>                                       
>                       }
>                       
>                       
>                       //Initialize Web Tabs from xml file
>                       //initTabControl();             
>                       //initReportManager(); 
>                       
>                       if (Log.loggerDebug.isDebugEnabled())
>                               Log.loggerDebug.debug("InitSrvlt.init(): FCM 
> App proporties initialized successfully ", PwLoggingSubLevel.DEBUG);          
>              
>               } catch (IOException e) {                       
>                       Log.loggerError.error("InitSrvlt.init(): I/O Exception: 
> Can't read FCMapp.properties.", PwLoggingSubLevel.NONE,e);
>               }
>                        
>               
>               
>       }
>       
> } 

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to