"exists" selector tests true when unresolvable locationmap hint is passed
-------------------------------------------------------------------------

         Key: FOR-526
         URL: http://issues.apache.org/jira/browse/FOR-526
     Project: Forrest
        Type: Bug
  Components: Core operations  
    Versions: 0.7-dev    
 Environment: 0.7 locationmap branch
    Reporter: Tim Williams
    Priority: Minor


As described in the bottom mails on this thread:
http://marc.theaimsgroup.com/?t=111793036600001&r=1&w=2

Essentially, when a {lm:var} is passed to the test of an exists selector, if 
the locationmap "hint" doesn't exist in locationmap.xml, then LocationMapModule 
is properly resolving to null but the SourceExistsSelector resolves the URI to 
"$FORREST_HOME/main/webapp/".  A workaround is to put a null and empty string 
test in SourceExistsSelector.select() before the call to resolveURI().  This 
may very well be a bug outside of Forrest since the LocationMapModule is 
properly resolving non-existent hints to null.  
--tim

Here's the patch for the workaround.

Index: SourceExistsSelector.java
===================================================================
--- SourceExistsSelector.java   (revision 188836)
+++ SourceExistsSelector.java   (working copy)
@@ -76,6 +76,10 @@
     public boolean select(String uri, Map objectModel, Parameters parameters) {
         Source src = null;
         try {
+        
+                       if (uri == null || uri == "")
+                                       return false;
+                                       
             src = resolver.resolveURI(uri);
             if (src.exists()) {
                 return true;


-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira

Reply via email to