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 2018/02/19 19:42:50 UTC

[1/5] groovy git commit: Fix some potential performance issues

Repository: groovy
Updated Branches:
  refs/heads/GROOVY_2_6_X 7d1654a92 -> 77dde9ced


Fix some potential performance issues

(cherry picked from commit b8a52eb)


Project: http://git-wip-us.apache.org/repos/asf/groovy/repo
Commit: http://git-wip-us.apache.org/repos/asf/groovy/commit/d46ba2d7
Tree: http://git-wip-us.apache.org/repos/asf/groovy/tree/d46ba2d7
Diff: http://git-wip-us.apache.org/repos/asf/groovy/diff/d46ba2d7

Branch: refs/heads/GROOVY_2_6_X
Commit: d46ba2d782bf02374ec1fec4d6c88a01322734ff
Parents: 7d1654a
Author: danielsun1106 <re...@hotmail.com>
Authored: Tue Feb 20 03:00:48 2018 +0800
Committer: danielsun1106 <re...@hotmail.com>
Committed: Tue Feb 20 03:42:14 2018 +0800

----------------------------------------------------------------------
 .../org/codehaus/groovy/classgen/GeneratorContext.java  |  2 +-
 .../org/codehaus/groovy/control/CompilationUnit.java    |  4 +---
 .../org/codehaus/groovy/control/ResolveVisitor.java     | 12 ++++++------
 .../org/codehaus/groovy/reflection/ReflectionCache.java |  2 +-
 .../codehaus/groovy/runtime/ResourceGroovyMethods.java  |  4 +---
 .../codehaus/groovy/tools/javac/JavacJavaCompiler.java  |  3 +--
 .../transform/stc/TraitTypeCheckingExtension.java       |  2 +-
 7 files changed, 12 insertions(+), 17 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/groovy/blob/d46ba2d7/src/main/java/org/codehaus/groovy/classgen/GeneratorContext.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/classgen/GeneratorContext.java b/src/main/java/org/codehaus/groovy/classgen/GeneratorContext.java
index dd318bd..1204dfa 100644
--- a/src/main/java/org/codehaus/groovy/classgen/GeneratorContext.java
+++ b/src/main/java/org/codehaus/groovy/classgen/GeneratorContext.java
@@ -115,7 +115,7 @@ public class GeneratorContext {
                 }
             }
         }
-        if(b == null) return name.toString();
+        if(b == null) return name;
         if (lastEscape == -1) throw new GroovyBugError("unexpected escape char control flow in "+name);
         b.append(name, lastEscape + 1, l);
         return b.toString();

