Repository: groovy Updated Branches: refs/heads/master 12ce9eb11 -> 127345371
Increase buffer size, cache size and initial capacity Project: http://git-wip-us.apache.org/repos/asf/groovy/repo Commit: http://git-wip-us.apache.org/repos/asf/groovy/commit/12734537 Tree: http://git-wip-us.apache.org/repos/asf/groovy/tree/12734537 Diff: http://git-wip-us.apache.org/repos/asf/groovy/diff/12734537 Branch: refs/heads/master Commit: 1273453718aa0cceb4f50a1ab97d855cfd306e04 Parents: 12ce9eb Author: sunlan <[email protected]> Authored: Tue Jan 9 15:47:41 2018 +0800 Committer: sunlan <[email protected]> Committed: Tue Jan 9 15:49:14 2018 +0800 ---------------------------------------------------------------------- src/main/groovy/groovy/util/ProxyGenerator.java | 2 +- .../groovy/reflection/GeneratedMetaMethod.java | 142 ------------------- .../groovy/tools/javac/JavaStubGenerator.java | 2 +- .../groovy/inspect/swingui/AstBrowser.groovy | 3 +- 4 files changed, 4 insertions(+), 145 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/groovy/blob/12734537/src/main/groovy/groovy/util/ProxyGenerator.java ---------------------------------------------------------------------- diff --git a/src/main/groovy/groovy/util/ProxyGenerator.java b/src/main/groovy/groovy/util/ProxyGenerator.java index 8f165f7..04d98d6 100644 --- a/src/main/groovy/groovy/util/ProxyGenerator.java +++ b/src/main/groovy/groovy/util/ProxyGenerator.java @@ -64,7 +64,7 @@ public class ProxyGenerator { private boolean debug = false; private boolean emptyMethods = false; - private static final Integer GROOVY_ADAPTER_CACHE_DEFAULT_SIZE = Integer.getInteger("groovy.adapter.cache.default.size", 16); + private static final Integer GROOVY_ADAPTER_CACHE_DEFAULT_SIZE = Integer.getInteger("groovy.adapter.cache.default.size", 64); public static final ProxyGenerator INSTANCE = new ProxyGenerator(); // TODO should we make ProxyGenerator singleton? http://git-wip-us.apache.org/repos/asf/groovy/blob/12734537/src/main/java/org/codehaus/groovy/reflection/GeneratedMetaMethod.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/codehaus/groovy/reflection/GeneratedMetaMethod.java b/src/main/java/org/codehaus/groovy/reflection/GeneratedMetaMethod.java index 7af9e5e..23a0db7 100644 --- a/src/main/java/org/codehaus/groovy/reflection/GeneratedMetaMethod.java +++ b/src/main/java/org/codehaus/groovy/reflection/GeneratedMetaMethod.java @@ -176,148 +176,6 @@ public abstract class GeneratedMetaMethod extends MetaMethod { } } - /* FIXME - It seems that `loader.getResourceAsStream("META-INF/dgminfo")` failed to find the "META-INF/dgminfo" file, which should be generated correctly by `task dgmConverter` in gradle script - When the file is read, IOException "Stream closed" occurred.(Reproduce the issue: Menu "Build" -> Menu item "Rebuild Project" in IntelliJ IDEA). - Here is the error message: - -Information:Groovyc: While compiling groovy-xml_main:java.io.IOException: Stream closed - at java.io.BufferedInputStream.getInIfOpen(BufferedInputStream.java:159) - at java.io.BufferedInputStream.fill(BufferedInputStream.java:246) - at java.io.BufferedInputStream.read(BufferedInputStream.java:265) - at java.io.DataInputStream.readUnsignedShort(DataInputStream.java:337) - at java.io.DataInputStream.readUTF(DataInputStream.java:589) - at java.io.DataInputStream.readUTF(DataInputStream.java:564) - at org.codehaus.groovy.reflection.GeneratedMetaMethod$DgmMethodRecord.loadDgmInfo(GeneratedMetaMethod.java:194) - at org.codehaus.groovy.runtime.metaclass.MetaClassRegistryImpl.registerMethods(MetaClassRegistryImpl.java:205) - at org.codehaus.groovy.runtime.metaclass.MetaClassRegistryImpl.<init>(MetaClassRegistryImpl.java:112) - at org.codehaus.groovy.runtime.metaclass.MetaClassRegistryImpl.<init>(MetaClassRegistryImpl.java:90) - at groovy.lang.GroovySystem.<clinit>(GroovySystem.java:36) - at org.codehaus.groovy.runtime.InvokerHelper.<clinit>(InvokerHelper.java:86) - at groovy.lang.GroovyObjectSupport.getDefaultMetaClass(GroovyObjectSupport.java:61) - at groovy.lang.GroovyObjectSupport.<init>(GroovyObjectSupport.java:34) - at groovy.lang.Closure.<init>(Closure.java:214) - at groovy.lang.Closure.<init>(Closure.java:231) - at groovy.lang.Closure$1.<init>(Closure.java:198) - at groovy.lang.Closure.<clinit>(Closure.java:198) - at org.apache.groovy.parser.antlr4.util.StringUtils.replaceLineEscape(StringUtils.java:123) - at org.apache.groovy.parser.antlr4.util.StringUtils.replaceEscapes(StringUtils.java:116) - at org.apache.groovy.parser.antlr4.util.StringUtils.replaceEscapes(StringUtils.java:105) - at org.apache.groovy.parser.antlr4.AstBuilder.parseStringLiteral(AstBuilder.java:2443) - at org.apache.groovy.parser.antlr4.AstBuilder.visitStringLiteral(AstBuilder.java:2414) - at org.apache.groovy.parser.antlr4.AstBuilder.visitStringLiteralAlt(AstBuilder.java:3229) - at org.apache.groovy.parser.antlr4.AstBuilder.visitStringLiteralAlt(AstBuilder.java:151) - at org.apache.groovy.parser.antlr4.GroovyParser$StringLiteralAltContext.accept(GroovyParser.java:4066) - at org.antlr.v4.runtime.tree.AbstractParseTreeVisitor.visit(AbstractParseTreeVisitor.java:20) - at org.apache.groovy.parser.antlr4.AstBuilder.visit(AstBuilder.java:3958) - at org.apache.groovy.parser.antlr4.AstBuilder.visitLiteralPrmrAlt(AstBuilder.java:2834) - at org.apache.groovy.parser.antlr4.AstBuilder.visitLiteralPrmrAlt(AstBuilder.java:151) - at org.apache.groovy.parser.antlr4.GroovyParser$LiteralPrmrAltContext.accept(GroovyParser.java:9971) - at org.antlr.v4.runtime.tree.AbstractParseTreeVisitor.visit(AbstractParseTreeVisitor.java:20) - at org.apache.groovy.parser.antlr4.AstBuilder.visit(AstBuilder.java:3958) - at org.apache.groovy.parser.antlr4.AstBuilder.visitPathExpression(AstBuilder.java:2004) - at org.apache.groovy.parser.antlr4.AstBuilder.visitPostfixExpression(AstBuilder.java:2512) - at org.apache.groovy.parser.antlr4.AstBuilder.visitPostfixExprAlt(AstBuilder.java:2530) - at org.apache.groovy.parser.antlr4.AstBuilder.visitPostfixExprAlt(AstBuilder.java:151) - at org.apache.groovy.parser.antlr4.GroovyParser$PostfixExprAltContext.accept(GroovyParser.java:8241) - at org.antlr.v4.runtime.tree.AbstractParseTreeVisitor.visit(AbstractParseTreeVisitor.java:20) - at org.apache.groovy.parser.antlr4.AstBuilder.visit(AstBuilder.java:3958) - at org.apache.groovy.parser.antlr4.AstBuilder.visitExpressionListElement(AstBuilder.java:3179) - at org.apache.groovy.parser.antlr4.AstBuilder.visitEnhancedArgumentListElement(AstBuilder.java:2398) - at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193) - at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1382) - at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481) - at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471) - at java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:151) - at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:174) - at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) - at java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:418) - at org.apache.groovy.parser.antlr4.AstBuilder.visitEnhancedArgumentList(AstBuilder.java:2334) - at org.apache.groovy.parser.antlr4.AstBuilder.visitArguments(AstBuilder.java:2320) - at org.apache.groovy.parser.antlr4.AstBuilder.visitCreator(AstBuilder.java:2898) - at org.apache.groovy.parser.antlr4.AstBuilder.visitNewPrmrAlt(AstBuilder.java:2844) - at org.apache.groovy.parser.antlr4.AstBuilder.visitNewPrmrAlt(AstBuilder.java:151) - at org.apache.groovy.parser.antlr4.GroovyParser$NewPrmrAltContext.accept(GroovyParser.java:9997) - at org.antlr.v4.runtime.tree.AbstractParseTreeVisitor.visit(AbstractParseTreeVisitor.java:20) - at org.apache.groovy.parser.antlr4.AstBuilder.visit(AstBuilder.java:3958) - at org.apache.groovy.parser.antlr4.AstBuilder.visitPathExpression(AstBuilder.java:2004) - at org.apache.groovy.parser.antlr4.AstBuilder.visitPostfixExpression(AstBuilder.java:2512) - at org.apache.groovy.parser.antlr4.AstBuilder.visitPostfixExprAlt(AstBuilder.java:2530) - at org.apache.groovy.parser.antlr4.AstBuilder.visitPostfixExprAlt(AstBuilder.java:151) - at org.apache.groovy.parser.antlr4.GroovyParser$PostfixExprAltContext.accept(GroovyParser.java:8241) - at org.antlr.v4.runtime.tree.AbstractParseTreeVisitor.visit(AbstractParseTreeVisitor.java:20) - at org.apache.groovy.parser.antlr4.AstBuilder.visit(AstBuilder.java:3958) - at org.apache.groovy.parser.antlr4.AstBuilder.visitNormalExprAlt(AstBuilder.java:1834) - at org.apache.groovy.parser.antlr4.AstBuilder.visitNormalExprAlt(AstBuilder.java:151) - at org.apache.groovy.parser.antlr4.GroovyParser$NormalExprAltContext.accept(GroovyParser.java:8085) - at org.antlr.v4.runtime.tree.AbstractParseTreeVisitor.visit(AbstractParseTreeVisitor.java:20) - at org.apache.groovy.parser.antlr4.AstBuilder.visit(AstBuilder.java:3958) - at org.apache.groovy.parser.antlr4.AstBuilder.visitEnhancedStatementExpression(AstBuilder.java:1990) - at org.apache.groovy.parser.antlr4.AstBuilder.visitVariableInitializer(AstBuilder.java:1796) - at org.apache.groovy.parser.antlr4.AstBuilder.visitVariableDeclarator(AstBuilder.java:1785) - at org.apache.groovy.parser.antlr4.AstBuilder.lambda$visitVariableDeclarators$18(AstBuilder.java:1758) - at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193) - at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1382) - at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481) - at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471) - at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708) - at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) - at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:499) - at org.apache.groovy.parser.antlr4.AstBuilder.visitVariableDeclarators(AstBuilder.java:1761) - at org.apache.groovy.parser.antlr4.AstBuilder.visitVariableDeclaration(AstBuilder.java:1595) - at org.apache.groovy.parser.antlr4.AstBuilder.visitFieldDeclaration(AstBuilder.java:1264) - at org.apache.groovy.parser.antlr4.AstBuilder.visitMemberDeclaration(AstBuilder.java:1215) - at org.apache.groovy.parser.antlr4.AstBuilder.visitClassBodyDeclaration(AstBuilder.java:1188) - at org.apache.groovy.parser.antlr4.AstBuilder.lambda$visitClassBody$10(AstBuilder.java:1060) - at java.util.ArrayList.forEach(ArrayList.java:1257) - at org.apache.groovy.parser.antlr4.AstBuilder.visitClassBody(AstBuilder.java:1058) - at org.apache.groovy.parser.antlr4.AstBuilder.visitClassDeclaration(AstBuilder.java:1011) - at org.apache.groovy.parser.antlr4.AstBuilder.visitTypeDeclaration(AstBuilder.java:886) - at org.apache.groovy.parser.antlr4.AstBuilder.visitTypeDeclarationStmtAlt(AstBuilder.java:866) - at org.apache.groovy.parser.antlr4.AstBuilder.visitTypeDeclarationStmtAlt(AstBuilder.java:151) - at org.apache.groovy.parser.antlr4.GroovyParser$TypeDeclarationStmtAltContext.accept(GroovyParser.java:6719) - at org.antlr.v4.runtime.tree.AbstractParseTreeVisitor.visit(AbstractParseTreeVisitor.java:20) - at org.apache.groovy.parser.antlr4.AstBuilder.visit(AstBuilder.java:3958) - at org.apache.groovy.parser.antlr4.AstBuilder.lambda$visitStatements$1(AstBuilder.java:285) - at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193) - at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1382) - at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481) - at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471) - at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708) - at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) - at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:499) - at org.apache.groovy.parser.antlr4.AstBuilder.visitStatements(AstBuilder.java:286) - at org.apache.groovy.parser.antlr4.AstBuilder.visitCompilationUnit(AstBuilder.java:247) - at org.apache.groovy.parser.antlr4.AstBuilder.visitCompilationUnit(AstBuilder.java:151) - at org.apache.groovy.parser.antlr4.GroovyParser$CompilationUnitContext.accept(GroovyParser.java:284) - at org.antlr.v4.runtime.tree.AbstractParseTreeVisitor.visit(AbstractParseTreeVisitor.java:20) - at org.apache.groovy.parser.antlr4.AstBuilder.visit(AstBuilder.java:3958) - at org.apache.groovy.parser.antlr4.AstBuilder.buildAST(AstBuilder.java:237) - at org.apache.groovy.parser.antlr4.Antlr4ParserPlugin.buildAST(Antlr4ParserPlugin.java:72) - at org.codehaus.groovy.control.SourceUnit.convert(SourceUnit.java:252) - at org.codehaus.groovy.control.CompilationUnit$15.call(CompilationUnit.java:711) - at org.codehaus.groovy.control.CompilationUnit.applyToSourceUnits(CompilationUnit.java:971) - at org.codehaus.groovy.control.CompilationUnit.doPhaseOperation(CompilationUnit.java:636) - at org.codehaus.groovy.control.CompilationUnit.processPhaseOperations(CompilationUnit.java:612) - at org.codehaus.groovy.control.CompilationUnit.compile(CompilationUnit.java:589) - at org.jetbrains.groovy.compiler.rt.GroovyCompilerWrapper.compile(GroovyCompilerWrapper.java:62) - at org.jetbrains.groovy.compiler.rt.DependentGroovycRunner.runGroovyc(DependentGroovycRunner.java:115) - at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) - at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) - at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) - at java.lang.reflect.Method.invoke(Method.java:498) - at org.jetbrains.groovy.compiler.rt.GroovycRunner.intMain2(GroovycRunner.java:136) - at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) - at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) - at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) - at java.lang.reflect.Method.invoke(Method.java:498) - at org.jetbrains.jps.incremental.groovy.InProcessGroovyc.runGroovycInThisProcess(InProcessGroovyc.java:158) - at org.jetbrains.jps.incremental.groovy.InProcessGroovyc.lambda$runGroovyc$0(InProcessGroovyc.java:88) - at java.util.concurrent.FutureTask.run(FutureTask.java:266) - at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) - at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) - at java.lang.Thread.run(Thread.java:748) - */ public static List<DgmMethodRecord> loadDgmInfo() throws IOException { ClassLoader loader = DgmMethodRecord.class.getClassLoader(); http://git-wip-us.apache.org/repos/asf/groovy/blob/12734537/src/main/java/org/codehaus/groovy/tools/javac/JavaStubGenerator.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/codehaus/groovy/tools/javac/JavaStubGenerator.java b/src/main/java/org/codehaus/groovy/tools/javac/JavaStubGenerator.java index c5c6360..271195a 100644 --- a/src/main/java/org/codehaus/groovy/tools/javac/JavaStubGenerator.java +++ b/src/main/java/org/codehaus/groovy/tools/javac/JavaStubGenerator.java @@ -96,7 +96,7 @@ public class JavaStubGenerator { dir.mkdirs(); } - private static final int DEFAULT_BUFFER_SIZE = 32 * 1024; // 32K + private static final int DEFAULT_BUFFER_SIZE = 64 * 1024; // 64K public void generateClass(ClassNode classNode) throws FileNotFoundException { // Only attempt to render our self if our super-class is resolved, else wait for it if (requireSuperResolved && !classNode.getSuperClass().isResolved()) { http://git-wip-us.apache.org/repos/asf/groovy/blob/12734537/subprojects/groovy-console/src/main/groovy/groovy/inspect/swingui/AstBrowser.groovy ---------------------------------------------------------------------- diff --git a/subprojects/groovy-console/src/main/groovy/groovy/inspect/swingui/AstBrowser.groovy b/subprojects/groovy-console/src/main/groovy/groovy/inspect/swingui/AstBrowser.groovy index a3b42c8..10607f0 100644 --- a/subprojects/groovy-console/src/main/groovy/groovy/inspect/swingui/AstBrowser.groovy +++ b/subprojects/groovy-console/src/main/groovy/groovy/inspect/swingui/AstBrowser.groovy @@ -327,8 +327,9 @@ class AstBrowser { } + private static final int INITIAL_CAPACITY = 64 * 1024 // 64K private String generateSource(byte[] bytecode, getVisitor) { - def sw = new StringBuilderWriter(2048) // the generated code of `println 123` occupies about 618 bytes, so we should increase the initial capacity to 2K + def sw = new StringBuilderWriter(INITIAL_CAPACITY) // the generated code of `println 123` occupies about 618 bytes, so we should increase the initial capacity to 64K new ClassReader(bytecode).accept(getVisitor(sw), 0) return sw.toString() }
