-
Bug
-
Resolution: Fixed
-
Minor
-
None
It appears that varargs constructors don't work for enums. The following SandboxInterceptorTest test case demonstrates this:
@Test public void enumWithVarargs() throws Exception { String script = "enum Thing {\n" + " FIRST(\"The first thing\"),\n" + " String[] descriptions;\n" + " public Thing(String... descriptions) {\n" + " this.descriptions = descriptions;\n" + " }\n" + "}\n" + "Thing.values()[0].descriptions[0]\n"; String expected = "The first thing"; assertEvaluate(new GenericWhitelist(), expected, script); }
The result is:
org.junit.ComparisonFailure: Expected :The first thing Actual :T
It appears that something goes wrong when building the argument array, as the following testcase triggers an ArrayIndexOutOfBoundsException:
@Test public void enumWithStringAndVarargs() throws Exception { String script = "enum Thing {\n" + " FIRST(\"The first thing\"),\n" + " String description;\n" + " public Thing(String description, int... unused) {\n" + " this.description = description;\n" + " }\n" + "}\n" + "Thing.values()[0].description\n"; String expected = "The first thing"; assertEvaluate(new GenericWhitelist(), expected, script); }
- duplicates
-
JENKINS-33023 Enums are not supported in sandbox
-
- Reopened
-
- links to
[JENKINS-35294] Varags arguments to enum constructors don't work
Link |
New:
This issue duplicates |
Resolution | New: Duplicate [ 3 ] | |
Status | Original: Open [ 1 ] | New: Resolved [ 5 ] |
Link |
Original:
This issue duplicates |
Link | New: This issue duplicates JENKINS-33023 [ JENKINS-33023 ] |
Resolution | Original: Duplicate [ 3 ] | |
Status | Original: Resolved [ 5 ] | New: Reopened [ 4 ] |
Attachment | New: 0001-JENKINS-35294-Add-test-cases.patch [ 32918 ] |
Epic Link | New: JENKINS-35390 [ 171183 ] |
Workflow | Original: JNJira [ 171538 ] | New: JNJira + In-Review [ 186371 ] |
Assignee | Original: Jesse Glick [ jglick ] | New: Andrew Bayer [ abayer ] |
Remote Link | New: This issue links to "PR #151 (Web Link)" [ 17698 ] |