Skip to content

Commit

Permalink
#4 - StringIndexOutOfBoundsException with multiple expressions
Browse files Browse the repository at this point in the history
  • Loading branch information
rbygrave committed Apr 8, 2020
1 parent e991f19 commit 8e47fb8
Show file tree
Hide file tree
Showing 3 changed files with 13 additions and 2 deletions.
2 changes: 1 addition & 1 deletion src/main/java/io/avaje/config/load/CoreExpressionEval.java
Original file line number Diff line number Diff line change
Expand Up @@ -159,7 +159,7 @@ void moveToStart() {

void parseForDefault() {
int colonPos = original.indexOf(':', start);
if (colonPos > start) {
if (colonPos > start && colonPos < end) {
expression = original.substring(start + START.length(), colonPos);
defaultValue = original.substring(colonPos + 1, end);
} else {
Expand Down
7 changes: 7 additions & 0 deletions src/test/java/io/avaje/config/load/LoaderTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -64,12 +64,19 @@ public void loadYaml() {
@Test
public void loadProperties() {

System.setProperty("eureka.instance.hostname", "host1");
System.setProperty("server.port","9876");

Loader loader = new Loader();
loader.loadProperties("test-properties/one.properties", RESOURCE);
Properties properties = loader.eval();

assertThat(properties.getProperty("hello")).isEqualTo("there");
assertThat(properties.getProperty("name")).isEqualTo("Rob");
assertThat(properties.getProperty("statusPageUrl")).isEqualTo("https://host1:9876/status");
assertThat(properties.getProperty("statusPageUrl2")).isEqualTo("https://aaa:9876/status2");
assertThat(properties.getProperty("statusPageUrl3")).isEqualTo("https://aaa:89/status3");
assertThat(properties.getProperty("statusPageUrl4")).isEqualTo("https://there:9876/name/Rob");
}

@Test
Expand Down
6 changes: 5 additions & 1 deletion src/test/resources/test-properties/one.properties
Original file line number Diff line number Diff line change
@@ -1,4 +1,8 @@
hello=there
name=${some:Rob}
db.driver=${other:com.h2database.Driver}
someOne=before|${app.one}|after
someOne=before|${app.one}|after
statusPageUrl=https://${eureka.instance.hostname}:${server.port}/status
statusPageUrl2=https://${eureka.instance.notThere:aaa}:${server.port}/status2
statusPageUrl3=https://${eureka.instance.notThere:aaa}:${server.bPort:89}/status3
statusPageUrl4=https://${hello}:${server.port:89}/name/${some:Rob}

0 comments on commit 8e47fb8

Please sign in to comment.