This is an automated email from the ASF dual-hosted git repository.

juanpablo pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/jspwiki.git

commit b10f148f1718ae19dd2ee7111d7a0020ad1b9795
Author: Alex O'Ree <alexo...@apache.org>
AuthorDate: Sat Mar 30 12:24:27 2024 -0400

    JSPWIKI-1188 additional test coverage
---
 .../src/main/java/org/apache/wiki/util/PropertyReader.java    |  2 +-
 .../test/java/org/apache/wiki/util/PropertyReaderTest.java    | 11 ++++++++++-
 2 files changed, 11 insertions(+), 2 deletions(-)

diff --git 
a/jspwiki-util/src/main/java/org/apache/wiki/util/PropertyReader.java 
b/jspwiki-util/src/main/java/org/apache/wiki/util/PropertyReader.java
index 70daf8325..9bb591a61 100644
--- a/jspwiki-util/src/main/java/org/apache/wiki/util/PropertyReader.java
+++ b/jspwiki-util/src/main/java/org/apache/wiki/util/PropertyReader.java
@@ -302,7 +302,7 @@ public final class PropertyReader {
             boolean subsitution=false;
             while ( propertyValue.contains( "${" ) && propertyValue.contains( 
"}" ) ) {
                 int start = propertyValue.indexOf( "${" );
-                int end = propertyValue.indexOf( "}" );
+                int end = propertyValue.indexOf( "}", start );
                 if ( start == -1 || end == -1 ) break;
                 if ( end > start ) {
                     String substring = propertyValue.substring( start, end 
).replace( "${", "" ).replace( "}", "" );
diff --git 
a/jspwiki-util/src/test/java/org/apache/wiki/util/PropertyReaderTest.java 
b/jspwiki-util/src/test/java/org/apache/wiki/util/PropertyReaderTest.java
index f126b10f6..c20e1feae 100644
--- a/jspwiki-util/src/test/java/org/apache/wiki/util/PropertyReaderTest.java
+++ b/jspwiki-util/src/test/java/org/apache/wiki/util/PropertyReaderTest.java
@@ -71,10 +71,19 @@ public class PropertyReaderTest {
      @Test
     public void testSystemPropertyInjection() {
         System.setProperty("FOO", "BAR");
+        System.setProperty("TEST", "VAL");
         final Properties p = new Properties();
         p.put( "jspwiki.fileSystemProvider.pageDir", "${FOO}/www/" );
+        p.put( "jspwiki.fileSystemProvider.workDir", "${FOO}/www/${TEST}" );
+        p.put( "jspwiki.fileSystemProvider.badVal1", "${FOO/www/${TEST}" );
+        p.put( "jspwiki.fileSystemProvider.badVal2", "}${FOO/www/${TEST}" );
+        p.put( "jspwiki.fileSystemProvider.badVal3", "${NONEXISTANTPROP}" );
         PropertyReader.expandVars( p );
-        Assertions.assertTrue( p.getProperty( 
"jspwiki.fileSystemProvider.pageDir" ).equals( "BAR/www/" ) );
+        Assertions.assertEquals( "BAR/www/", p.getProperty( 
"jspwiki.fileSystemProvider.pageDir" ) );
+        Assertions.assertEquals( "BAR/www/VAL", p.getProperty( 
"jspwiki.fileSystemProvider.workDir" ) );
+        Assertions.assertEquals( "${FOO/www/${TEST}", p.getProperty( 
"jspwiki.fileSystemProvider.badVal1" ) );
+        Assertions.assertEquals( "}${FOO/www/${TEST}", p.getProperty( 
"jspwiki.fileSystemProvider.badVal2" ) );
+        Assertions.assertEquals( "${NONEXISTANTPROP}", p.getProperty( 
"jspwiki.fileSystemProvider.badVal3" ) );
     }
 
     @Test

Reply via email to