Author: nbubna
Date: Mon Sep 19 11:54:29 2005
New Revision: 290237

URL: http://svn.apache.org/viewcvs?rev=290237&view=rev
Log:
validate tool info before adding it (part of Henning's patch for Issue 
VELOCITY-375

Modified:
    
jakarta/velocity/tools/trunk/src/java/org/apache/velocity/tools/view/servlet/ServletToolboxManager.java

Modified: 
jakarta/velocity/tools/trunk/src/java/org/apache/velocity/tools/view/servlet/ServletToolboxManager.java
URL: 
http://svn.apache.org/viewcvs/jakarta/velocity/tools/trunk/src/java/org/apache/velocity/tools/view/servlet/ServletToolboxManager.java?rev=290237&r1=290236&r2=290237&view=diff
==============================================================================
--- 
jakarta/velocity/tools/trunk/src/java/org/apache/velocity/tools/view/servlet/ServletToolboxManager.java
 (original)
+++ 
jakarta/velocity/tools/trunk/src/java/org/apache/velocity/tools/view/servlet/ServletToolboxManager.java
 Mon Sep 19 11:54:29 2005
@@ -94,8 +94,8 @@
  * @author <a href="mailto:[EMAIL PROTECTED]">Gabriel Sidler</a>
  * @author <a href="mailto:[EMAIL PROTECTED]">Nathan Bubna</a>
  * @author <a href="mailto:[EMAIL PROTECTED]">Geir Magnusson Jr.</a>
- *
- * @version $Id: ServletToolboxManager.java,v 1.16 2004/11/11 06:26:27 nbubna 
Exp $
+ * @author <a href="mailto:[EMAIL PROTECTED]">Henning P. Schmiedehausen</a>
+ * @version $Id$
  */
 public class ServletToolboxManager extends XMLToolboxManager
 {
@@ -281,43 +281,53 @@
      */
     public void addTool(ToolInfo info)
     {
-        if (info instanceof DataInfo)
+        if (validateToolInfo(info))
         {
-            //add static data to the appTools map
-            appTools.put(info.getKey(), info.getInstance(null));
-        }
-        else if (info instanceof ServletToolInfo)
-        {
-            ServletToolInfo sti = (ServletToolInfo)info;
-            
-            if (ViewContext.REQUEST.equalsIgnoreCase(sti.getScope()))
+            if (info instanceof ServletToolInfo)
             {
-                requestToolInfo.add(sti);
-            }
-            else if (ViewContext.SESSION.equalsIgnoreCase(sti.getScope()))
-            {
-                sessionToolInfo.add(sti);
-            }
-            else if (ViewContext.APPLICATION.equalsIgnoreCase(sti.getScope()))
-            {
-                /* add application scoped tools to appTools and
-                 * initialize them with the ServletContext */
-                appTools.put(sti.getKey(), sti.getInstance(servletContext));
+                ServletToolInfo sti = (ServletToolInfo)info;
+                
+                if (ViewContext.REQUEST.equalsIgnoreCase(sti.getScope()))
+                {
+                    requestToolInfo.add(sti);
+                    return;
+                }
+                else if (ViewContext.SESSION.equalsIgnoreCase(sti.getScope()))
+                {
+                    sessionToolInfo.add(sti);
+                    return;
+                }
+                else if 
(ViewContext.APPLICATION.equalsIgnoreCase(sti.getScope()))
+                {
+                    /* add application scoped tools to appTools and
+                     * initialize them with the ServletContext */
+                    appTools.put(sti.getKey(), 
sti.getInstance(servletContext));
+                    return;
+                }
+                else
+                {
+                    LOG.warn("Unknown scope '" + sti.getScope() + "' - " + 
+                            sti.getKey() + " will be request scoped.");
+                }
             }
             else
             {
-                LOG.warn("Unknown scope '" + sti.getScope() + "' - " + 
-                         sti.getKey() + " will be request scoped.");
-                requestToolInfo.add(sti);
+                //default is request scope
+                requestToolInfo.add(info);
             }
         }
-        else
+    }
+
+    /**
+     * Overrides XMLToolboxManager to put data into appTools map
+     */
+    public void addData(ToolInfo info)
+    {
+        if (validateToolInfo(info))
         {
-            //default is request scope
-            requestToolInfo.add(info);
+            appTools.put(info.getKey(), info.getInstance(null));
         }
     }
-
 
     /**
      * Overrides XMLToolboxManager to handle the separate



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

Reply via email to