You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@groovy.apache.org by em...@apache.org on 2021/09/28 14:48:06 UTC
[groovy] branch master updated: GROOVY-10184: fix for NPE
This is an automated email from the ASF dual-hosted git repository.
emilles pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/groovy.git
The following commit(s) were added to refs/heads/master by this push:
new 5af35b2 GROOVY-10184: fix for NPE
5af35b2 is described below
commit 5af35b26264de7146b126974d4398616bb71a3aa
Author: Eric Milles <er...@thomsonreuters.com>
AuthorDate: Tue Sep 28 09:47:54 2021 -0500
GROOVY-10184: fix for NPE
---
.../control/customizers/SecureASTCustomizer.java | 2 +-
.../customizers/SecureASTCustomizerTest.groovy | 32 ++++++++++++++--------
2 files changed, 21 insertions(+), 13 deletions(-)
diff --git a/src/main/java/org/codehaus/groovy/control/customizers/SecureASTCustomizer.java b/src/main/java/org/codehaus/groovy/control/customizers/SecureASTCustomizer.java
index 8d60be4..ac3dbda 100644
--- a/src/main/java/org/codehaus/groovy/control/customizers/SecureASTCustomizer.java
+++ b/src/main/java/org/codehaus/groovy/control/customizers/SecureASTCustomizer.java
@@ -1013,7 +1013,7 @@ public class SecureASTCustomizer extends CompilationCustomizer {
}
protected void assertStaticImportIsAllowed(final String member, final String className) {
- final String fqn = member.equals(className) ? member : className + "." + member;
+ final String fqn = className.equals(member) ? className : className + "." + member;
if (allowedStaticImports != null && !allowedStaticImports.contains(fqn)) {
if (allowedStaticStarImports != null) {
// we should now check if the import is in the star imports
diff --git a/src/test/org/codehaus/groovy/control/customizers/SecureASTCustomizerTest.groovy b/src/test/org/codehaus/groovy/control/customizers/SecureASTCustomizerTest.groovy
index 973c00b..1edb459 100644
--- a/src/test/org/codehaus/groovy/control/customizers/SecureASTCustomizerTest.groovy
+++ b/src/test/org/codehaus/groovy/control/customizers/SecureASTCustomizerTest.groovy
@@ -357,7 +357,7 @@ final class SecureASTCustomizerTest {
}
@Test
- void testAllowedIndirectStarImports() {
+ void testAllowedIndirectStarImports1() {
customizer.allowedStarImports = ['java.util.*']
customizer.indirectImportCheckEnabled = true
def shell = new GroovyShell(configuration)
@@ -380,6 +380,25 @@ final class SecureASTCustomizerTest {
}
}
+ @Test // GROOVY-8135
+ void testAllowedIndirectStarImports2() {
+ customizer.allowedStarImports = ['java.lang']
+ customizer.indirectImportCheckEnabled = true
+ def shell = new GroovyShell(configuration)
+ shell.evaluate('Object object = new Object()')
+ shell.evaluate('Object object = new Object(); object.hashCode()')
+ shell.evaluate('Object[] array = new Object[0]; array.size()')
+ shell.evaluate('Object[][] array = new Object[0][0]; array.size()')
+ }
+
+ @Test // GROOVY-10184
+ void testAllowedIndirectStarImports3() {
+ customizer.allowedStarImports = ['java.lang.*']
+ customizer.indirectImportCheckEnabled = true
+ def shell = new GroovyShell(configuration)
+ shell.evaluate('def obj = new Object(); def method = "hashCode"; obj."${method}"()')
+ }
+
@Test
void testAllowedStaticImports() {
customizer.allowedStaticImports = ['java.lang.Math.PI']
@@ -601,15 +620,4 @@ final class SecureASTCustomizerTest {
'''
}
}
-
- @Test // GROOVY-8135
- void testStarImportsAllowedListWithIndirectImportCheckEnabled() {
- customizer.indirectImportCheckEnabled = true
- customizer.allowedStarImports = ['java.lang']
- def shell = new GroovyShell(configuration)
- shell.evaluate('Object object = new Object()')
- shell.evaluate('Object object = new Object(); object.hashCode()')
- shell.evaluate('Object[] array = new Object[0]; array.size()')
- shell.evaluate('Object[][] array = new Object[0][0]; array.size()')
- }
}