amyroh      2004/04/29 17:44:51

  Modified:    webapps/admin/WEB-INF/classes/org/apache/webapp/admin/resources
                        SaveDataSourceAction.java
  Log:
  Check for encoded JNDI name for adding DataSource.
  
  Revision  Changes    Path
  1.10      +19 -4     
jakarta-tomcat-catalina/webapps/admin/WEB-INF/classes/org/apache/webapp/admin/resources/SaveDataSourceAction.java
  
  Index: SaveDataSourceAction.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-tomcat-catalina/webapps/admin/WEB-INF/classes/org/apache/webapp/admin/resources/SaveDataSourceAction.java,v
  retrieving revision 1.9
  retrieving revision 1.10
  diff -u -r1.9 -r1.10
  --- SaveDataSourceAction.java 27 Feb 2004 14:59:04 -0000      1.9
  +++ SaveDataSourceAction.java 30 Apr 2004 00:44:50 -0000      1.10
  @@ -18,7 +18,7 @@
   package org.apache.webapp.admin.resources;
   
   import java.io.IOException;
  -import java.net.URLDecoder;
  +import java.net.URLEncoder;
   import java.util.ArrayList;
   import java.util.Iterator;
   import java.util.Locale;
  @@ -133,6 +133,8 @@
               Object params[] = new Object[2];
               params[0] = dataSourceForm.getJndiName();
               params[1] = ResourceUtils.DATASOURCE_CLASS;
  +            String encodedJndiName = URLEncoder.encode(params[0].toString(), 
  +                                                       "UTF-8");
   
               String resourcetype = dataSourceForm.getResourcetype();
               String path = dataSourceForm.getPath();
  @@ -140,6 +142,7 @@
               String domain = dataSourceForm.getDomain();
   
               ObjectName oname = null;
  +            ObjectName encodedOName = null;
   
               try {
               
  @@ -148,15 +151,27 @@
                                               ResourceUtils.GLOBAL_TYPE + 
                                               ",class=" + params[1] + 
                                               ",name=" + params[0]);
  +                    encodedOName = new ObjectName( domain + 
  +                                            ResourceUtils.RESOURCE_TYPE + 
  +                                            ResourceUtils.GLOBAL_TYPE + 
  +                                            ",class=" + params[1] + 
  +                                            ",name=" + encodedJndiName);
                   } else if (resourcetype.equals("Context")) {
                       oname = new ObjectName( domain + ResourceUtils.RESOURCE_TYPE + 
                                               ResourceUtils.CONTEXT_TYPE + 
                                               ",path=" + path + ",host=" + host + 
                                               ",class=" + params[1] + 
                                               ",name=" + params[0]);
  +                    encodedOName = new ObjectName( domain + 
  +                                            ResourceUtils.RESOURCE_TYPE + 
  +                                            ResourceUtils.CONTEXT_TYPE + 
  +                                            ",path=" + path + ",host=" + host + 
  +                                            ",class=" + params[1] + 
  +                                            ",name=" + encodedJndiName);
                   }
  -                    
  -                if (mserver.isRegistered(oname)) {
  +                
  +                if (mserver.isRegistered(oname) || 
  +                                        mserver.isRegistered(encodedOName)) {
                       ActionErrors errors = new ActionErrors();
                       errors.add("jndiName",
                                  new ActionError("resources.invalid.name"));
  
  
  

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

Reply via email to