The ternary expression node was failing to generate the
necessary unboxing bytecode when the condition part
of the expression returned a boxed Boolean rather than
a primitive boolean.
Also fixed here is an IllegalAccessError that was
seen in the same expression due to generating a
CHECKCAST bytecode for a private type.
Issue: SPR-12271
@ -522,6 +521,19 @@ public class SpelCompilationCoverageTests extends AbstractExpressionTests {
@@ -522,6 +521,19 @@ public class SpelCompilationCoverageTests extends AbstractExpressionTests {
@ -1830,7 +1842,6 @@ public class SpelCompilationCoverageTests extends AbstractExpressionTests {
@@ -1830,7 +1842,6 @@ public class SpelCompilationCoverageTests extends AbstractExpressionTests {
assertEquals('c',resultC);
}
@Test
publicvoidcompoundExpression()throwsException{
Payloadpayload=newPayload();
@ -1914,7 +1925,18 @@ public class SpelCompilationCoverageTests extends AbstractExpressionTests {
@@ -1914,7 +1925,18 @@ public class SpelCompilationCoverageTests extends AbstractExpressionTests {
@ -2954,4 +2976,28 @@ public class SpelCompilationCoverageTests extends AbstractExpressionTests {
@@ -2954,4 +2976,28 @@ public class SpelCompilationCoverageTests extends AbstractExpressionTests {
publicTestClass9(inti){}
}
// These test classes simulate a pattern of public/private classes seen in Spring Security
// final class HttpServlet3RequestFactory implements HttpServletRequestFactory