You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@commons.apache.org by di...@apache.org on 2004/12/10 07:25:50 UTC

cvs commit: jakarta-commons/jelly/jelly-tags/util/src/java/org/apache/commons/jelly/tags/util PropertiesTag.java

dion        2004/12/09 22:25:50

  Modified:    jelly/jelly-tags/util/src/test/org/apache/commons/jelly/tags/util
                        suite.jelly
               jelly/jelly-tags/util/src/java/org/apache/commons/jelly/tags/util
                        PropertiesTag.java
  Added:       jelly/jelly-tags/util/src/test/org/apache/commons/jelly/tags/util
                        deletable.properties
  Log:
  Jelly-172. properties tag doesn't close files
  
  Revision  Changes    Path
  1.7       +27 -0     jakarta-commons/jelly/jelly-tags/util/src/test/org/apache/commons/jelly/tags/util/suite.jelly
  
  Index: suite.jelly
  ===================================================================
  RCS file: /home/cvs/jakarta-commons/jelly/jelly-tags/util/src/test/org/apache/commons/jelly/tags/util/suite.jelly,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- suite.jelly	26 Oct 2004 16:42:56 -0000	1.6
  +++ suite.jelly	10 Dec 2004 06:25:49 -0000	1.7
  @@ -33,6 +33,7 @@
           
           <test:assert test="${tokens.size() == 4}"/>
   -->
  +
               
           <test:assertEquals expected="Test1" actual="${tokens[0]}"/>
           <test:assertEquals expected="Test2" actual="${tokens[1]}"/>
  @@ -64,6 +65,7 @@
         <util:available file="${base.dir}/project.xml">
             <j:set var="flag" value="found"/>
         </util:available>
  +
           
         <test:assertEquals expected="found" actual="${flag}">
             Should have found the file via the file $${base.dir}/project.xml with base.dir=${base.dir}
  @@ -90,6 +92,7 @@
         </test:assertEquals>
           
         <util:available uri="doesNotExist.xml">
  +
             <test:fail>The URI doesNotExist.xml should not exist!</test:fail>
         </util:available>
           
  @@ -101,6 +104,7 @@
       <test:assertEquals expected="A/B" actual="${testString}">
         Should have replaced a back slash with a forward one
       </test:assertEquals>
  +
       
       <j:set var="testString2"><util:replace oldChar="\" newChar="/">A\B</util:replace></j:set>
       <test:assertEquals expected="A/B" actual="${testString2}">
  @@ -115,6 +119,7 @@
       </test:assertEquals>
   
       <util:replace oldChar="ABC" newChar="123" value="CBABC" var="testString4" />
  +
       <test:assertEquals expected="CB1BC" actual="${testString4}">
         Should have only substituted the 1 for the A, since the
         old/newChar attributes were used.
  @@ -144,7 +149,25 @@
         Loaded properties value ${props}
       
     </test:case>
  +
     
  +  <test:case name="testPropertiesAreNotLocked">
  +      <j:set var="filename" value="${basedir}/target/test-classes/org/apache/commons/jelly/tags/util/deletable.properties"/>
  +      
  +      <util:properties file="${filename}"/>
  +      
  +      <j:new var="f" className="java.io.File">
  +        <j:arg type="java.lang.String" value="${filename}"/>
  +      </j:new>        
  +      <j:mute>
  +        ${f.delete()}
  +      </j:mute>
  +    
  +      <test:assertFalse test="${f.exists()}" >The file ${name} should no longer exist</test:assertFalse>
  +
  +  </test:case>
  +    
  +
     <test:case name="testFileTag">
         <util:file name="${basedir}/src/test/org/apache/commons/jelly/tags/util/suite.jelly" 
           var="suite" />
  @@ -154,6 +177,7 @@
     <test:case name="testSortBasic">
       <j:new var="testCollection" className="java.util.ArrayList"/>
       <j:mute>
  +
       	${testCollection.add('Hello')}
       	${testCollection.add('World')}
       	${testCollection.add('Jelly')}
  @@ -166,6 +190,7 @@
     
     <test:case name="testSortBean">
       <j:new var="testCollection" className="java.util.ArrayList"/>
  +
       <j:useBean var="cust1" class="org.apache.commons.jelly.util.Customer" city="Sydney" location="Australia" name="Fred Nerk"/>
       <j:useBean var="cust2" class="org.apache.commons.jelly.util.Customer" city="Melbourne" location="Australia" name="Joe Nerk"/>
       <j:useBean var="cust3" class="org.apache.commons.jelly.util.Customer" city="San Francisco" location="U.S.A." name="Colette Cool"/>
  @@ -177,6 +202,7 @@
       <!-- test sorting by the name property -->
       <util:sort var="sortedByName" items="${testCollection}" property="name"/>
       <test:assertEquals expected="Colette Cool" actual="${sortedByName[0].name}"/>
  +
       <test:assertEquals expected="Fred Nerk" actual="${sortedByName[1].name}"/>
       <test:assertEquals expected="Joe Nerk" actual="${sortedByName[2].name}"/>
   
  @@ -187,5 +213,6 @@
       <test:assertEquals expected="U.S.A." actual="${sortedByLocation[2].location}"/>
     
     </test:case>
  +
       
   </test:suite>
  
  
  
  1.1                  jakarta-commons/jelly/jelly-tags/util/src/test/org/apache/commons/jelly/tags/util/deletable.properties
  
  Index: deletable.properties
  ===================================================================
  # Copyright 2002-2004 The Apache Software Foundation
  #
  # Licensed under the Apache License, Version 2.0 (the "License");
  # you may not use this file except in compliance with the License.
  # You may obtain a copy of the License at
  #
  #     http://www.apache.org/licenses/LICENSE-2.0
  #
  # Unless required by applicable law or agreed to in writing, software
  # distributed under the License is distributed on an "AS IS" BASIS,
  # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  # See the License for the specific language governing permissions and
  # limitations under the License.
  
  foo=ABC
  
  bar=XYZ
  
  
  1.7       +11 -2     jakarta-commons/jelly/jelly-tags/util/src/java/org/apache/commons/jelly/tags/util/PropertiesTag.java
  
  Index: PropertiesTag.java
  ===================================================================
  RCS file: /home/cvs/jakarta-commons/jelly/jelly-tags/util/src/java/org/apache/commons/jelly/tags/util/PropertiesTag.java,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- PropertiesTag.java	9 Sep 2004 12:22:43 -0000	1.6
  +++ PropertiesTag.java	10 Dec 2004 06:25:50 -0000	1.7
  @@ -75,7 +75,16 @@
           } catch (IOException e) {
               throw new JellyTagException("properties tag could not load from file",e);
           }
  -
  +        finally {
  +            if (is != null) {
  +                try {
  +                    is.close();
  +                } catch (IOException ioe) {
  +                    ;
  +                }   
  +            }
  +        }           
  +        
           if (var != null) {
               context.setVariable(var, props);
           }
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-dev-help@jakarta.apache.org