Skip to content

ContainerInfo: avoid illegal group reference#2921

Merged
labkey-nicka merged 1 commit intodevelopfrom
fb_provisional_feedback
Mar 24, 2026
Merged

ContainerInfo: avoid illegal group reference#2921
labkey-nicka merged 1 commit intodevelopfrom
fb_provisional_feedback

Conversation

@labkey-nicka
Copy link
Contributor

@labkey-nicka labkey-nicka commented Mar 24, 2026

Rationale

When initializing a ContainerInfo.folder() in the RegistryUnidentifiedTest the tests encountered the following error:

java.lang.ExceptionInInitializerError
  at java.base/jdk.internal.misc.Unsafe.ensureClassInitialized0(Native Method)
  at java.base/jdk.internal.misc.Unsafe.ensureClassInitialized(Unsafe.java:1169)
  at java.base/jdk.internal.reflect.MethodHandleAccessorFactory.ensureClassInitialized(MethodHandleAccessorFactory.java:341)
  at java.base/jdk.internal.reflect.MethodHandleAccessorFactory.newConstructorAccessor(MethodHandleAccessorFactory.java:104)
  at java.base/jdk.internal.reflect.ReflectionFactory.newConstructorAccessor(ReflectionFactory.java:138)
  at java.base/java.lang.reflect.Constructor.acquireConstructorAccessor(Constructor.java:546)
  at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:496)
  at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:483)
  at org.labkey.test.BaseWebDriverTest$1.starting(BaseWebDriverTest.java:453)
  at org.labkey.junit.rules.TestWatcher$1.evaluate(TestWatcher.java:26)
  at org.labkey.junit.rules.TestWatcher$1.evaluate(TestWatcher.java:27)
  at org.junit.internal.runners.statements.FailOnTimeout$CallableStatement.call(FailOnTimeout.java:299)
  at org.junit.internal.runners.statements.FailOnTimeout$CallableStatement.call(FailOnTimeout.java:293)
  at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:328)
  at java.base/java.lang.Thread.run(Thread.java:1474)
Caused by: java.lang.IllegalArgumentException: Illegal group reference
  at java.base/java.util.regex.Matcher.appendExpandedReplacement(Matcher.java:1111)
  at java.base/java.util.regex.Matcher.appendReplacement(Matcher.java:1041)
  at java.base/java.util.regex.Matcher.replaceFirst(Matcher.java:1444)
  at java.base/java.lang.String.replaceFirst(String.java:3090)
  at org.labkey.test.params.ContainerInfo.getRandomName(ContainerInfo.java:44)
  at org.labkey.test.params.ContainerInfo.folder(ContainerInfo.java:54)
  at org.labkey.test.params.ContainerInfo.folder(ContainerInfo.java:64)
  at org.labkey.test.tests.biologics.registry.RegistryUnidentifiedTest.<clinit>(RegistryUnidentifiedTest.java:35)
  ... 15 more

This error only appears on TeamCity due to how random folder name generation is wired up. The fix is to quote the replacement string to avoid treating it like a regular expression.

Related Pull Requests

Changes

  • Use Matcher.quoteReplacement() in edge case when generating a random folder name that starts with "@"

@labkey-nicka labkey-nicka self-assigned this Mar 24, 2026
@labkey-nicka labkey-nicka merged commit 7ee2dd0 into develop Mar 24, 2026
7 checks passed
@labkey-nicka labkey-nicka deleted the fb_provisional_feedback branch March 24, 2026 18:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants