You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@groovy.apache.org by su...@apache.org on 2022/08/28 13:22:27 UTC
[groovy] branch danielsun/fix-clone-array-based-on-groovy10730pr updated: Fix illegal access issues in `StreamingTemplateEngineTest`
This is an automated email from the ASF dual-hosted git repository.
sunlan pushed a commit to branch danielsun/fix-clone-array-based-on-groovy10730pr
in repository https://gitbox.apache.org/repos/asf/groovy.git
The following commit(s) were added to refs/heads/danielsun/fix-clone-array-based-on-groovy10730pr by this push:
new 7e3812d1c3 Fix illegal access issues in `StreamingTemplateEngineTest`
7e3812d1c3 is described below
commit 7e3812d1c39df0207df9c20e230afa797530c8cf
Author: Daniel Sun <su...@apache.org>
AuthorDate: Sun Aug 28 21:21:39 2022 +0800
Fix illegal access issues in `StreamingTemplateEngineTest`
---
.../groovy/text/StreamingTemplateEngineTest.groovy | 80 ++++++++++++----------
1 file changed, 43 insertions(+), 37 deletions(-)
diff --git a/subprojects/groovy-templates/src/test/groovy/groovy/text/StreamingTemplateEngineTest.groovy b/subprojects/groovy-templates/src/test/groovy/groovy/text/StreamingTemplateEngineTest.groovy
index 78b0ed0b47..94e1273ac4 100644
--- a/subprojects/groovy-templates/src/test/groovy/groovy/text/StreamingTemplateEngineTest.groovy
+++ b/subprojects/groovy-templates/src/test/groovy/groovy/text/StreamingTemplateEngineTest.groovy
@@ -23,6 +23,8 @@ import org.junit.Test
import java.util.concurrent.ConcurrentHashMap
+import static groovy.test.GroovyAssert.assertScript
+
class StreamingTemplateEngineTest {
TemplateEngine engine
Map binding
@@ -463,48 +465,52 @@ class StreamingTemplateEngineTest {
@Test
void reuseClassLoader1() {
- final reuseOption = 'groovy.StreamingTemplateEngine.reuseClassLoader'
- System.setProperty(reuseOption, 'true')
+ assertScript '''
+ final reuseOption = 'groovy.StreamingTemplateEngine.reuseClassLoader'
+ System.setProperty(reuseOption, 'true')
- try {
- // reload class to initialize static field from the beginning
- def steClass = reloadClass('groovy.text.StreamingTemplateEngine')
-
- GroovyClassLoader gcl = new GroovyClassLoader()
- def engine = steClass.newInstance(gcl)
- assert 'Hello, Daniel' == engine.createTemplate('Hello, ${name}').make([name: 'Daniel']).toString()
- assert gcl.loadedClasses.length > 0
- def cloned = gcl.loadedClasses.clone()
- assert 'Hello, Paul' == engine.createTemplate('Hello, ${name}').make([name: 'Paul']).toString()
- assert cloned == gcl.loadedClasses
- } finally {
- System.clearProperty(reuseOption)
- }
+ try {
+ // reload class to initialize static field from the beginning
+ def steClass = groovy.text.StreamingTemplateEngineTest.reloadClass('groovy.text.StreamingTemplateEngine')
+
+ GroovyClassLoader gcl = new GroovyClassLoader()
+ def engine = steClass.newInstance(gcl)
+ assert 'Hello, Daniel' == engine.createTemplate('Hello, ${name}').make([name: 'Daniel']).toString()
+ assert gcl.loadedClasses.length > 0
+ def cloned = gcl.loadedClasses.clone()
+ assert 'Hello, Paul' == engine.createTemplate('Hello, ${name}').make([name: 'Paul']).toString()
+ assert cloned == gcl.loadedClasses
+ } finally {
+ System.clearProperty(reuseOption)
+ }
+ '''
}
@Test
void reuseClassLoader2() {
- final reuseOption = 'groovy.StreamingTemplateEngine.reuseClassLoader'
- System.setProperty(reuseOption, 'true')
-
- try {
- // reload class to initialize static field from the beginning
- def steClass = reloadClass('groovy.text.StreamingTemplateEngine')
-
- GroovyClassLoader gcl = new GroovyClassLoader()
- def engine = steClass.newInstance(gcl)
- assert 'Hello, Daniel' == engine.createTemplate('Hello, ${name}').make([name: 'Daniel']).toString()
- assert gcl.loadedClasses.length > 0
- def cloned = gcl.loadedClasses.clone()
- engine = steClass.newInstance(gcl)
- assert 'Hello, Paul' == engine.createTemplate('Hello, ${name}').make([name: 'Paul']).toString()
- assert cloned == gcl.loadedClasses
- } finally {
- System.clearProperty(reuseOption)
- }
- }
-
- private static Class reloadClass(String className) {
+ assertScript '''
+ final reuseOption = 'groovy.StreamingTemplateEngine.reuseClassLoader'
+ System.setProperty(reuseOption, 'true')
+
+ try {
+ // reload class to initialize static field from the beginning
+ def steClass = groovy.text.StreamingTemplateEngineTest.reloadClass('groovy.text.StreamingTemplateEngine')
+
+ GroovyClassLoader gcl = new GroovyClassLoader()
+ def engine = steClass.newInstance(gcl)
+ assert 'Hello, Daniel' == engine.createTemplate('Hello, ${name}').make([name: 'Daniel']).toString()
+ assert gcl.loadedClasses.length > 0
+ def cloned = gcl.loadedClasses.clone()
+ engine = steClass.newInstance(gcl)
+ assert 'Hello, Paul' == engine.createTemplate('Hello, ${name}').make([name: 'Paul']).toString()
+ assert cloned == gcl.loadedClasses
+ } finally {
+ System.clearProperty(reuseOption)
+ }
+ '''
+ }
+
+ static Class reloadClass(String className) {
def clazz =
new GroovyClassLoader() {
private final Map<String, Class> loadedClasses = new ConcurrentHashMap<String, Class>()