http://git-wip-us.apache.org/repos/asf/groovy/blob/d46ba2d7/src/main/java/org/codehaus/groovy/control/CompilationUnit.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/control/CompilationUnit.java b/src/main/java/org/codehaus/groovy/control/CompilationUnit.java
index a766784..b47a653 100644
--- a/src/main/java/org/codehaus/groovy/control/CompilationUnit.java
+++ b/src/main/java/org/codehaus/groovy/control/CompilationUnit.java
@@ -1026,9 +1026,7 @@ public class CompilationUnit extends ProcessingUnit {
     private List<ClassNode> getPrimaryClassNodes(boolean sort) {
         List<ClassNode> unsorted = new ArrayList<ClassNode>();
         for (ModuleNode module : this.ast.getModules()) {
-            for (ClassNode classNode : module.getClasses()) {
-                unsorted.add(classNode);
-            }
+            unsorted.addAll(module.getClasses());
         }
 
         if (!sort) return unsorted;

http://git-wip-us.apache.org/repos/asf/groovy/blob/d46ba2d7/src/main/java/org/codehaus/groovy/control/ResolveVisitor.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/control/ResolveVisitor.java b/src/main/java/org/codehaus/groovy/control/ResolveVisitor.java
index fe96714..922c528 100644
--- a/src/main/java/org/codehaus/groovy/control/ResolveVisitor.java
+++ b/src/main/java/org/codehaus/groovy/control/ResolveVisitor.java
@@ -762,7 +762,7 @@ public class ResolveVisitor extends ClassCodeExpressionTransformer {
 
     private static String lookupClassName(PropertyExpression pe) {
         boolean doInitialClassTest=true;
-        String name = "";
+        StringBuilder name = new StringBuilder(32);
         // this loop builds a name from right to left each name part
         // separated by "."
         for (Expression it = pe; it != null; it = ((PropertyExpression) it).getObjectExpression()) {
@@ -782,9 +782,9 @@ public class ResolveVisitor extends ClassCodeExpressionTransformer {
                     // field bar.
                     if (!testVanillaNameForClass(varName)) return null;
                     doInitialClassTest = false;
-                    name = varName;
+                    name = new StringBuilder(varName);
                 } else {
-                    name = varName + "." + name;
+                    name.insert(0, varName + ".");
                 }
                 break;
             }
@@ -808,14 +808,14 @@ public class ResolveVisitor extends ClassCodeExpressionTransformer {
                     // field bar.
                     if (!testVanillaNameForClass(propertyPart)) return null;
                     doInitialClassTest= false;
-                    name = propertyPart;
+                    name = new StringBuilder(propertyPart);
                 } else {
-                    name = propertyPart + "." + name;
+                    name.insert(0, propertyPart + ".");
                 }
             }
         }
         if (name.length() == 0) return null;
-        return name;
+        return name.toString();
     }
 
     // iterate from the inner most to the outer and check for classes

http://git-wip-us.apache.org/repos/asf/groovy/blob/d46ba2d7/src/main/java/org/codehaus/groovy/reflection/ReflectionCache.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/reflection/ReflectionCache.java b/src/main/java/org/codehaus/groovy/reflection/ReflectionCache.java
index 372a0a5..c9ea871 100644
--- a/src/main/java/org/codehaus/groovy/reflection/ReflectionCache.java
+++ b/src/main/java/org/codehaus/groovy/reflection/ReflectionCache.java
@@ -47,7 +47,7 @@ public class ReflectionCache {
     public static String getMOPMethodName(CachedClass declaringClass, String name, boolean useThis) {
         TripleKeyHashMap.Entry mopNameEntry = mopNames.getOrPut(declaringClass, name, Boolean.valueOf(useThis));
         if (mopNameEntry.value == null) {
-            mopNameEntry.value = new StringBuffer().append(useThis ? "this$" : "super$").append(declaringClass.getSuperClassDistance()).append("$").append(name).toString();
+            mopNameEntry.value = new StringBuilder().append(useThis ? "this$" : "super$").append(declaringClass.getSuperClassDistance()).append("$").append(name).toString();
         }
         return (String) mopNameEntry.value;
     }

http://git-wip-us.apache.org/repos/asf/groovy/blob/d46ba2d7/src/main/java/org/codehaus/groovy/runtime/ResourceGroovyMethods.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/runtime/ResourceGroovyMethods.java b/src/main/java/org/codehaus/groovy/runtime/ResourceGroovyMethods.java
index c869523..789b275 100644
--- a/src/main/java/org/codehaus/groovy/runtime/ResourceGroovyMethods.java
+++ b/src/main/java/org/codehaus/groovy/runtime/ResourceGroovyMethods.java
@@ -1716,9 +1716,7 @@ public class ResourceGroovyMethods extends DefaultGroovyMethodsSupport {
         }
 
         // fill it up path with parts which were not equal
-        for (int i = same; i < toPathStack.length; i++) {
-            relativePathStack.add(toPathStack[i]);
-        }
+        relativePathStack.addAll(Arrays.asList(toPathStack).subList(same, toPathStack.length));
 
         return getPath(relativePathStack);
     }

http://git-wip-us.apache.org/repos/asf/groovy/blob/d46ba2d7/src/main/java/org/codehaus/groovy/tools/javac/JavacJavaCompiler.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/tools/javac/JavacJavaCompiler.java b/src/main/java/org/codehaus/groovy/tools/javac/JavacJavaCompiler.java
index a705ecf..bfed227 100644
--- a/src/main/java/org/codehaus/groovy/tools/javac/JavacJavaCompiler.java
+++ b/src/main/java/org/codehaus/groovy/tools/javac/JavacJavaCompiler.java
@@ -165,9 +165,8 @@ public class JavacJavaCompiler implements JavaCompiler {
                 // ignore it
             }
 
-            StringBuilder resultPath = new StringBuilder(DefaultGroovyMethods.join((Iterable) paths, File.pathSeparator));
             paras.add("-classpath");
-            paras.add(resultPath.toString());
+            paras.add(DefaultGroovyMethods.join((Iterable) paths, File.pathSeparator));
         }
 
         // files to compile

