You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@velocity.apache.org by nb...@apache.org on 2008/07/29 00:12:38 UTC

svn commit: r680534 - in /velocity/engine/trunk/src/java/org/apache/velocity/runtime: VelocimacroFactory.java VelocimacroManager.java

Author: nbubna
Date: Mon Jul 28 15:12:36 2008
New Revision: 680534

URL: http://svn.apache.org/viewvc?rev=680534&view=rev
Log:
don't create VM proxies when we're just checking existence (VELOCITY-607)

Modified:
    velocity/engine/trunk/src/java/org/apache/velocity/runtime/VelocimacroFactory.java
    velocity/engine/trunk/src/java/org/apache/velocity/runtime/VelocimacroManager.java

Modified: velocity/engine/trunk/src/java/org/apache/velocity/runtime/VelocimacroFactory.java
URL: http://svn.apache.org/viewvc/velocity/engine/trunk/src/java/org/apache/velocity/runtime/VelocimacroFactory.java?rev=680534&r1=680533&r2=680534&view=diff
==============================================================================
--- velocity/engine/trunk/src/java/org/apache/velocity/runtime/VelocimacroFactory.java (original)
+++ velocity/engine/trunk/src/java/org/apache/velocity/runtime/VelocimacroFactory.java Mon Jul 28 15:12:36 2008
@@ -464,14 +464,8 @@
     {
         synchronized(this)
         {
-            /*
-             * first we check the locals to see if we have
-             * a local definition for this template
-             */
-            if (vmManager.get(vm, sourceTemplate) != null)
-                return true;
+            return vmManager.has(vm, sourceTemplate);
         }
-        return false;
     }
 
     /**

Modified: velocity/engine/trunk/src/java/org/apache/velocity/runtime/VelocimacroManager.java
URL: http://svn.apache.org/viewvc/velocity/engine/trunk/src/java/org/apache/velocity/runtime/VelocimacroManager.java?rev=680534&r1=680533&r2=680534&view=diff
==============================================================================
--- velocity/engine/trunk/src/java/org/apache/velocity/runtime/VelocimacroManager.java (original)
+++ velocity/engine/trunk/src/java/org/apache/velocity/runtime/VelocimacroManager.java Mon Jul 28 15:12:36 2008
@@ -160,6 +160,31 @@
     }
 
     /**
+     * determines if such a macro exists
+     * @param vmName Name of the Velocitymacro to look up.
+     * @param namespace Namespace in which to look up the macro.
+     */
+    public boolean has(final String vmName, final String namespace)
+    {
+        if (usingNamespaces(namespace))
+        {
+            Hashtable local = getNamespace(namespace, false);
+            if (local != null)
+            {
+                if (local.containsKey(vmName))
+                {
+                    return true;
+                }
+            }
+        }
+        if (globalNamespace.containsKey(vmName))
+        {
+            return true;
+        }
+        return false;
+    }
+
+    /**
      * gets a new living VelocimacroProxy object by the
      * name / source template duple
      * @param vmName Name of the VelocityMacro to look up.