Skip to content

Commit 3d3d54e

Browse files
committed
Avoid generating fields names with reserved substitution format patterns
e.g. ":Date" or ":First"
1 parent f46ec8a commit 3d3d54e

1 file changed

Lines changed: 11 additions & 0 deletions

File tree

src/org/labkey/test/util/TestDataGenerator.java

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -580,6 +580,17 @@ public static String randomFieldName(@NotNull String part, int numStartChars, in
580580
String chars = ALL_ILLEGAL_QUERY_KEY_CHARACTERS + " %()=+-[]_|*`'\":;<>?!@#^" + NON_LATIN_STRING;// + WIDE_PLACEHOLDER ;
581581

582582
String randomFieldName = randomName(part, numStartChars, numEndChars, chars, exclusion);
583+
584+
// Avoid generating fields names with reserved substitution format patterns. e.g. ":Date" or ":First"
585+
if (numStartChars > 0 && randomFieldName.charAt(numStartChars - 1) == ':' &&
586+
StringUtils.isAlpha(part.substring(0, 4))) // The shortest pattern is four characters (see org.labkey.api.util.SubstitutionFormat.getFormatNames)
587+
{
588+
String regenExclusion = Objects.requireNonNullElse(exclusion, "") + ":";
589+
randomFieldName = randomFieldName.substring(0, numStartChars - 1) +
590+
randomString(1, regenExclusion, chars) +
591+
randomFieldName.substring(numStartChars + 1);
592+
}
593+
583594
TestLogger.log("Generated random field name: " + randomFieldName);
584595
return randomFieldName;
585596
}

0 commit comments

Comments
 (0)