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 2017/06/24 08:41:40 UTC

[1/5] groovy git commit: Minor refactoring

Repository: groovy
Updated Branches:
  refs/heads/GROOVY_2_6_X f7b19f729 -> 59c261fb9


Minor refactoring

(cherry picked from commit 852c85e)


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

Branch: refs/heads/GROOVY_2_6_X
Commit: 19fc000faa0be7da6b5fc7b33fca250272de8fd4
Parents: f7b19f7
Author: sunlan <su...@apache.org>
Authored: Sat Jun 24 15:18:30 2017 +0800
Committer: sunlan <su...@apache.org>
Committed: Sat Jun 24 16:40:20 2017 +0800

----------------------------------------------------------------------
 src/main/org/codehaus/groovy/runtime/DefaultGroovyMethods.java     | 2 +-
 .../codehaus/groovy/runtime/metaclass/MetaClassRegistryImpl.java   | 2 +-
 .../codehaus/groovy/transform/stc/StaticTypeCheckingSupport.java   | 2 +-
 .../src/main/groovy/org/codehaus/groovy/tools/DocGenerator.groovy  | 2 +-
 4 files changed, 4 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/groovy/blob/19fc000f/src/main/org/codehaus/groovy/runtime/DefaultGroovyMethods.java
----------------------------------------------------------------------
diff --git a/src/main/org/codehaus/groovy/runtime/DefaultGroovyMethods.java b/src/main/org/codehaus/groovy/runtime/DefaultGroovyMethods.java
index 36c2453..e504371 100644
--- a/src/main/org/codehaus/groovy/runtime/DefaultGroovyMethods.java
+++ b/src/main/org/codehaus/groovy/runtime/DefaultGroovyMethods.java
@@ -104,7 +104,7 @@ public class DefaultGroovyMethods extends DefaultGroovyMethodsSupport {
     private static final BigInteger BI_LONG_MAX = BigInteger.valueOf(Long.MAX_VALUE);
     private static final BigInteger BI_LONG_MIN = BigInteger.valueOf(Long.MIN_VALUE);
 
-    public static final Class [] additionals = {
+    public static final Class [] ADDITIONAL_CLASSES = {
             NumberNumberPlus.class,
             NumberNumberMultiply.class,
             NumberNumberMinus.class,

http://git-wip-us.apache.org/repos/asf/groovy/blob/19fc000f/src/main/org/codehaus/groovy/runtime/metaclass/MetaClassRegistryImpl.java
----------------------------------------------------------------------
diff --git a/src/main/org/codehaus/groovy/runtime/metaclass/MetaClassRegistryImpl.java b/src/main/org/codehaus/groovy/runtime/metaclass/MetaClassRegistryImpl.java
index c8692a0..8c39102 100644
--- a/src/main/org/codehaus/groovy/runtime/metaclass/MetaClassRegistryImpl.java
+++ b/src/main/org/codehaus/groovy/runtime/metaclass/MetaClassRegistryImpl.java
@@ -94,7 +94,7 @@ public class MetaClassRegistryImpl implements MetaClassRegistry{
 
             // let's register the default methods
             registerMethods(null, true, true, map);
-            final Class[] additionals = DefaultGroovyMethods.additionals;
+            final Class[] additionals = DefaultGroovyMethods.ADDITIONAL_CLASSES;
             for (int i = 0; i != additionals.length; ++i) {
                 createMetaMethodFromClass(map, additionals[i]);
             }

http://git-wip-us.apache.org/repos/asf/groovy/blob/19fc000f/src/main/org/codehaus/groovy/transform/stc/StaticTypeCheckingSupport.java
----------------------------------------------------------------------
diff --git a/src/main/org/codehaus/groovy/transform/stc/StaticTypeCheckingSupport.java b/src/main/org/codehaus/groovy/transform/stc/StaticTypeCheckingSupport.java
index 1aebf93..98fb157 100644
--- a/src/main/org/codehaus/groovy/transform/stc/StaticTypeCheckingSupport.java
+++ b/src/main/org/codehaus/groovy/transform/stc/StaticTypeCheckingSupport.java
@@ -2112,7 +2112,7 @@ public abstract class StaticTypeCheckingSupport {
             }
             Map<String, List<MethodNode>> methods = new HashMap<String, List<MethodNode>>();
             Collections.addAll(instanceExtClasses, DefaultGroovyMethods.DGM_LIKE_CLASSES);
-            Collections.addAll(instanceExtClasses, DefaultGroovyMethods.additionals);
+            Collections.addAll(instanceExtClasses, DefaultGroovyMethods.ADDITIONAL_CLASSES);
             staticExtClasses.add(DefaultGroovyStaticMethods.class);
 
             instanceExtClasses.add(ObjectArrayStaticTypesHelper.class);

http://git-wip-us.apache.org/repos/asf/groovy/blob/19fc000f/subprojects/groovy-docgenerator/src/main/groovy/org/codehaus/groovy/tools/DocGenerator.groovy
----------------------------------------------------------------------
diff --git a/subprojects/groovy-docgenerator/src/main/groovy/org/codehaus/groovy/tools/DocGenerator.groovy b/subprojects/groovy-docgenerator/src/main/groovy/org/codehaus/groovy/tools/DocGenerator.groovy
index 5315b12..2053f3e 100644
--- a/subprojects/groovy-docgenerator/src/main/groovy/org/codehaus/groovy/tools/DocGenerator.groovy
+++ b/subprojects/groovy-docgenerator/src/main/groovy/org/codehaus/groovy/tools/DocGenerator.groovy
@@ -243,7 +243,7 @@ class DocGenerator {
 
         def srcFiles = options.arguments().collect { DocUtil.sourceFileOf(it) }
         try {
-            DefaultGroovyMethods.additionals.each { aClass ->
+            DefaultGroovyMethods.ADDITIONAL_CLASSES.each { aClass ->
                 def className = aClass.name.replaceAll(/\$.*/, '')
                 def additionalFile = DocUtil.sourceFileOf(className)
                 if (srcFiles.every { it.canonicalPath != additionalFile.canonicalPath }) {


[3/5] groovy git commit: Make EmptyExpression.INSTANCE immutable

Posted by su...@apache.org.
Make EmptyExpression.INSTANCE immutable

(cherry picked from commit 7e6ff28)


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

Branch: refs/heads/GROOVY_2_6_X
Commit: ba3ad3a7ec1012b0c03ee07b984b12df16f48542
Parents: 4c09080
Author: sunlan <su...@apache.org>
Authored: Sat Jun 24 16:01:08 2017 +0800
Committer: sunlan <su...@apache.org>
Committed: Sat Jun 24 16:40:51 2017 +0800

----------------------------------------------------------------------
 .../groovy/ast/expr/EmptyExpression.java        | 40 +++++++++++++++++++-
 1 file changed, 39 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/groovy/blob/ba3ad3a7/src/main/org/codehaus/groovy/ast/expr/EmptyExpression.java
----------------------------------------------------------------------
diff --git a/src/main/org/codehaus/groovy/ast/expr/EmptyExpression.java b/src/main/org/codehaus/groovy/ast/expr/EmptyExpression.java
index 4de4193..6c3daf1 100644
--- a/src/main/org/codehaus/groovy/ast/expr/EmptyExpression.java
+++ b/src/main/org/codehaus/groovy/ast/expr/EmptyExpression.java
@@ -18,8 +18,12 @@
  */
 package org.codehaus.groovy.ast.expr;
 
+import org.codehaus.groovy.ast.AnnotationNode;
+import org.codehaus.groovy.ast.ClassNode;
 import org.codehaus.groovy.ast.GroovyCodeVisitor;
 
+import java.util.List;
+
 /**
  * This class is a place holder for an empty expression. 
  * Empty expression are used in closures lists like (;). During
@@ -30,7 +34,41 @@ import org.codehaus.groovy.ast.GroovyCodeVisitor;
  * @see org.codehaus.groovy.ast.stmt.EmptyStatement
  */
 public class EmptyExpression extends Expression {
-    public static final EmptyExpression INSTANCE = new EmptyExpression();
+    public static final EmptyExpression INSTANCE = new EmptyExpression() {
+        @Override
+        public void setType(ClassNode t) {
+            throw createUnsupportedOperationException();
+        }
+
+        @Override
+        public void addAnnotation(AnnotationNode value) {
+            throw createUnsupportedOperationException();
+        }
+
+        @Override
+        public void addAnnotations(List<AnnotationNode> annotations) {
+            throw createUnsupportedOperationException();
+        }
+
+        @Override
+        public void setSynthetic(boolean synthetic) {
+            throw createUnsupportedOperationException();
+        }
+
+        @Override
+        public void setDeclaringClass(ClassNode declaringClass) {
+            throw createUnsupportedOperationException();
+        }
+
+        @Override
+        public void setHasNoRealSourcePosition(boolean value) {
+            throw createUnsupportedOperationException();
+        }
+
+        private UnsupportedOperationException createUnsupportedOperationException() {
+            return new UnsupportedOperationException("EmptyExpression.INSTANCE is immutable");
+        }
+    };
 
     public Expression transformExpression(ExpressionTransformer transformer) {
         return this;


[5/5] groovy git commit: Make EmptyStatement.INSTANCE immutable

Posted by su...@apache.org.
Make EmptyStatement.INSTANCE immutable

(cherry picked from commit 014273f)


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

Branch: refs/heads/GROOVY_2_6_X
Commit: 59c261fb977716be8ca0cb68bfd49ee5d21af282
Parents: 60be70a
Author: sunlan <su...@apache.org>
Authored: Sat Jun 24 16:27:27 2017 +0800
Committer: sunlan <su...@apache.org>
Committed: Sat Jun 24 16:41:13 2017 +0800

----------------------------------------------------------------------
 .../groovy/ast/stmt/EmptyStatement.java         | 70 +++++++++++++++++++-
 1 file changed, 69 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/groovy/blob/59c261fb/src/main/org/codehaus/groovy/ast/stmt/EmptyStatement.java
----------------------------------------------------------------------
diff --git a/src/main/org/codehaus/groovy/ast/stmt/EmptyStatement.java b/src/main/org/codehaus/groovy/ast/stmt/EmptyStatement.java
index 3b9800d..740cb55 100644
--- a/src/main/org/codehaus/groovy/ast/stmt/EmptyStatement.java
+++ b/src/main/org/codehaus/groovy/ast/stmt/EmptyStatement.java
@@ -18,7 +18,11 @@
  */
 package org.codehaus.groovy.ast.stmt;
 
+import org.codehaus.groovy.ast.ASTNode;
 import org.codehaus.groovy.ast.GroovyCodeVisitor;
+import org.codehaus.groovy.ast.NodeMetaDataHandler;
+
+import java.util.Map;
 
 /**
  * Represents an empty statement
@@ -27,7 +31,71 @@ import org.codehaus.groovy.ast.GroovyCodeVisitor;
  */
 public class EmptyStatement extends Statement {
 
-    public static final EmptyStatement INSTANCE = new EmptyStatement();
+    public static final EmptyStatement INSTANCE = new EmptyStatement() {
+        @Override
+        public void setStatementLabel(String label) {
+            throw createUnsupportedOperationException();
+        }
+
+        @Override
+        public void addStatementLabel(String label) {
+            throw createUnsupportedOperationException();
+        }
+
+        @Override
+        public void setLineNumber(int lineNumber) {
+            throw createUnsupportedOperationException();
+        }
+
+        @Override
+        public void setColumnNumber(int columnNumber) {
+            throw createUnsupportedOperationException();
+        }
+
+        @Override
+        public void setLastLineNumber(int lastLineNumber) {
+            throw createUnsupportedOperationException();
+        }
+
+        @Override
+        public void setLastColumnNumber(int lastColumnNumber) {
+            throw createUnsupportedOperationException();
+        }
+
+        @Override
+        public void setSourcePosition(ASTNode node) {
+            throw createUnsupportedOperationException();
+        }
+
+        @Override
+        public void copyNodeMetaData(NodeMetaDataHandler other) {
+            throw createUnsupportedOperationException();
+        }
+
+        @Override
+        public void setNodeMetaData(Object key, Object value) {
+            throw createUnsupportedOperationException();
+        }
+
+        @Override
+        public Object putNodeMetaData(Object key, Object value) {
+            throw createUnsupportedOperationException();
+        }
+
+        @Override
+        public void removeNodeMetaData(Object key) {
+            throw createUnsupportedOperationException();
+        }
+
+        @Override
+        public void setMetaDataMap(Map<?, ?> metaDataMap) {
+            throw createUnsupportedOperationException();
+        }
+
+        private UnsupportedOperationException createUnsupportedOperationException() {
+            return new UnsupportedOperationException("EmptyStatement.INSTANCE is immutable");
+        }
+    };
     
     public void visit(GroovyCodeVisitor visitor) {
     }


[4/5] groovy git commit: Make EmptyExpression.INSTANCE immutable further

Posted by su...@apache.org.
Make EmptyExpression.INSTANCE immutable further

(cherry picked from commit 9e15bed)


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

Branch: refs/heads/GROOVY_2_6_X
Commit: 60be70ae1946e6cbcca96444d50772014b9a9206
Parents: ba3ad3a
Author: sunlan <su...@apache.org>
Authored: Sat Jun 24 16:10:56 2017 +0800
Committer: sunlan <su...@apache.org>
Committed: Sat Jun 24 16:41:01 2017 +0800

----------------------------------------------------------------------
 .../groovy/ast/expr/EmptyExpression.java        | 53 ++++++++++++++++++++
 1 file changed, 53 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/groovy/blob/60be70ae/src/main/org/codehaus/groovy/ast/expr/EmptyExpression.java
----------------------------------------------------------------------
diff --git a/src/main/org/codehaus/groovy/ast/expr/EmptyExpression.java b/src/main/org/codehaus/groovy/ast/expr/EmptyExpression.java
index 6c3daf1..7b6d9e7 100644
--- a/src/main/org/codehaus/groovy/ast/expr/EmptyExpression.java
+++ b/src/main/org/codehaus/groovy/ast/expr/EmptyExpression.java
@@ -18,11 +18,14 @@
  */
 package org.codehaus.groovy.ast.expr;
 
+import org.codehaus.groovy.ast.ASTNode;
 import org.codehaus.groovy.ast.AnnotationNode;
 import org.codehaus.groovy.ast.ClassNode;
 import org.codehaus.groovy.ast.GroovyCodeVisitor;
+import org.codehaus.groovy.ast.NodeMetaDataHandler;
 
 import java.util.List;
+import java.util.Map;
 
 /**
  * This class is a place holder for an empty expression. 
@@ -65,6 +68,56 @@ public class EmptyExpression extends Expression {
             throw createUnsupportedOperationException();
         }
 
+        @Override
+        public void setLineNumber(int lineNumber) {
+            throw createUnsupportedOperationException();
+        }
+
+        @Override
+        public void setColumnNumber(int columnNumber) {
+            throw createUnsupportedOperationException();
+        }
+
+        @Override
+        public void setLastLineNumber(int lastLineNumber) {
+            throw createUnsupportedOperationException();
+        }
+
+        @Override
+        public void setLastColumnNumber(int lastColumnNumber) {
+            throw createUnsupportedOperationException();
+        }
+
+        @Override
+        public void setSourcePosition(ASTNode node) {
+            throw createUnsupportedOperationException();
+        }
+
+        @Override
+        public void copyNodeMetaData(NodeMetaDataHandler other) {
+            throw createUnsupportedOperationException();
+        }
+
+        @Override
+        public void setNodeMetaData(Object key, Object value) {
+            throw createUnsupportedOperationException();
+        }
+
+        @Override
+        public Object putNodeMetaData(Object key, Object value) {
+            throw createUnsupportedOperationException();
+        }
+
+        @Override
+        public void removeNodeMetaData(Object key) {
+            throw createUnsupportedOperationException();
+        }
+
+        @Override
+        public void setMetaDataMap(Map<?, ?> metaDataMap) {
+            throw createUnsupportedOperationException();
+        }
+
         private UnsupportedOperationException createUnsupportedOperationException() {
             return new UnsupportedOperationException("EmptyExpression.INSTANCE is immutable");
         }


[2/5] groovy git commit: Improve the robustness of asBoolean methods

Posted by su...@apache.org.
Improve the robustness of asBoolean methods

(cherry picked from commit f4d5970)


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

Branch: refs/heads/GROOVY_2_6_X
Commit: 4c09080f4bb9adf8ee155fd0c1ed3af067a62d03
Parents: 19fc000
Author: sunlan <su...@apache.org>
Authored: Sat Jun 24 15:40:10 2017 +0800
Committer: sunlan <su...@apache.org>
Committed: Sat Jun 24 16:40:35 2017 +0800

----------------------------------------------------------------------
 .../groovy/runtime/DefaultGroovyMethods.java    | 66 +++++++++++++++++++-
 .../groovy/runtime/StringGroovyMethods.java     |  8 +++
 2 files changed, 73 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/groovy/blob/4c09080f/src/main/org/codehaus/groovy/runtime/DefaultGroovyMethods.java
----------------------------------------------------------------------
diff --git a/src/main/org/codehaus/groovy/runtime/DefaultGroovyMethods.java b/src/main/org/codehaus/groovy/runtime/DefaultGroovyMethods.java
index e504371..03f061c 100644
--- a/src/main/org/codehaus/groovy/runtime/DefaultGroovyMethods.java
+++ b/src/main/org/codehaus/groovy/runtime/DefaultGroovyMethods.java
@@ -104,7 +104,7 @@ public class DefaultGroovyMethods extends DefaultGroovyMethodsSupport {
     private static final BigInteger BI_LONG_MAX = BigInteger.valueOf(Long.MAX_VALUE);
     private static final BigInteger BI_LONG_MIN = BigInteger.valueOf(Long.MIN_VALUE);
 
-    public static final Class [] ADDITIONAL_CLASSES = {
+    public static final Class[] ADDITIONAL_CLASSES = {
             NumberNumberPlus.class,
             NumberNumberMultiply.class,
             NumberNumberMinus.class,
@@ -10794,6 +10794,10 @@ public class DefaultGroovyMethods extends DefaultGroovyMethodsSupport {
      * @since 1.7.0
      */
     public static boolean asBoolean(Boolean bool) {
+        if (null == bool) {
+            return false;
+        }
+
         return bool;
     }
 
@@ -10808,6 +10812,10 @@ public class DefaultGroovyMethods extends DefaultGroovyMethodsSupport {
      * @since 1.7.0
      */
     public static boolean asBoolean(Collection collection) {
+        if (null == collection) {
+            return false;
+        }
+
         return !collection.isEmpty();
     }
 
@@ -10822,6 +10830,10 @@ public class DefaultGroovyMethods extends DefaultGroovyMethodsSupport {
      * @since 1.7.0
      */
     public static boolean asBoolean(Map map) {
+        if (null == map) {
+            return false;
+        }
+
         return !map.isEmpty();
     }
 
@@ -10835,6 +10847,10 @@ public class DefaultGroovyMethods extends DefaultGroovyMethodsSupport {
      * @since 1.7.0
      */
     public static boolean asBoolean(Iterator iterator) {
+        if (null == iterator) {
+            return false;
+        }
+
         return iterator.hasNext();
     }
 
@@ -10848,6 +10864,10 @@ public class DefaultGroovyMethods extends DefaultGroovyMethodsSupport {
      * @since 1.7.0
      */
     public static boolean asBoolean(Enumeration enumeration) {
+        if (null == enumeration) {
+            return false;
+        }
+
         return enumeration.hasMoreElements();
     }
 
@@ -10861,6 +10881,10 @@ public class DefaultGroovyMethods extends DefaultGroovyMethodsSupport {
      * @since 1.7.0
      */
     public static boolean asBoolean(Object[] array) {
+        if (null == array) {
+            return false;
+        }
+
         return array.length > 0;
     }
 
@@ -10874,6 +10898,10 @@ public class DefaultGroovyMethods extends DefaultGroovyMethodsSupport {
      * @since 1.7.4
      */
     public static boolean asBoolean(byte[] array) {
+        if (null == array) {
+            return false;
+        }
+
         return array.length > 0;
     }
 
@@ -10887,6 +10915,10 @@ public class DefaultGroovyMethods extends DefaultGroovyMethodsSupport {
      * @since 1.7.4
      */
     public static boolean asBoolean(short[] array) {
+        if (null == array) {
+            return false;
+        }
+
         return array.length > 0;
     }
 
@@ -10900,6 +10932,10 @@ public class DefaultGroovyMethods extends DefaultGroovyMethodsSupport {
      * @since 1.7.4
      */
     public static boolean asBoolean(int[] array) {
+        if (null == array) {
+            return false;
+        }
+
         return array.length > 0;
     }
 
@@ -10913,6 +10949,10 @@ public class DefaultGroovyMethods extends DefaultGroovyMethodsSupport {
      * @since 1.7.4
      */
     public static boolean asBoolean(long[] array) {
+        if (null == array) {
+            return false;
+        }
+
         return array.length > 0;
     }
 
@@ -10926,6 +10966,10 @@ public class DefaultGroovyMethods extends DefaultGroovyMethodsSupport {
      * @since 1.7.4
      */
     public static boolean asBoolean(float[] array) {
+        if (null == array) {
+            return false;
+        }
+
         return array.length > 0;
     }
 
@@ -10939,6 +10983,10 @@ public class DefaultGroovyMethods extends DefaultGroovyMethodsSupport {
      * @since 1.7.4
      */
     public static boolean asBoolean(double[] array) {
+        if (null == array) {
+            return false;
+        }
+
         return array.length > 0;
     }
 
@@ -10952,6 +11000,10 @@ public class DefaultGroovyMethods extends DefaultGroovyMethodsSupport {
      * @since 1.7.4
      */
     public static boolean asBoolean(boolean[] array) {
+        if (null == array) {
+            return false;
+        }
+
         return array.length > 0;
     }
 
@@ -10965,6 +11017,10 @@ public class DefaultGroovyMethods extends DefaultGroovyMethodsSupport {
      * @since 1.7.4
      */
     public static boolean asBoolean(char[] array) {
+        if (null == array) {
+            return false;
+        }
+
         return array.length > 0;
     }
 
@@ -10979,6 +11035,10 @@ public class DefaultGroovyMethods extends DefaultGroovyMethodsSupport {
      */
 
     public static boolean asBoolean(Character character) {
+        if (null == character) {
+            return false;
+        }
+
         return character != 0;
     }
 
@@ -10992,6 +11052,10 @@ public class DefaultGroovyMethods extends DefaultGroovyMethodsSupport {
      * @since 1.7.0
      */
     public static boolean asBoolean(Number number) {
+        if (null == number) {
+            return false;
+        }
+
         return number.doubleValue() != 0;
     }
 

http://git-wip-us.apache.org/repos/asf/groovy/blob/4c09080f/src/main/org/codehaus/groovy/runtime/StringGroovyMethods.java
----------------------------------------------------------------------
diff --git a/src/main/org/codehaus/groovy/runtime/StringGroovyMethods.java b/src/main/org/codehaus/groovy/runtime/StringGroovyMethods.java
index c6fa15e..02e7199 100644
--- a/src/main/org/codehaus/groovy/runtime/StringGroovyMethods.java
+++ b/src/main/org/codehaus/groovy/runtime/StringGroovyMethods.java
@@ -84,6 +84,10 @@ public class StringGroovyMethods extends DefaultGroovyMethodsSupport {
      * @since 1.7.0
      */
     public static boolean asBoolean(CharSequence string) {
+        if (null == string) {
+            return false;
+        }
+
         return string.length() > 0;
     }
 
@@ -95,6 +99,10 @@ public class StringGroovyMethods extends DefaultGroovyMethodsSupport {
      * @since 1.7.0
      */
     public static boolean asBoolean(Matcher matcher) {
+        if (null == matcher) {
+            return false;
+        }
+
         RegexSupport.setLastMatcher(matcher);
         return matcher.find();
     }