http://git-wip-us.apache.org/repos/asf/groovy/blob/d46ba2d7/src/main/java/org/codehaus/groovy/transform/stc/TraitTypeCheckingExtension.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/transform/stc/TraitTypeCheckingExtension.java b/src/main/java/org/codehaus/groovy/transform/stc/TraitTypeCheckingExtension.java
index 9bc93b5..4a108d9 100644
--- a/src/main/java/org/codehaus/groovy/transform/stc/TraitTypeCheckingExtension.java
+++ b/src/main/java/org/codehaus/groovy/transform/stc/TraitTypeCheckingExtension.java
@@ -123,7 +123,7 @@ public class TraitTypeCheckingExtension extends AbstractTypeCheckingExtension {
         System.arraycopy(argumentTypes, 0, newArgs, 0, newArgs.length);
         ClassNode inferredReturnType = inferTraitMethodReturnType(nextTrait, name, newArgs);
 
-        return Arrays.asList(makeDynamic(call, inferredReturnType));
+        return Collections.singletonList(makeDynamic(call, inferredReturnType));
     }
 
     private ClassNode inferTraitMethodReturnType(ClassNode nextTrait, String methodName, ClassNode[] paramTypes) {


[5/5] groovy git commit: Trivial refactoring: avoid redundant array creation

Posted by su...@apache.org.
Trivial refactoring: avoid redundant array creation

(cherry picked from commit fc01573)


Project: http://git-wip-us.apache.org/repos/asf/groovy/repo
Commit: http://git-wip-us.apache.org/repos/asf/groovy/commit/77dde9ce
Tree: http://git-wip-us.apache.org/repos/asf/groovy/tree/77dde9ce
Diff: http://git-wip-us.apache.org/repos/asf/groovy/diff/77dde9ce

Branch: refs/heads/GROOVY_2_6_X
Commit: 77dde9ced7cb8b2c2eda3447f454b96c5d09d696
Parents: 29c30ba
Author: danielsun1106 <re...@hotmail.com>
Authored: Tue Feb 20 03:26:21 2018 +0800
Committer: danielsun1106 <re...@hotmail.com>
Committed: Tue Feb 20 03:42:33 2018 +0800

----------------------------------------------------------------------
 src/main/groovy/groovy/util/FactoryBuilderSupport.java | 10 +++++-----
 src/main/groovy/groovy/util/Node.java                  |  2 +-
 src/main/groovy/groovy/util/ObjectGraphBuilder.java    |  4 ++--
 src/main/groovy/groovy/util/ObservableMap.java         |  4 ++--
 4 files changed, 10 insertions(+), 10 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/groovy/blob/77dde9ce/src/main/groovy/groovy/util/FactoryBuilderSupport.java
----------------------------------------------------------------------
diff --git a/src/main/groovy/groovy/util/FactoryBuilderSupport.java b/src/main/groovy/groovy/util/FactoryBuilderSupport.java
index 8dbcff0..1074e53 100644
--- a/src/main/groovy/groovy/util/FactoryBuilderSupport.java
+++ b/src/main/groovy/groovy/util/FactoryBuilderSupport.java
@@ -791,7 +791,7 @@ public abstract class FactoryBuilderSupport extends Binding {
                 return dispatchNodeCall(name, args);
             } catch(MissingMethodException mme) {
                 if(mme.getMethod().equals(methodName) && methodMissingDelegate != null) {
-                    return methodMissingDelegate.call(new Object[]{methodName, args});
+                    return methodMissingDelegate.call(methodName, args);
                 }
                 throw mme;
             }
@@ -982,7 +982,7 @@ public abstract class FactoryBuilderSupport extends Binding {
                 builder = (FactoryBuilderSupport) attrDelegate.getDelegate();
             }
 
-            attrDelegate.call(new Object[]{builder, node, attributes});
+            attrDelegate.call(builder, node, attributes);
         }
 
         if (getProxyBuilder().getCurrentFactory().onHandleNodeAttributes(getProxyBuilder().getChildBuilder(), node, attributes)) {
@@ -1031,7 +1031,7 @@ public abstract class FactoryBuilderSupport extends Binding {
      */
     protected void postInstantiate(Object name, Map attributes, Object node) {
         for (Closure postInstantiateDelegate : getProxyBuilder().getPostInstantiateDelegates()) {
-            (postInstantiateDelegate).call(new Object[]{this, attributes, node});
+            (postInstantiateDelegate).call(this, attributes, node);
         }
     }
 
@@ -1048,7 +1048,7 @@ public abstract class FactoryBuilderSupport extends Binding {
      */
     protected Object postNodeCompletion(Object parent, Object node) {
         for (Closure postNodeCompletionDelegate : getProxyBuilder().getPostNodeCompletionDelegates()) {
-            (postNodeCompletionDelegate).call(new Object[]{this, parent, node});
+            (postNodeCompletionDelegate).call(this, parent, node);
         }
 
         return node;
@@ -1065,7 +1065,7 @@ public abstract class FactoryBuilderSupport extends Binding {
      */
     protected void preInstantiate(Object name, Map attributes, Object value) {
         for (Closure preInstantiateDelegate : getProxyBuilder().getPreInstantiateDelegates()) {
-            (preInstantiateDelegate).call(new Object[]{this, attributes, value});
+            (preInstantiateDelegate).call(this, attributes, value);
         }
     }
 

http://git-wip-us.apache.org/repos/asf/groovy/blob/77dde9ce/src/main/groovy/groovy/util/Node.java
----------------------------------------------------------------------
diff --git a/src/main/groovy/groovy/util/Node.java b/src/main/groovy/groovy/util/Node.java
index e40b14a..76fdcca 100644
--- a/src/main/groovy/groovy/util/Node.java
+++ b/src/main/groovy/groovy/util/Node.java
@@ -615,7 +615,7 @@ public class Node implements Serializable, Cloneable {
 
     private static <T> T callClosureForNode(Closure<T> closure, Object node, int level) {
         if (closure.getMaximumNumberOfParameters() == 2) {
-            return closure.call(new Object[]{node, level});
+            return closure.call(node, level);
         }
         return closure.call(node);
     }

http://git-wip-us.apache.org/repos/asf/groovy/blob/77dde9ce/src/main/groovy/groovy/util/ObjectGraphBuilder.java
----------------------------------------------------------------------
diff --git a/src/main/groovy/groovy/util/ObjectGraphBuilder.java b/src/main/groovy/groovy/util/ObjectGraphBuilder.java
index 7ba0089..1004369 100644
--- a/src/main/groovy/groovy/util/ObjectGraphBuilder.java
+++ b/src/main/groovy/groovy/util/ObjectGraphBuilder.java
@@ -158,7 +158,7 @@ public class ObjectGraphBuilder extends FactoryBuilderSupport {
                                      String propertyName) {
                     Closure cls = (Closure) childPropertySetter;
                     cls.setDelegate(self);
-                    cls.call(new Object[]{parent, child, parentName, propertyName});
+                    cls.call(parent, child, parentName, propertyName);
                 }
             };
         } else {
@@ -271,7 +271,7 @@ public class ObjectGraphBuilder extends FactoryBuilderSupport {
                         throws InstantiationException, IllegalAccessException {
                     Closure cls = (Closure) newInstanceResolver;
                     cls.setDelegate(self);
-                    return cls.call(new Object[]{klass, attributes});
+                    return cls.call(klass, attributes);
                 }
             };
         } else {

http://git-wip-us.apache.org/repos/asf/groovy/blob/77dde9ce/src/main/groovy/groovy/util/ObservableMap.java
----------------------------------------------------------------------
diff --git a/src/main/groovy/groovy/util/ObservableMap.java b/src/main/groovy/groovy/util/ObservableMap.java
index 94b9816..a71165f 100644
--- a/src/main/groovy/groovy/util/ObservableMap.java
+++ b/src/main/groovy/groovy/util/ObservableMap.java
@@ -187,7 +187,7 @@ public class ObservableMap implements Map {
             oldValue = delegate.put(key, value);
             Object result = null;
             if (test.getMaximumNumberOfParameters() == 2) {
-                result = test.call(new Object[]{key, value});
+                result = test.call(key, value);
             } else {
                 result = test.call(value);
             }
@@ -227,7 +227,7 @@ public class ObservableMap implements Map {
                     oldValue = delegate.put(key, newValue);
                     Object result = null;
                     if (test.getMaximumNumberOfParameters() == 2) {
-                        result = test.call(new Object[]{key, newValue});
+                        result = test.call(key, newValue);
                     } else {
                         result = test.call(newValue);
                     }


[4/5] groovy git commit: Trivial refactoring: remove redundant character escape

Posted by su...@apache.org.
Trivial refactoring: remove redundant character escape

(cherry picked from commit daadd6e)


Project: http://git-wip-us.apache.org/repos/asf/groovy/repo
Commit: http://git-wip-us.apache.org/repos/asf/groovy/commit/29c30ba1
Tree: http://git-wip-us.apache.org/repos/asf/groovy/tree/29c30ba1
Diff: http://git-wip-us.apache.org/repos/asf/groovy/diff/29c30ba1

Branch: refs/heads/GROOVY_2_6_X
Commit: 29c30ba19a2d827800153a5b4f109682e180b841
Parents: c52400d
Author: danielsun1106 <re...@hotmail.com>
Authored: Tue Feb 20 03:19:29 2018 +0800
Committer: danielsun1106 <re...@hotmail.com>
Committed: Tue Feb 20 03:42:29 2018 +0800

----------------------------------------------------------------------
 src/main/java/org/codehaus/groovy/classgen/Verifier.java | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/groovy/blob/29c30ba1/src/main/java/org/codehaus/groovy/classgen/Verifier.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/classgen/Verifier.java b/src/main/java/org/codehaus/groovy/classgen/Verifier.java
index aad5940..2e5c851 100644
--- a/src/main/java/org/codehaus/groovy/classgen/Verifier.java
+++ b/src/main/java/org/codehaus/groovy/classgen/Verifier.java
@@ -364,7 +364,7 @@ public class Verifier implements GroovyClassVisitor, Opcodes {
                         if (BytecodeHelper.isClassLiteralPossible(node) || BytecodeHelper.isSameCompilationUnit(classNode, node)) {
                             BytecodeHelper.visitClassLiteral(mv, node);
                         } else {
-                            mv.visitMethodInsn(INVOKESTATIC, classInternalName, "$get$$class$" + classInternalName.replaceAll("\\/", "\\$"), "()Ljava/lang/Class;", false);
+                            mv.visitMethodInsn(INVOKESTATIC, classInternalName, "$get$$class$" + classInternalName.replaceAll("/", "\\$"), "()Ljava/lang/Class;", false);
                         }
                         Label l1 = new Label();
                         mv.visitJumpInsn(IF_ACMPEQ, l1);


[3/5] groovy git commit: Trivial refactoring: avoid zero length GenericsType array creation

Posted by su...@apache.org.
Trivial refactoring: avoid zero length GenericsType array creation

(cherry picked from commit 45448c5)


Project: http://git-wip-us.apache.org/repos/asf/groovy/repo
Commit: http://git-wip-us.apache.org/repos/asf/groovy/commit/c52400df
Tree: http://git-wip-us.apache.org/repos/asf/groovy/tree/c52400df
Diff: http://git-wip-us.apache.org/repos/asf/groovy/diff/c52400df

Branch: refs/heads/GROOVY_2_6_X
Commit: c52400df4a990e324cab6bb1f4f58ac6e597b506
Parents: c3f34f6
Author: danielsun1106 <re...@hotmail.com>
Authored: Tue Feb 20 03:15:32 2018 +0800
Committer: danielsun1106 <re...@hotmail.com>
Committed: Tue Feb 20 03:42:25 2018 +0800

----------------------------------------------------------------------
 src/main/java/org/codehaus/groovy/ast/tools/GenericsUtils.java | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/groovy/blob/c52400df/src/main/java/org/codehaus/groovy/ast/tools/GenericsUtils.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/ast/tools/GenericsUtils.java b/src/main/java/org/codehaus/groovy/ast/tools/GenericsUtils.java
index 642f90c..126ef42 100644
--- a/src/main/java/org/codehaus/groovy/ast/tools/GenericsUtils.java
+++ b/src/main/java/org/codehaus/groovy/ast/tools/GenericsUtils.java
@@ -57,7 +57,7 @@ import static org.codehaus.groovy.transform.stc.StaticTypeCheckingSupport.implem
  * @author Paul King
  */
 public class GenericsUtils {
-    public static final GenericsType[] EMPTY_GENERICS_ARRAY = new GenericsType[0];
+    public static final GenericsType[] EMPTY_GENERICS_ARRAY = GenericsType.EMPTY_ARRAY;
     public static final String JAVA_LANG_OBJECT = "java.lang.Object";
 
     /**
@@ -274,7 +274,7 @@ public class GenericsUtils {
         if (type.isArray()) {
             return makeClassSafeWithGenerics(type.getComponentType(), genericTypes).makeArray();
         }
-        GenericsType[] gtypes = new GenericsType[0];
+        GenericsType[] gtypes = GenericsType.EMPTY_ARRAY;
         if (genericTypes != null) {
             gtypes = new GenericsType[genericTypes.length];
             System.arraycopy(genericTypes, 0, gtypes, 0, gtypes.length);


[2/5] groovy git commit: Trivial refactoring: avoid redundant array creation

Posted by su...@apache.org.
Trivial refactoring: avoid redundant array creation

(cherry picked from commit 87ff616)


Project: http://git-wip-us.apache.org/repos/asf/groovy/repo
Commit: http://git-wip-us.apache.org/repos/asf/groovy/commit/c3f34f6d
Tree: http://git-wip-us.apache.org/repos/asf/groovy/tree/c3f34f6d
Diff: http://git-wip-us.apache.org/repos/asf/groovy/diff/c3f34f6d

Branch: refs/heads/GROOVY_2_6_X
Commit: c3f34f6d1773388d137c22947028c6850a01d11e
Parents: d46ba2d
Author: danielsun1106 <re...@hotmail.com>
Authored: Tue Feb 20 03:06:25 2018 +0800
Committer: danielsun1106 <re...@hotmail.com>
Committed: Tue Feb 20 03:42:21 2018 +0800

----------------------------------------------------------------------
 .../org/codehaus/groovy/runtime/DefaultGroovyMethods.java    | 8 ++++----
 .../org/codehaus/groovy/runtime/SocketGroovyMethods.java     | 4 ++--
 .../groovy/runtime/metaclass/MetaClassRegistryImpl.java      | 2 +-
 src/main/java/org/codehaus/groovy/tools/GroovyStarter.java   | 2 +-
 .../org/codehaus/groovy/tools/javac/JavacJavaCompiler.java   | 4 ++--
 5 files changed, 10 insertions(+), 10 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/groovy/blob/c3f34f6d/src/main/java/org/codehaus/groovy/runtime/DefaultGroovyMethods.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/runtime/DefaultGroovyMethods.java b/src/main/java/org/codehaus/groovy/runtime/DefaultGroovyMethods.java
index e5025df..8b591f7 100644
--- a/src/main/java/org/codehaus/groovy/runtime/DefaultGroovyMethods.java
+++ b/src/main/java/org/codehaus/groovy/runtime/DefaultGroovyMethods.java
@@ -5854,7 +5854,7 @@ public class DefaultGroovyMethods extends DefaultGroovyMethodsSupport {
     // internal helper method
     protected static <T, K, V> T callClosureForMapEntry(@ClosureParams(value=FromString.class, options={"K,V","Map.Entry<K,V>"}) Closure<T> closure, Map.Entry<K,V> entry) {
         if (closure.getMaximumNumberOfParameters() == 2) {
-            return closure.call(new Object[]{entry.getKey(), entry.getValue()});
+            return closure.call(entry.getKey(), entry.getValue());
         }
         return closure.call(entry);
     }
@@ -5862,7 +5862,7 @@ public class DefaultGroovyMethods extends DefaultGroovyMethodsSupport {
     // internal helper method
     protected static <T> T callClosureForLine(@ClosureParams(value=FromString.class, options={"String","String,Integer"}) Closure<T> closure, String line, int counter) {
         if (closure.getMaximumNumberOfParameters() == 2) {
-            return closure.call(new Object[]{line, counter});
+            return closure.call(line, counter);
         }
         return closure.call(line);
     }
@@ -5870,10 +5870,10 @@ public class DefaultGroovyMethods extends DefaultGroovyMethodsSupport {
     // internal helper method
     protected static <T, K, V> T callClosureForMapEntryAndCounter(@ClosureParams(value=FromString.class, options={"K,V,Integer", "K,V","Map.Entry<K,V>"}) Closure<T> closure, Map.Entry<K,V> entry, int counter) {
         if (closure.getMaximumNumberOfParameters() == 3) {
-            return closure.call(new Object[]{entry.getKey(), entry.getValue(), counter});
+            return closure.call(entry.getKey(), entry.getValue(), counter);
         }
         if (closure.getMaximumNumberOfParameters() == 2) {
-            return closure.call(new Object[]{entry, counter});
+            return closure.call(entry, counter);
         }
         return closure.call(entry);
     }

http://git-wip-us.apache.org/repos/asf/groovy/blob/c3f34f6d/src/main/java/org/codehaus/groovy/runtime/SocketGroovyMethods.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/runtime/SocketGroovyMethods.java b/src/main/java/org/codehaus/groovy/runtime/SocketGroovyMethods.java
index 6582485..ded99e5 100644
--- a/src/main/java/org/codehaus/groovy/runtime/SocketGroovyMethods.java
+++ b/src/main/java/org/codehaus/groovy/runtime/SocketGroovyMethods.java
@@ -62,7 +62,7 @@ public class SocketGroovyMethods extends DefaultGroovyMethodsSupport {
         InputStream input = socket.getInputStream();
         OutputStream output = socket.getOutputStream();
         try {
-            T result = closure.call(new Object[]{input, output});
+            T result = closure.call(input, output);
 
             InputStream temp1 = input;
             input = null;
@@ -95,7 +95,7 @@ public class SocketGroovyMethods extends DefaultGroovyMethodsSupport {
         ObjectOutputStream oos = new ObjectOutputStream(output);
         ObjectInputStream ois = new ObjectInputStream(input);
         try {
-            T result = closure.call(new Object[]{ois, oos});
+            T result = closure.call(ois, oos);
 
             InputStream temp1 = ois;
             ois = null;

http://git-wip-us.apache.org/repos/asf/groovy/blob/c3f34f6d/src/main/java/org/codehaus/groovy/runtime/metaclass/MetaClassRegistryImpl.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/runtime/metaclass/MetaClassRegistryImpl.java b/src/main/java/org/codehaus/groovy/runtime/metaclass/MetaClassRegistryImpl.java
index 88b7351..ff33081 100644
--- a/src/main/java/org/codehaus/groovy/runtime/metaclass/MetaClassRegistryImpl.java
+++ b/src/main/java/org/codehaus/groovy/runtime/metaclass/MetaClassRegistryImpl.java
@@ -187,7 +187,7 @@ public class MetaClassRegistryImpl implements MetaClassRegistry{
     private void installMetaClassCreationHandle() {
            try {
                final Class customMetaClassHandle = Class.forName("groovy.runtime.metaclass.CustomMetaClassCreationHandle");
-               final Constructor customMetaClassHandleConstructor = customMetaClassHandle.getConstructor(new Class[]{});
+               final Constructor customMetaClassHandleConstructor = customMetaClassHandle.getConstructor();
                  this.metaClassCreationHandle = (MetaClassCreationHandle)customMetaClassHandleConstructor.newInstance();
            } catch (final ClassNotFoundException e) {
                this.metaClassCreationHandle = new MetaClassCreationHandle();

http://git-wip-us.apache.org/repos/asf/groovy/blob/c3f34f6d/src/main/java/org/codehaus/groovy/tools/GroovyStarter.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/tools/GroovyStarter.java b/src/main/java/org/codehaus/groovy/tools/GroovyStarter.java
index d4799f4..141ad00 100644
--- a/src/main/java/org/codehaus/groovy/tools/GroovyStarter.java
+++ b/src/main/java/org/codehaus/groovy/tools/GroovyStarter.java
@@ -102,7 +102,7 @@ public class GroovyStarter {
         Method m=null;
         try {
             Class c = loader.loadClass(lc.getMainClass());
-            m = c.getMethod("main", new Class[]{String[].class});
+            m = c.getMethod("main", String[].class);
         } catch (ClassNotFoundException e1) {
             exit(e1);
         } catch (SecurityException e2) {

http://git-wip-us.apache.org/repos/asf/groovy/blob/c3f34f6d/src/main/java/org/codehaus/groovy/tools/javac/JavacJavaCompiler.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/tools/javac/JavacJavaCompiler.java b/src/main/java/org/codehaus/groovy/tools/javac/JavacJavaCompiler.java
index bfed227..32fd5d6 100644
--- a/src/main/java/org/codehaus/groovy/tools/javac/JavacJavaCompiler.java
+++ b/src/main/java/org/codehaus/groovy/tools/javac/JavacJavaCompiler.java
@@ -58,14 +58,14 @@ public class JavacJavaCompiler implements JavaCompiler {
             Class javac = findJavac(cu);
             Method method = null;
             try {
-                method = javac.getMethod("compile", new Class[]{String[].class, PrintWriter.class});
+                method = javac.getMethod("compile", String[].class, PrintWriter.class);
                 javacOutput = new StringBuilderWriter();
                 PrintWriter writer = new PrintWriter(javacOutput);
                 Object ret = method.invoke(null, javacParameters, writer);
                 javacReturnValue = (Integer) ret;
             } catch (NoSuchMethodException e) { }
             if (method == null) {
-                method = javac.getMethod("compile", new Class[]{String[].class});
+                method = javac.getMethod("compile", String[].class);
                 Object ret = method.invoke(null, new Object[]{javacParameters});
                 javacReturnValue = (Integer) ret;
             }