This is an automated email from the ASF dual-hosted git repository.

ggregory pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/commons-jexl.git


The following commit(s) were added to refs/heads/master by this push:
     new df4c163  No need to nest in else.
df4c163 is described below

commit df4c163ff2062bd71b66b7ab132c8ec9e4855671
Author: Gary Gregory <garydgreg...@gmail.com>
AuthorDate: Fri Mar 5 14:40:20 2021 -0500

    No need to nest in else.
---
 .../org/apache/commons/jexl3/JexlArithmetic.java   | 291 ++++++++++++---------
 .../org/apache/commons/jexl3/JexlException.java    |  27 +-
 .../org/apache/commons/jexl3/ObjectContext.java    |   3 +-
 .../commons/jexl3/internal/ArrayBuilder.java       |  44 ++--
 .../apache/commons/jexl3/internal/Debugger.java    |  11 +-
 .../org/apache/commons/jexl3/internal/Engine.java  |   7 +-
 .../commons/jexl3/internal/IntegerRange.java       |   6 +-
 .../apache/commons/jexl3/internal/Interpreter.java | 149 +++++------
 .../commons/jexl3/internal/InterpreterBase.java    |  43 +--
 .../commons/jexl3/internal/LexicalScope.java       |   3 +-
 .../apache/commons/jexl3/internal/LongRange.java   |   6 +-
 .../apache/commons/jexl3/internal/Operators.java   |   9 +-
 .../org/apache/commons/jexl3/internal/Scope.java   |  65 +++--
 .../commons/jexl3/internal/TemplateDebugger.java   |  53 ++--
 .../commons/jexl3/internal/TemplateEngine.java     |  30 +--
 .../jexl3/internal/introspection/ClassMap.java     |  11 +-
 .../internal/introspection/ConstructorMethod.java  |   3 +-
 .../jexl3/internal/introspection/IndexedType.java  |   6 +-
 .../jexl3/internal/introspection/Introspector.java |   3 +-
 .../internal/introspection/ListGetExecutor.java    |   6 +-
 .../internal/introspection/MapGetExecutor.java     |   3 +-
 .../internal/introspection/MapSetExecutor.java     |   3 +-
 .../internal/introspection/MethodExecutor.java     |   3 +-
 .../jexl3/internal/introspection/MethodKey.java    |   3 +-
 .../commons/jexl3/introspection/JexlSandbox.java   |   3 +-
 .../commons/jexl3/parser/ASTIdentifierAccess.java  |   3 +-
 .../apache/commons/jexl3/parser/ASTJexlScript.java |   3 +-
 .../org/apache/commons/jexl3/parser/JexlNode.java  |  10 +-
 .../apache/commons/jexl3/parser/JexlParser.java    |   3 +-
 .../commons/jexl3/scripting/JexlScriptEngine.java  |  12 +-
 .../jexl3/scripting/JexlScriptEngineFactory.java   |   3 +-
 .../org/apache/commons/jexl3/AnnotationTest.java   |  19 +-
 .../commons/jexl3/ArithmeticOperatorTest.java      |   6 +-
 .../org/apache/commons/jexl3/ArithmeticTest.java   |  12 +-
 .../java/org/apache/commons/jexl3/CacheTest.java   |   3 +-
 .../org/apache/commons/jexl3/ClassCreator.java     |  15 +-
 .../org/apache/commons/jexl3/Issues100Test.java    |   3 +-
 .../org/apache/commons/jexl3/Issues200Test.java    |   3 +-
 .../java/org/apache/commons/jexl3/JXLTTest.java    |   6 +-
 .../java/org/apache/commons/jexl3/MethodTest.java  |  18 +-
 .../apache/commons/jexl3/PropertyAccessTest.java   |   6 +-
 .../apache/commons/jexl3/SynchronizedContext.java  |   7 +-
 42 files changed, 458 insertions(+), 465 deletions(-)

diff --git a/src/main/java/org/apache/commons/jexl3/JexlArithmetic.java 
b/src/main/java/org/apache/commons/jexl3/JexlArithmetic.java
index 7645ae5..c9defce 100644
--- a/src/main/java/org/apache/commons/jexl3/JexlArithmetic.java
+++ b/src/main/java/org/apache/commons/jexl3/JexlArithmetic.java
@@ -358,9 +358,8 @@ public class JexlArithmetic {
         if ((lfrom >= Integer.MIN_VALUE && lfrom <= Integer.MAX_VALUE)
                 && (lto >= Integer.MIN_VALUE && lto <= Integer.MAX_VALUE)) {
             return org.apache.commons.jexl3.internal.IntegerRange.create((int) 
lfrom, (int) lto);
-        } else {
-            return org.apache.commons.jexl3.internal.LongRange.create(lfrom, 
lto);
         }
+        return org.apache.commons.jexl3.internal.LongRange.create(lfrom, lto);
     }
 
     /**
@@ -401,9 +400,8 @@ public class JexlArithmetic {
         final int mscale = getMathScale();
         if (mscale >= 0) {
             return number.setScale(mscale, getMathContext().getRoundingMode());
-        } else {
-            return number;
         }
+        return number;
     }
 
     /**
@@ -526,20 +524,20 @@ public class JexlArithmetic {
             if (bigd.compareTo(BIGD_DOUBLE_MAX_VALUE) > 0
                 || bigd.compareTo(BIGD_DOUBLE_MIN_VALUE) < 0) {
                 return original;
-            } else {
-                try {
-                    final long l = bigd.longValueExact();
-                    // coerce to int when possible (int being so often used in 
method parms)
-                    if (narrowAccept(narrow, Integer.class)
-                            && l <= Integer.MAX_VALUE
-                            && l >= Integer.MIN_VALUE) {
-                        return (int) l;
-                    } else if (narrowAccept(narrow, Long.class)) {
-                        return l;
-                    }
-                } catch (final ArithmeticException xa) {
-                    // ignore, no exact value possible
+            }
+            try {
+                final long l = bigd.longValueExact();
+                // coerce to int when possible (int being so often used in 
method parms)
+                if (narrowAccept(narrow, Integer.class)
+                        && l <= Integer.MAX_VALUE
+                        && l >= Integer.MIN_VALUE) {
+                    return (int) l;
                 }
+                if (narrowAccept(narrow, Long.class)) {
+                    return l;
+                }
+            } catch (final ArithmeticException xa) {
+                // ignore, no exact value possible
             }
         }
         if (original instanceof Double || original instanceof Float) {
@@ -627,9 +625,8 @@ public class JexlArithmetic {
                 // coerce to int when possible (int being so often used in 
method parms)
                 if (l <= Integer.MAX_VALUE && l >= Integer.MIN_VALUE) {
                     return (int) l;
-                } else {
-                    return l;
                 }
+                return l;
             } catch (final ArithmeticException xa) {
                 // ignore, no exact value possible
             }
@@ -673,9 +670,8 @@ public class JexlArithmetic {
     protected Number narrowLong(final Object lhs, final Object rhs, final long 
r) {
         if (!(lhs instanceof Long || rhs instanceof Long) && (int) r == r) {
             return (int) r;
-        } else {
-            return r;
         }
+        return r;
     }
 
     /**
@@ -974,25 +970,35 @@ public class JexlArithmetic {
         if (val == null) {
             controlNullOperand();
             return null;
-        } else if (val instanceof Integer) {
+        }
+        if (val instanceof Integer) {
             return -((Integer) val);
-        } else if (val instanceof Double) {
+        }
+        if (val instanceof Double) {
             return - ((Double) val);
-        } else if (val instanceof Long) {
+        }
+        if (val instanceof Long) {
             return -((Long) val);
-        } else if (val instanceof BigDecimal) {
+        }
+        if (val instanceof BigDecimal) {
             return ((BigDecimal) val).negate();
-        } else if (val instanceof BigInteger) {
+        }
+        if (val instanceof BigInteger) {
             return ((BigInteger) val).negate();
-        } else if (val instanceof Float) {
+        }
+        if (val instanceof Float) {
             return -((Float) val);
-        } else if (val instanceof Short) {
+        }
+        if (val instanceof Short) {
             return (short) -((Short) val);
-        } else if (val instanceof Byte) {
+        }
+        if (val instanceof Byte) {
             return (byte) -((Byte) val);
-        } else if (val instanceof Boolean) {
+        }
+        if (val instanceof Boolean) {
             return ((Boolean) val) ? Boolean.FALSE : Boolean.TRUE;
-        } else if (val instanceof AtomicBoolean) {
+        }
+        if (val instanceof AtomicBoolean) {
             return ((AtomicBoolean) val).get() ? Boolean.FALSE : Boolean.TRUE;
         }
         throw new ArithmeticException("Object negate:(" + val + ")");
@@ -1299,48 +1305,56 @@ public class JexlArithmetic {
                 final BigDecimal l = toBigDecimal(left);
                 final BigDecimal r = toBigDecimal(right);
                 return l.compareTo(r);
-            } else if (left instanceof BigInteger || right instanceof 
BigInteger) {
+            }
+            if (left instanceof BigInteger || right instanceof BigInteger) {
                 final BigInteger l = toBigInteger(left);
                 final BigInteger r = toBigInteger(right);
                 return l.compareTo(r);
-            } else if (isFloatingPoint(left) || isFloatingPoint(right)) {
+            }
+            if (isFloatingPoint(left) || isFloatingPoint(right)) {
                 final double lhs = toDouble(left);
                 final double rhs = toDouble(right);
                 if (Double.isNaN(lhs)) {
                     if (Double.isNaN(rhs)) {
                         return 0;
-                    } else {
-                        return -1;
                     }
-                } else if (Double.isNaN(rhs)) {
+                    return -1;
+                }
+                if (Double.isNaN(rhs)) {
                     // lhs is not NaN
                     return +1;
-                } else if (lhs < rhs) {
+                }
+                if (lhs < rhs) {
                     return -1;
-                } else if (lhs > rhs) {
+                }
+                if (lhs > rhs) {
                     return +1;
-                } else {
-                    return 0;
                 }
-            } else if (isNumberable(left) || isNumberable(right)) {
+                return 0;
+            }
+            if (isNumberable(left) || isNumberable(right)) {
                 final long lhs = toLong(left);
                 final long rhs = toLong(right);
                 if (lhs < rhs) {
                     return -1;
-                } else if (lhs > rhs) {
+                }
+                if (lhs > rhs) {
                     return +1;
-                } else {
-                    return 0;
                 }
-            } else if (left instanceof String || right instanceof String) {
+                return 0;
+            }
+            if (left instanceof String || right instanceof String) {
                 return toString(left).compareTo(toString(right));
-            } else if ("==".equals(operator)) {
+            }
+            if ("==".equals(operator)) {
                 return left.equals(right) ? 0 : -1;
-            } else if (left instanceof Comparable<?>) {
+            }
+            if (left instanceof Comparable<?>) {
                 @SuppressWarnings("unchecked") // OK because of instanceof 
check above
                 final Comparable<Object> comparable = (Comparable<Object>) 
left;
                 return comparable.compareTo(right);
-            } else if (right instanceof Comparable<?>) {
+            }
+            if (right instanceof Comparable<?>) {
                 @SuppressWarnings("unchecked") // OK because of instanceof 
check above
                 final Comparable<Object> comparable = (Comparable<Object>) 
right;
                 return comparable.compareTo(left);
@@ -1359,13 +1373,14 @@ public class JexlArithmetic {
     public boolean equals(final Object left, final Object right) {
         if (left == right) {
             return true;
-        } else if (left == null || right == null) {
+        }
+        if (left == null || right == null) {
             return false;
-        } else if (left instanceof Boolean || right instanceof Boolean) {
+        }
+        if (left instanceof Boolean || right instanceof Boolean) {
             return toBoolean(left) == toBoolean(right);
-        } else {
-            return compare(left, right, "==") == 0;
         }
+        return compare(left, right, "==") == 0;
     }
 
     /**
@@ -1378,9 +1393,8 @@ public class JexlArithmetic {
     public boolean lessThan(final Object left, final Object right) {
         if ((left == right) || (left == null) || (right == null)) {
             return false;
-        } else {
-            return compare(left, right, "<") < 0;
         }
+        return compare(left, right, "<") < 0;
 
     }
 
@@ -1394,9 +1408,8 @@ public class JexlArithmetic {
     public boolean greaterThan(final Object left, final Object right) {
         if ((left == right) || left == null || right == null) {
             return false;
-        } else {
-            return compare(left, right, ">") > 0;
         }
+        return compare(left, right, ">") > 0;
     }
 
     /**
@@ -1409,11 +1422,11 @@ public class JexlArithmetic {
     public boolean lessThanOrEqual(final Object left, final Object right) {
         if (left == right) {
             return true;
-        } else if (left == null || right == null) {
+        }
+        if (left == null || right == null) {
             return false;
-        } else {
-            return compare(left, right, "<=") <= 0;
         }
+        return compare(left, right, "<=") <= 0;
     }
 
     /**
@@ -1426,11 +1439,11 @@ public class JexlArithmetic {
     public boolean greaterThanOrEqual(final Object left, final Object right) {
         if (left == right) {
             return true;
-        } else if (left == null || right == null) {
+        }
+        if (left == null || right == null) {
             return false;
-        } else {
-            return compare(left, right, ">=") >= 0;
         }
+        return compare(left, right, ">=") >= 0;
     }
 
     /**
@@ -1444,20 +1457,23 @@ public class JexlArithmetic {
         if (val == null) {
             controlNullOperand();
             return false;
-        } else if (val instanceof Boolean) {
+        }
+        if (val instanceof Boolean) {
             return ((Boolean) val);
-        } else if (val instanceof Number) {
+        }
+        if (val instanceof Number) {
             final double number = toDouble(val);
             return !Double.isNaN(number) && number != 0.d;
-        } else if (val instanceof AtomicBoolean) {
+        }
+        if (val instanceof AtomicBoolean) {
             return ((AtomicBoolean) val).get();
-        } else if (val instanceof String) {
+        }
+        if (val instanceof String) {
             final String strval = val.toString();
             return !strval.isEmpty() && !"false".equals(strval);
-        } else {
-            // non null value is true
-            return true;
         }
+        // non null value is true
+        return true;
     }
 
     /**
@@ -1473,25 +1489,30 @@ public class JexlArithmetic {
         if (val == null) {
             controlNullOperand();
             return 0;
-        } else if (val instanceof Double) {
+        }
+        if (val instanceof Double) {
             final Double dval = (Double) val;
             if (Double.isNaN(dval)) {
                 return 0;
-            } else {
-                return dval.intValue();
             }
-        } else if (val instanceof Number) {
+            return dval.intValue();
+        }
+        if (val instanceof Number) {
             return ((Number) val).intValue();
-        } else if (val instanceof String) {
+        }
+        if (val instanceof String) {
             if ("".equals(val)) {
                 return 0;
             }
             return Integer.parseInt((String) val);
-        } else if (val instanceof Boolean) {
+        }
+        if (val instanceof Boolean) {
             return ((Boolean) val) ? 1 : 0;
-        } else if (val instanceof AtomicBoolean) {
+        }
+        if (val instanceof AtomicBoolean) {
             return ((AtomicBoolean) val).get() ? 1 : 0;
-        } else if (val instanceof Character) {
+        }
+        if (val instanceof Character) {
             return ((Character) val);
         }
 
@@ -1512,26 +1533,30 @@ public class JexlArithmetic {
         if (val == null) {
             controlNullOperand();
             return 0L;
-        } else if (val instanceof Double) {
+        }
+        if (val instanceof Double) {
             final Double dval = (Double) val;
             if (Double.isNaN(dval)) {
                 return 0L;
-            } else {
-                return dval.longValue();
             }
-        } else if (val instanceof Number) {
+            return dval.longValue();
+        }
+        if (val instanceof Number) {
             return ((Number) val).longValue();
-        } else if (val instanceof String) {
+        }
+        if (val instanceof String) {
             if ("".equals(val)) {
                 return 0L;
-            } else {
-                return Long.parseLong((String) val);
             }
-        } else if (val instanceof Boolean) {
+            return Long.parseLong((String) val);
+        }
+        if (val instanceof Boolean) {
             return ((Boolean) val) ? 1L : 0L;
-        } else if (val instanceof AtomicBoolean) {
+        }
+        if (val instanceof AtomicBoolean) {
             return ((AtomicBoolean) val).get() ? 1L : 0L;
-        } else if (val instanceof Character) {
+        }
+        if (val instanceof Character) {
             return ((Character) val);
         }
 
@@ -1552,31 +1577,37 @@ public class JexlArithmetic {
         if (val == null) {
             controlNullOperand();
             return BigInteger.ZERO;
-        } else if (val instanceof BigInteger) {
+        }
+        if (val instanceof BigInteger) {
             return (BigInteger) val;
-        } else if (val instanceof Double) {
+        }
+        if (val instanceof Double) {
             final Double dval = (Double) val;
             if (Double.isNaN(dval)) {
                 return BigInteger.ZERO;
-            } else {
-                return BigInteger.valueOf(dval.longValue());
             }
-        } else if (val instanceof BigDecimal) {
+            return BigInteger.valueOf(dval.longValue());
+        }
+        if (val instanceof BigDecimal) {
             return ((BigDecimal) val).toBigInteger();
-        } else if (val instanceof Number) {
+        }
+        if (val instanceof Number) {
             return BigInteger.valueOf(((Number) val).longValue());
-        } else if (val instanceof Boolean) {
+        }
+        if (val instanceof Boolean) {
             return BigInteger.valueOf(((Boolean) val) ? 1L : 0L);
-        } else if (val instanceof AtomicBoolean) {
+        }
+        if (val instanceof AtomicBoolean) {
             return BigInteger.valueOf(((AtomicBoolean) val).get() ? 1L : 0L);
-        } else if (val instanceof String) {
+        }
+        if (val instanceof String) {
             final String string = (String) val;
             if ("".equals(string)) {
                 return BigInteger.ZERO;
-            } else {
-                return new BigInteger(string);
             }
-        } else if (val instanceof Character) {
+            return new BigInteger(string);
+        }
+        if (val instanceof Character) {
             final int i = ((Character) val);
             return BigInteger.valueOf(i);
         }
@@ -1597,28 +1628,34 @@ public class JexlArithmetic {
     public BigDecimal toBigDecimal(final Object val) {
         if (val instanceof BigDecimal) {
             return roundBigDecimal((BigDecimal) val);
-        } else if (val == null) {
+        }
+        if (val == null) {
             controlNullOperand();
             return BigDecimal.ZERO;
-        } else if (val instanceof Double) {
+        }
+        if (val instanceof Double) {
             if (Double.isNaN(((Double) val))) {
                 return BigDecimal.ZERO;
-            } else {
-                return roundBigDecimal(new BigDecimal(val.toString(), 
getMathContext()));
             }
-        } else if (val instanceof Number) {
             return roundBigDecimal(new BigDecimal(val.toString(), 
getMathContext()));
-        } else if (val instanceof Boolean) {
+        }
+        if (val instanceof Number) {
+            return roundBigDecimal(new BigDecimal(val.toString(), 
getMathContext()));
+        }
+        if (val instanceof Boolean) {
             return BigDecimal.valueOf(((Boolean) val) ? 1. : 0.);
-        } else if (val instanceof AtomicBoolean) {
+        }
+        if (val instanceof AtomicBoolean) {
             return BigDecimal.valueOf(((AtomicBoolean) val).get() ? 1L : 0L);
-        } else if (val instanceof String) {
+        }
+        if (val instanceof String) {
             final String string = (String) val;
             if ("".equals(string)) {
                 return BigDecimal.ZERO;
             }
             return roundBigDecimal(new BigDecimal(string, getMathContext()));
-        } else if (val instanceof Character) {
+        }
+        if (val instanceof Character) {
             final int i = ((Character) val);
             return new BigDecimal(i);
         }
@@ -1639,25 +1676,30 @@ public class JexlArithmetic {
         if (val == null) {
             controlNullOperand();
             return 0;
-        } else if (val instanceof Double) {
+        }
+        if (val instanceof Double) {
             return ((Double) val);
-        } else if (val instanceof Number) {
+        }
+        if (val instanceof Number) {
             //The below construct is used rather than 
((Number)val).doubleValue() to ensure
             //equality between comparing new Double( 6.4 / 3 ) and the jexl 
expression of 6.4 / 3
             return Double.parseDouble(String.valueOf(val));
-        } else if (val instanceof Boolean) {
+        }
+        if (val instanceof Boolean) {
             return ((Boolean) val) ? 1. : 0.;
-        } else if (val instanceof AtomicBoolean) {
+        }
+        if (val instanceof AtomicBoolean) {
             return ((AtomicBoolean) val).get() ? 1. : 0.;
-        } else if (val instanceof String) {
+        }
+        if (val instanceof String) {
             final String string = (String) val;
             if ("".equals(string)) {
                 return Double.NaN;
-            } else {
-                // the spec seems to be iffy about this.  Going to give it a 
wack anyway
-                return Double.parseDouble(string);
             }
-        } else if (val instanceof Character) {
+            // the spec seems to be iffy about this.  Going to give it a wack 
anyway
+            return Double.parseDouble(string);
+        }
+        if (val instanceof Character) {
             final int i = ((Character) val);
             return i;
         }
@@ -1677,16 +1719,15 @@ public class JexlArithmetic {
         if (val == null) {
             controlNullOperand();
             return "";
-        } else if (val instanceof Double) {
-            final Double dval = (Double) val;
-            if (Double.isNaN(dval)) {
-                return "";
-            } else {
-                return dval.toString();
-            }
-        } else {
+        }
+        if (!(val instanceof Double)) {
             return val.toString();
         }
+        final Double dval = (Double) val;
+        if (Double.isNaN(dval)) {
+            return "";
+        }
+        return dval.toString();
     }
 
     /**
diff --git a/src/main/java/org/apache/commons/jexl3/JexlException.java 
b/src/main/java/org/apache/commons/jexl3/JexlException.java
index 45d3299..a806ff9 100644
--- a/src/main/java/org/apache/commons/jexl3/JexlException.java
+++ b/src/main/java/org/apache/commons/jexl3/JexlException.java
@@ -259,21 +259,20 @@ public class JexlException extends RuntimeException {
         final int length = expr.length();
         if (length < MAX_EXCHARLOC) {
             return prefix + " error in '" + expr + "'";
-        } else {
-            final int me = MAX_EXCHARLOC / 2;
-            int begin = info.getColumn() - me;
-            if (begin < 0 || length < me) {
-                begin = 0;
-            } else if (begin > length) {
-                begin = me;
-            }
-            int end = begin + MAX_EXCHARLOC;
-            if (end > length) {
-                end = length;
-            }
-            return prefix + " error near '... "
-                    + expr.substring(begin, end) + " ...'";
         }
+        final int me = MAX_EXCHARLOC / 2;
+        int begin = info.getColumn() - me;
+        if (begin < 0 || length < me) {
+            begin = 0;
+        } else if (begin > length) {
+            begin = me;
+        }
+        int end = begin + MAX_EXCHARLOC;
+        if (end > length) {
+            end = length;
+        }
+        return prefix + " error near '... "
+                + expr.substring(begin, end) + " ...'";
     }
 
     /**
diff --git a/src/main/java/org/apache/commons/jexl3/ObjectContext.java 
b/src/main/java/org/apache/commons/jexl3/ObjectContext.java
index b378659..6d4b041 100644
--- a/src/main/java/org/apache/commons/jexl3/ObjectContext.java
+++ b/src/main/java/org/apache/commons/jexl3/ObjectContext.java
@@ -102,8 +102,7 @@ public class ObjectContext<T> implements JexlContext, 
JexlContext.NamespaceResol
     public Object resolveNamespace(final String name) {
         if (name == null || name.isEmpty()) {
             return object;
-        } else {
-            return null;
         }
+        return null;
     }
 }
diff --git a/src/main/java/org/apache/commons/jexl3/internal/ArrayBuilder.java 
b/src/main/java/org/apache/commons/jexl3/internal/ArrayBuilder.java
index a7789b7..11da9ea 100644
--- a/src/main/java/org/apache/commons/jexl3/internal/ArrayBuilder.java
+++ b/src/main/java/org/apache/commons/jexl3/internal/ArrayBuilder.java
@@ -112,30 +112,28 @@ public class ArrayBuilder implements 
JexlArithmetic.ArrayBuilder {
 
     @Override
     public Object create(final boolean extended) {
-        if (untyped != null) {
-            if (extended) {
-                final List<Object> list = new ArrayList<Object>(added);
-                list.addAll(Arrays.asList(untyped).subList(0, added));
-                return list;
-            }
-            // convert untyped array to the common class if not Object.class
-            if (commonClass != null && !Object.class.equals(commonClass)) {
-                final int size = added;
-                // if the commonClass is a number, it has an equivalent 
primitive type, get it
-                if (unboxing) {
-                    commonClass = unboxingClass(commonClass);
-                }
-                // allocate and fill up the typed array
-                final Object typed = Array.newInstance(commonClass, size);
-                for (int i = 0; i < size; ++i) {
-                    Array.set(typed, i, untyped[i]);
-                }
-                return typed;
-            } else {
-                return untyped.clone();
-            }
-        } else {
+        if (untyped == null) {
             return new Object[0];
         }
+        if (extended) {
+            final List<Object> list = new ArrayList<Object>(added);
+            list.addAll(Arrays.asList(untyped).subList(0, added));
+            return list;
+        }
+        // convert untyped array to the common class if not Object.class
+        if ((commonClass == null) || Object.class.equals(commonClass)) {
+            return untyped.clone();
+        }
+        final int size = added;
+        // if the commonClass is a number, it has an equivalent primitive 
type, get it
+        if (unboxing) {
+            commonClass = unboxingClass(commonClass);
+        }
+        // allocate and fill up the typed array
+        final Object typed = Array.newInstance(commonClass, size);
+        for (int i = 0; i < size; ++i) {
+            Array.set(typed, i, untyped[i]);
+        }
+        return typed;
     }
 }
diff --git a/src/main/java/org/apache/commons/jexl3/internal/Debugger.java 
b/src/main/java/org/apache/commons/jexl3/internal/Debugger.java
index 4a024e0..40127d7 100644
--- a/src/main/java/org/apache/commons/jexl3/internal/Debugger.java
+++ b/src/main/java/org/apache/commons/jexl3/internal/Debugger.java
@@ -152,9 +152,8 @@ public class Debugger extends ParserVisitor implements 
JexlInfo.Detail {
     public boolean debug(final JexlExpression jscript) {
         if (jscript instanceof Script) {
             return debug(((Script) jscript).script);
-        } else {
-            return false;
         }
+        return false;
     }
 
     /**
@@ -165,9 +164,8 @@ public class Debugger extends ParserVisitor implements 
JexlInfo.Detail {
     public boolean debug(final JexlScript jscript) {
         if (jscript instanceof Script) {
             return debug(((Script) jscript).script);
-        } else {
-            return false;
         }
+        return false;
     }
 
     /**
@@ -640,10 +638,9 @@ public class Debugger extends ParserVisitor implements 
JexlInfo.Detail {
         final String image = StringParser.escapeIdentifier(node.getName());
         if (ns == null) {
             return check(node, image, data);
-        } else {
-            final String nsid = StringParser.escapeIdentifier(ns) + ":" + 
image;
-            return check(node, nsid, data);
         }
+        final String nsid = StringParser.escapeIdentifier(ns) + ":" + image;
+        return check(node, nsid, data);
     }
 
     @Override
diff --git a/src/main/java/org/apache/commons/jexl3/internal/Engine.java 
b/src/main/java/org/apache/commons/jexl3/internal/Engine.java
index f372f98..837a66d 100644
--- a/src/main/java/org/apache/commons/jexl3/internal/Engine.java
+++ b/src/main/java/org/apache/commons/jexl3/internal/Engine.java
@@ -564,12 +564,11 @@ public class Engine extends JexlEngine {
             xjexl = new JexlException.Method(info, meth, args, xany);
         }
         if (xjexl != null) {
-            if (silent) {
-                logger.warn(xjexl.getMessage(), xjexl.getCause());
-                result = null;
-            } else {
+            if (!silent) {
                 throw xjexl.clean();
             }
+            logger.warn(xjexl.getMessage(), xjexl.getCause());
+            result = null;
         }
         return result;
     }
diff --git a/src/main/java/org/apache/commons/jexl3/internal/IntegerRange.java 
b/src/main/java/org/apache/commons/jexl3/internal/IntegerRange.java
index e04bd66..6d108ef 100644
--- a/src/main/java/org/apache/commons/jexl3/internal/IntegerRange.java
+++ b/src/main/java/org/apache/commons/jexl3/internal/IntegerRange.java
@@ -39,9 +39,8 @@ public abstract class IntegerRange implements 
Collection<Integer> {
     public static IntegerRange create(final int from, final int to) {
         if (from <= to) {
             return new IntegerRange.Ascending(from, to);
-        } else {
-            return new IntegerRange.Descending(to, from);
         }
+        return new IntegerRange.Descending(to, from);
     }
     /**
      * Creates a new range.
@@ -116,9 +115,8 @@ public abstract class IntegerRange implements 
Collection<Integer> {
         if (o instanceof Number) {
             final long v = ((Number) o).intValue();
             return min <= v && v <= max;
-        } else {
-            return false;
         }
+        return false;
     }
 
     @Override
diff --git a/src/main/java/org/apache/commons/jexl3/internal/Interpreter.java 
b/src/main/java/org/apache/commons/jexl3/internal/Interpreter.java
index 40060f3..b447db6 100644
--- a/src/main/java/org/apache/commons/jexl3/internal/Interpreter.java
+++ b/src/main/java/org/apache/commons/jexl3/internal/Interpreter.java
@@ -940,16 +940,14 @@ public class Interpreter extends InterpreterBase {
         if (node.jjtGetNumChildren() == 3) {
             if (condition != null && arithmetic.toBoolean(condition)) {
                 return node.jjtGetChild(1).jjtAccept(this, data);
-            } else {
-                return node.jjtGetChild(2).jjtAccept(this, data);
             }
+            return node.jjtGetChild(2).jjtAccept(this, data);
         }
         // elvis as in "x ?: z"
         if (condition != null && arithmetic.toBoolean(condition)) {
             return condition;
-        } else {
-            return node.jjtGetChild(1).jjtAccept(this, data);
         }
+        return node.jjtGetChild(1).jjtAccept(this, data);
     }
 
     @Override
@@ -1023,20 +1021,19 @@ public class Interpreter extends InterpreterBase {
     protected Object visit(final ASTJexlScript script, final Object data) {
         if (script instanceof ASTJexlLambda && !((ASTJexlLambda) 
script).isTopLevel()) {
             return new Closure(this, (ASTJexlLambda) script);
-        } else {
-            block = new LexicalFrame(frame, block).defineArgs();
-            try {
-                final int numChildren = script.jjtGetNumChildren();
-                Object result = null;
-                for (int i = 0; i < numChildren; i++) {
-                    final JexlNode child = script.jjtGetChild(i);
-                    result = child.jjtAccept(this, data);
-                    cancelCheck(child);
-                }
-                return result;
-            } finally {
-                block = block.pop();
+        }
+        block = new LexicalFrame(frame, block).defineArgs();
+        try {
+            final int numChildren = script.jjtGetNumChildren();
+            Object result = null;
+            for (int i = 0; i < numChildren; i++) {
+                final JexlNode child = script.jjtGetChild(i);
+                result = child.jjtAccept(this, data);
+                cancelCheck(child);
             }
+            return result;
+        } finally {
+            block = block.pop();
         }
     }
 
@@ -1078,31 +1075,30 @@ public class Interpreter extends InterpreterBase {
      * @return the evaluated identifier
      */
     private Object evalIdentifier(final ASTIdentifierAccess node) {
-        if (node instanceof ASTIdentifierAccessJxlt) {
-            final ASTIdentifierAccessJxlt accessJxlt = 
(ASTIdentifierAccessJxlt) node;
-            final String src = node.getName();
-            Throwable cause = null;
-            TemplateEngine.TemplateExpression expr = 
(TemplateEngine.TemplateExpression) accessJxlt.getExpression();
-            try {
-                if (expr == null) {
-                    final TemplateEngine jxlt = jexl.jxlt();
-                    expr = jxlt.parseExpression(node.jexlInfo(), src, frame != 
null ? frame.getScope() : null);
-                    accessJxlt.setExpression(expr);
-                }
-                if (expr != null) {
-                    final Object name = expr.evaluate(frame, context);
-                    if (name != null) {
-                        final Integer id = 
ASTIdentifierAccess.parseIdentifier(name.toString());
-                        return id != null ? id : name;
-                    }
+        if (!(node instanceof ASTIdentifierAccessJxlt)) {
+            return node.getIdentifier();
+        }
+        final ASTIdentifierAccessJxlt accessJxlt = (ASTIdentifierAccessJxlt) 
node;
+        final String src = node.getName();
+        Throwable cause = null;
+        TemplateEngine.TemplateExpression expr = 
(TemplateEngine.TemplateExpression) accessJxlt.getExpression();
+        try {
+            if (expr == null) {
+                final TemplateEngine jxlt = jexl.jxlt();
+                expr = jxlt.parseExpression(node.jexlInfo(), src, frame != 
null ? frame.getScope() : null);
+                accessJxlt.setExpression(expr);
+            }
+            if (expr != null) {
+                final Object name = expr.evaluate(frame, context);
+                if (name != null) {
+                    final Integer id = 
ASTIdentifierAccess.parseIdentifier(name.toString());
+                    return id != null ? id : name;
                 }
-            } catch (final JxltEngine.Exception xjxlt) {
-                cause = xjxlt;
             }
-            return node.isSafe() ? null : unsolvableProperty(node, src, true, 
cause);
-        } else {
-            return node.getIdentifier();
+        } catch (final JxltEngine.Exception xjxlt) {
+            cause = xjxlt;
         }
+        return node.isSafe() ? null : unsolvableProperty(node, src, true, 
cause);
     }
 
     @Override
@@ -1143,11 +1139,10 @@ public class Interpreter extends InterpreterBase {
                             if (object != null) {
                                 object = visit((ASTMethodNode) objectNode, 
object, context);
                                 continue;
-                            } else {
-                                // remove method name from antish
-                                ant.delete(alen, ant.length());
-                                ptyNode = objectNode;
                             }
+                            // remove method name from antish
+                            ant.delete(alen, ant.length());
+                            ptyNode = objectNode;
                         }
                     }
                     break;
@@ -1170,15 +1165,14 @@ public class Interpreter extends InterpreterBase {
                 if (ant == null) {
                     // if we still have a null object, check for an antish 
variable
                     final JexlNode first = node.jjtGetChild(0);
-                    if (first instanceof ASTIdentifier) {
-                        final ASTIdentifier afirst = (ASTIdentifier) first;
-                        ant = new StringBuilder(afirst.getName());
-                        // skip the else...*
-                    } else {
+                    if (!(first instanceof ASTIdentifier)) {
                         // not an identifier, not antish
                         ptyNode = objectNode;
                         break main;
                     }
+                    final ASTIdentifier afirst = (ASTIdentifier) first;
+                    ant = new StringBuilder(afirst.getName());
+                    // skip the else...*
                     // *... and continue
                     if (!options.isAntish()) {
                         antish = false;
@@ -1192,18 +1186,17 @@ public class Interpreter extends InterpreterBase {
                 // catch up to current node
                 for (; v <= c; ++v) {
                     final JexlNode child = node.jjtGetChild(v);
-                    if (child instanceof ASTIdentifierAccess) {
-                        final ASTIdentifierAccess achild = 
(ASTIdentifierAccess) child;
-                        if (achild.isSafe() || achild.isExpression()) {
-                            break main;
-                        }
-                        ant.append('.');
-                        ant.append(achild.getName());
-                    } else {
+                    if (!(child instanceof ASTIdentifierAccess)) {
                         // not an identifier, not antish
                         ptyNode = objectNode;
                         break main;
                     }
+                    final ASTIdentifierAccess achild = (ASTIdentifierAccess) 
child;
+                    if (achild.isSafe() || achild.isExpression()) {
+                        break main;
+                    }
+                    ant.append('.');
+                    ant.append(achild.getName());
                 }
                 // solve antish
                 object = context.get(ant.toString());
@@ -1384,13 +1377,12 @@ public class Interpreter extends InterpreterBase {
                     final ASTIdentifier firstId = first instanceof 
ASTIdentifier
                             ? (ASTIdentifier) first
                             : null;
-                    if (firstId != null && firstId.getSymbol() < 0) {
-                        ant = new StringBuilder(firstId.getName());
-                    } else {
+                    if ((firstId == null) || (firstId.getSymbol() >= 0)) {
                         // ant remains null, object is null, stop solving
                         antish = false;
                         break main;
                     }
+                    ant = new StringBuilder(firstId.getName());
                 }
                 // catch up to current child
                 for (; v <= c; ++v) {
@@ -1399,13 +1391,12 @@ public class Interpreter extends InterpreterBase {
                             ? (ASTIdentifierAccess) child
                             : null;
                     // remain antish only if unsafe navigation
-                    if (aid != null && !aid.isSafe() && !aid.isExpression()) {
-                        ant.append('.');
-                        ant.append(aid.getName());
-                    } else {
+                    if ((aid == null) || aid.isSafe() || aid.isExpression()) {
                         antish = false;
                         break main;
                     }
+                    ant.append('.');
+                    ant.append(aid.getName());
                 }
                 // solve antish
                 object = context.get(ant.toString());
@@ -1689,12 +1680,11 @@ public class Interpreter extends InterpreterBase {
                 }
                 // if we did not find an exact method by name and we haven't 
tried yet,
                 // attempt to narrow the parameters and if this succeeds, try 
again in next loop
-                if (!narrow && arithmetic.narrowArguments(argv)) {
-                    narrow = true;
-                    // continue;
-                } else {
+                if (narrow || !arithmetic.narrowArguments(argv)) {
                     break;
                 }
+                narrow = true;
+                // continue;
             }
             // we have either evaluated and returned or no method was found
             return node.isSafeLhs(isSafe())
@@ -1878,21 +1868,20 @@ public class Interpreter extends InterpreterBase {
             final JexlNode cblock = stmt.jjtGetChild(last);
             // if the context has changed, might need a new interpreter
             final JexlArithmetic jexla = arithmetic.options(context);
-            if (jexla != arithmetic) {
-                if (!arithmetic.getClass().equals(jexla.getClass())) {
-                    logger.warn("expected arithmetic to be " + 
arithmetic.getClass().getSimpleName()
-                            + ", got " + jexla.getClass().getSimpleName()
-                    );
-                }
-                final Interpreter ii = new Interpreter(Interpreter.this, 
jexla);
-                final Object r = cblock.jjtAccept(ii, data);
-                if (ii.isCancelled()) {
-                    Interpreter.this.cancel();
-                }
-                return r;
-            } else {
+            if (jexla == arithmetic) {
                 return cblock.jjtAccept(Interpreter.this, data);
             }
+            if (!arithmetic.getClass().equals(jexla.getClass())) {
+                logger.warn("expected arithmetic to be " + 
arithmetic.getClass().getSimpleName()
+                        + ", got " + jexla.getClass().getSimpleName()
+                );
+            }
+            final Interpreter ii = new Interpreter(Interpreter.this, jexla);
+            final Object r = cblock.jjtAccept(ii, data);
+            if (ii.isCancelled()) {
+                Interpreter.this.cancel();
+            }
+            return r;
         }
         // tracking whether we processed the annotation
         final AnnotatedCall jstmt = new AnnotatedCall(stmt, index + 1, data);
diff --git 
a/src/main/java/org/apache/commons/jexl3/internal/InterpreterBase.java 
b/src/main/java/org/apache/commons/jexl3/internal/InterpreterBase.java
index 71efbf8..8525856 100644
--- a/src/main/java/org/apache/commons/jexl3/internal/InterpreterBase.java
+++ b/src/main/java/org/apache/commons/jexl3/internal/InterpreterBase.java
@@ -244,10 +244,9 @@ public abstract class InterpreterBase extends 
ParserVisitor {
                     functors.put(prefix, functor);
                 }
                 return functor;
-            } else {
-                // use the NamespaceFunctor class to tag this node as 
not-a-functor
-                node.jjtSetValue(JexlContext.NamespaceFunctor.class);
             }
+            // use the NamespaceFunctor class to tag this node as not-a-functor
+            node.jjtSetValue(JexlContext.NamespaceFunctor.class);
         }
         return namespace;
     }
@@ -434,7 +433,8 @@ public abstract class InterpreterBase extends ParserVisitor 
{
     protected Object variableError(final JexlNode node, final String var, 
final VariableIssue issue) {
         if (isStrictEngine() && !node.isTernaryProtected()) {
             throw new JexlException.Variable(node, var, issue);
-        } else if (logger.isDebugEnabled()) {
+        }
+        if (logger.isDebugEnabled()) {
             logger.debug(JexlException.variableError(node, var, issue));
         }
         return null;
@@ -459,7 +459,8 @@ public abstract class InterpreterBase extends ParserVisitor 
{
     protected Object unsolvableMethod(final JexlNode node, final String 
method, final Object[] args) {
         if (isStrictEngine()) {
             throw new JexlException.Method(node, method, args);
-        } else if (logger.isDebugEnabled()) {
+        }
+        if (logger.isDebugEnabled()) {
             logger.debug(JexlException.methodError(node, method, args));
         }
         return null;
@@ -476,7 +477,8 @@ public abstract class InterpreterBase extends ParserVisitor 
{
     protected Object unsolvableProperty(final JexlNode node, final String 
property, final boolean undef, final Throwable cause) {
         if (isStrictEngine() && !node.isTernaryProtected()) {
             throw new JexlException.Property(node, property, undef, cause);
-        } else if (logger.isDebugEnabled()) {
+        }
+        if (logger.isDebugEnabled()) {
             logger.debug(JexlException.propertyError(node, property, undef));
         }
         return null;
@@ -551,7 +553,8 @@ public abstract class InterpreterBase extends ParserVisitor 
{
     protected Object operatorError(final JexlNode node, final JexlOperator 
operator, final Throwable cause) {
         if (isStrictEngine()) {
             throw new JexlException.Operator(node, 
operator.getOperatorSymbol(), cause);
-        } else if (logger.isDebugEnabled()) {
+        }
+        if (logger.isDebugEnabled()) {
             logger.debug(JexlException.operatorError(node, 
operator.getOperatorSymbol()), cause);
         }
         return null;
@@ -567,7 +570,8 @@ public abstract class InterpreterBase extends ParserVisitor 
{
     protected Object annotationError(final JexlNode node, final String 
annotation, final Throwable cause) {
         if (isStrictEngine()) {
             throw new JexlException.Annotation(node, annotation, cause);
-        } else if (logger.isDebugEnabled()) {
+        }
+        if (logger.isDebugEnabled()) {
             logger.debug(JexlException.annotationError(node, annotation), 
cause);
         }
         return null;
@@ -964,21 +968,19 @@ public abstract class InterpreterBase extends 
ParserVisitor {
             xcause = xany;
         }
         // lets fail
-        if (node != null) {
-            final boolean safe = (node instanceof ASTIdentifierAccess) && 
((ASTIdentifierAccess) node).isSafe();
-            if (safe) {
-                return null;
-            } else {
-                final String attrStr = attribute != null ? 
attribute.toString() : null;
-                return unsolvableProperty(node, attrStr, true, xcause);
-            }
-        } else {
+        if (node == null) {
             // direct call
             final String error = "unable to get object property"
                     + ", class: " + object.getClass().getName()
                     + ", property: " + attribute;
             throw new UnsupportedOperationException(error, xcause);
         }
+        final boolean safe = (node instanceof ASTIdentifierAccess) && 
((ASTIdentifierAccess) node).isSafe();
+        if (safe) {
+            return null;
+        }
+        final String attrStr = attribute != null ? attribute.toString() : null;
+        return unsolvableProperty(node, attrStr, true, xcause);
     }
 
     /**
@@ -1032,10 +1034,7 @@ public abstract class InterpreterBase extends 
ParserVisitor {
             xcause = xany;
         }
         // lets fail
-        if (node != null) {
-            final String attrStr = attribute != null ? attribute.toString() : 
null;
-            unsolvableProperty(node, attrStr, true, xcause);
-        } else {
+        if (node == null) {
             // direct call
             final String error = "unable to set object property"
                     + ", class: " + object.getClass().getName()
@@ -1043,5 +1042,7 @@ public abstract class InterpreterBase extends 
ParserVisitor {
                     + ", argument: " + value.getClass().getSimpleName();
             throw new UnsupportedOperationException(error, xcause);
         }
+        final String attrStr = attribute != null ? attribute.toString() : null;
+        unsolvableProperty(node, attrStr, true, xcause);
     }
 }
diff --git a/src/main/java/org/apache/commons/jexl3/internal/LexicalScope.java 
b/src/main/java/org/apache/commons/jexl3/internal/LexicalScope.java
index 43f9173..4059e55 100644
--- a/src/main/java/org/apache/commons/jexl3/internal/LexicalScope.java
+++ b/src/main/java/org/apache/commons/jexl3/internal/LexicalScope.java
@@ -74,9 +74,8 @@ public class LexicalScope {
     public boolean hasSymbol(final int symbol) {
         if (symbol < LONGBITS) {
             return (symbols & (1L << symbol)) != 0L;
-        } else {
-            return moreSymbols != null && moreSymbols.get(symbol - LONGBITS);
         }
+        return moreSymbols != null && moreSymbols.get(symbol - LONGBITS);
     }
 
     /**
diff --git a/src/main/java/org/apache/commons/jexl3/internal/LongRange.java 
b/src/main/java/org/apache/commons/jexl3/internal/LongRange.java
index 03be0bb..ebd9707 100644
--- a/src/main/java/org/apache/commons/jexl3/internal/LongRange.java
+++ b/src/main/java/org/apache/commons/jexl3/internal/LongRange.java
@@ -41,9 +41,8 @@ public abstract class LongRange implements Collection<Long> {
     public static LongRange create(final long from, final long to) {
         if (from <= to) {
             return new LongRange.Ascending(from, to);
-        } else {
-            return new LongRange.Descending(to, from);
         }
+        return new LongRange.Descending(to, from);
     }
 
     /**
@@ -118,9 +117,8 @@ public abstract class LongRange implements Collection<Long> 
{
         if (o instanceof Number) {
             final long v = ((Number) o).longValue();
             return min <= v && v <= max;
-        } else {
-            return false;
         }
+        return false;
     }
 
     @Override
diff --git a/src/main/java/org/apache/commons/jexl3/internal/Operators.java 
b/src/main/java/org/apache/commons/jexl3/internal/Operators.java
index caa02d1..1484d49 100644
--- a/src/main/java/org/apache/commons/jexl3/internal/Operators.java
+++ b/src/main/java/org/apache/commons/jexl3/internal/Operators.java
@@ -225,7 +225,8 @@ public class Operators {
                 JexlMethod vm = uberspect.getMethod(left, "startsWith", argv);
                 if (returnsBoolean(vm)) {
                     return (Boolean) vm.invoke(left, argv);
-                } else if (arithmetic.narrowArguments(argv)) {
+                }
+                if (arithmetic.narrowArguments(argv)) {
                     vm = uberspect.getMethod(left, "startsWith", argv);
                     if (returnsBoolean(vm)) {
                         return (Boolean) vm.invoke(left, argv);
@@ -269,7 +270,8 @@ public class Operators {
                 JexlMethod vm = uberspect.getMethod(left, "endsWith", argv);
                 if (returnsBoolean(vm)) {
                     return (Boolean) vm.invoke(left, argv);
-                } else if (arithmetic.narrowArguments(argv)) {
+                }
+                if (arithmetic.narrowArguments(argv)) {
                     vm = uberspect.getMethod(left, "endsWith", argv);
                     if (returnsBoolean(vm)) {
                         return (Boolean) vm.invoke(left, argv);
@@ -317,7 +319,8 @@ public class Operators {
                 JexlMethod vm = uberspect.getMethod(left, "contains", argv);
                 if (returnsBoolean(vm)) {
                     return (Boolean) vm.invoke(left, argv);
-                } else if (arithmetic.narrowArguments(argv)) {
+                }
+                if (arithmetic.narrowArguments(argv)) {
                     vm = uberspect.getMethod(left, "contains", argv);
                     if (returnsBoolean(vm)) {
                         return (Boolean) vm.invoke(left, argv);
diff --git a/src/main/java/org/apache/commons/jexl3/internal/Scope.java 
b/src/main/java/org/apache/commons/jexl3/internal/Scope.java
index 3b231df..1bd40a9 100644
--- a/src/main/java/org/apache/commons/jexl3/internal/Scope.java
+++ b/src/main/java/org/apache/commons/jexl3/internal/Scope.java
@@ -219,21 +219,20 @@ public final class Scope {
      * @return the arguments array
      */
     public Frame createFrame(final Frame frame, final Object...args) {
-        if (namedVariables != null) {
-            final Object[] arguments = new Object[namedVariables.size()];
-            Arrays.fill(arguments, UNDECLARED);
-            if (frame != null && capturedVariables != null && parent != null) {
-                for (final Map.Entry<Integer, Integer> capture : 
capturedVariables.entrySet()) {
-                    final Integer target = capture.getKey();
-                    final Integer source = capture.getValue();
-                    final Object arg = frame.get(source);
-                    arguments[target] = arg;
-                }
-            }
-            return new Frame(this, arguments, 0).assign(args);
-        } else {
+        if (namedVariables == null) {
             return null;
         }
+        final Object[] arguments = new Object[namedVariables.size()];
+        Arrays.fill(arguments, UNDECLARED);
+        if (frame != null && capturedVariables != null && parent != null) {
+            for (final Map.Entry<Integer, Integer> capture : 
capturedVariables.entrySet()) {
+                final Integer target = capture.getKey();
+                final Integer source = capture.getValue();
+                final Object arg = frame.get(source);
+                arguments[target] = arg;
+            }
+        }
+        return new Frame(this, arguments, 0).assign(args);
     }
 
     /**
@@ -284,19 +283,18 @@ public final class Scope {
      */
     protected String[] getParameters(final int bound) {
         final int unbound = parms - bound;
-        if (namedVariables != null && unbound > 0) {
-            final String[] pa = new String[unbound];
-            int p = 0;
-            for (final Map.Entry<String, Integer> entry : 
namedVariables.entrySet()) {
-                final int argn = entry.getValue();
-                if (argn >= bound && argn < parms) {
-                    pa[p++] = entry.getKey();
-                }
-            }
-            return pa;
-        } else {
+        if ((namedVariables == null) || (unbound <= 0)) {
             return EMPTY_STRS;
         }
+        final String[] pa = new String[unbound];
+        int p = 0;
+        for (final Map.Entry<String, Integer> entry : 
namedVariables.entrySet()) {
+            final int argn = entry.getValue();
+            if (argn >= bound && argn < parms) {
+                pa[p++] = entry.getKey();
+            }
+        }
+        return pa;
     }
 
     /**
@@ -304,18 +302,17 @@ public final class Scope {
      * @return the local variable names
      */
     public String[] getLocalVariables() {
-        if (namedVariables != null && vars > 0) {
-            final List<String> locals = new ArrayList<String>(vars);
-            for (final Map.Entry<String, Integer> entry : 
namedVariables.entrySet()) {
-                final int symnum = entry.getValue();
-                if (symnum >= parms && (capturedVariables == null || 
!capturedVariables.containsKey(symnum))) {
-                    locals.add(entry.getKey());
-                }
-            }
-            return locals.toArray(new String[locals.size()]);
-        } else {
+        if ((namedVariables == null) || (vars <= 0)) {
             return EMPTY_STRS;
         }
+        final List<String> locals = new ArrayList<String>(vars);
+        for (final Map.Entry<String, Integer> entry : 
namedVariables.entrySet()) {
+            final int symnum = entry.getValue();
+            if (symnum >= parms && (capturedVariables == null || 
!capturedVariables.containsKey(symnum))) {
+                locals.add(entry.getKey());
+            }
+        }
+        return locals.toArray(new String[locals.size()]);
     }
 
 }
diff --git 
a/src/main/java/org/apache/commons/jexl3/internal/TemplateDebugger.java 
b/src/main/java/org/apache/commons/jexl3/internal/TemplateDebugger.java
index c7dfd7e..8934507 100644
--- a/src/main/java/org/apache/commons/jexl3/internal/TemplateDebugger.java
+++ b/src/main/java/org/apache/commons/jexl3/internal/TemplateDebugger.java
@@ -64,9 +64,8 @@ public class TemplateDebugger extends Debugger {
         if (je instanceof TemplateExpression) {
             final TemplateEngine.TemplateExpression te = 
(TemplateEngine.TemplateExpression) je;
             return visit(te, this) != null;
-        } else {
-            return false;
         }
+        return false;
     }
 
     /**
@@ -75,30 +74,29 @@ public class TemplateDebugger extends Debugger {
      * @return true if the template was a {@link TemplateScript} instance, 
false otherwise
      */
     public boolean debug(final JxltEngine.Template jt) {
-        if (jt instanceof TemplateScript) {
-            final TemplateScript ts = (TemplateScript) jt;
-            // ensure expr is not null for templates
-            this.exprs = ts.getExpressions() == null? new 
TemplateExpression[0] : ts.getExpressions();
-            this.script = ts.getScript();
-            start = 0;
-            end = 0;
-            indentLevel = 0;
-            builder.setLength(0);
-            cause = script;
-            final int num = script.jjtGetNumChildren();
-            for (int i = 0; i < num; ++i) {
-                final JexlNode child = script.jjtGetChild(i);
-                acceptStatement(child, null);
-            }
-            // the last line
-            if (builder.length() > 0 && builder.charAt(builder.length() - 1) 
!= '\n') {
-                builder.append('\n');
-            }
-            end = builder.length();
-            return end > 0;
-        } else {
+        if (!(jt instanceof TemplateScript)) {
             return false;
         }
+        final TemplateScript ts = (TemplateScript) jt;
+        // ensure expr is not null for templates
+        this.exprs = ts.getExpressions() == null? new TemplateExpression[0] : 
ts.getExpressions();
+        this.script = ts.getScript();
+        start = 0;
+        end = 0;
+        indentLevel = 0;
+        builder.setLength(0);
+        cause = script;
+        final int num = script.jjtGetNumChildren();
+        for (int i = 0; i < num; ++i) {
+            final JexlNode child = script.jjtGetChild(i);
+            acceptStatement(child, null);
+        }
+        // the last line
+        if (builder.length() > 0 && builder.charAt(builder.length() - 1) != 
'\n') {
+            builder.append('\n');
+        }
+        end = builder.length();
+        return end > 0;
     }
 
 
@@ -147,11 +145,10 @@ public class TemplateDebugger extends Debugger {
             // if statement is a jexl:print(...), may need to prepend '\n'
             newJxltLine();
             return visit(te, data);
-        } else {
-            // if statement is not a jexl:print(...), need to prepend '$$'
-            newJexlLine();
-            return super.acceptStatement(child, data);
         }
+        // if statement is not a jexl:print(...), need to prepend '$$'
+        newJexlLine();
+        return super.acceptStatement(child, data);
     }
 
     /**
diff --git 
a/src/main/java/org/apache/commons/jexl3/internal/TemplateEngine.java 
b/src/main/java/org/apache/commons/jexl3/internal/TemplateEngine.java
index 855ad78..d070fd2 100644
--- a/src/main/java/org/apache/commons/jexl3/internal/TemplateEngine.java
+++ b/src/main/java/org/apache/commons/jexl3/internal/TemplateEngine.java
@@ -184,9 +184,8 @@ public final class TemplateEngine extends JxltEngine {
             // if only one sub-expr, no need to create a composite
             if (expressions.size() == 1) {
                 return expressions.get(0);
-            } else {
-                return el.new CompositeExpression(counts, expressions, source);
             }
+            return el.new CompositeExpression(counts, expressions, source);
         }
     }
 
@@ -691,12 +690,11 @@ public final class TemplateEngine extends JxltEngine {
             xuel = new Exception(xjexl.getInfo(), "failed to parse '" + 
expression + "'", xjexl);
         }
         if (xuel != null) {
-            if (jexl.isSilent()) {
-                jexl.logger.warn(xuel.getMessage(), xuel.getCause());
-                stmt = null;
-            } else {
+            if (!jexl.isSilent()) {
                 throw xuel;
             }
+            jexl.logger.warn(xuel.getMessage(), xuel.getCause());
+            stmt = null;
         }
         return stmt;
     }
@@ -1022,16 +1020,15 @@ public final class TemplateEngine extends JxltEngine {
         public String toString() {
             if (BlockType.VERBATIM.equals(type)) {
                 return body;
-            } else {
-                // CHECKSTYLE:OFF
-                final StringBuilder strb = new StringBuilder(64); // CSOFF: 
MagicNumber
-                // CHECKSTYLE:ON
-                final Iterator<CharSequence> lines = readLines(new 
StringReader(body));
-                while (lines.hasNext()) {
-                    strb.append("$$").append(lines.next());
-                }
-                return strb.toString();
             }
+            // CHECKSTYLE:OFF
+            final StringBuilder strb = new StringBuilder(64); // CSOFF: 
MagicNumber
+            // CHECKSTYLE:ON
+            final Iterator<CharSequence> lines = readLines(new 
StringReader(body));
+            while (lines.hasNext()) {
+                strb.append("$$").append(lines.next());
+            }
+            return strb.toString();
         }
 
         /**
@@ -1152,7 +1149,8 @@ public final class TemplateEngine extends JxltEngine {
             final CharSequence line = lines.next();
             if (line == null) {
                 break;
-            } else if (type == null) {
+            }
+            if (type == null) {
                 // determine starting type if not known yet
                 prefixLen = startsWith(line, prefix);
                 if (prefixLen >= 0) {
diff --git 
a/src/main/java/org/apache/commons/jexl3/internal/introspection/ClassMap.java 
b/src/main/java/org/apache/commons/jexl3/internal/introspection/ClassMap.java
index e54e977..80b6609 100644
--- 
a/src/main/java/org/apache/commons/jexl3/internal/introspection/ClassMap.java
+++ 
b/src/main/java/org/apache/commons/jexl3/internal/introspection/ClassMap.java
@@ -151,9 +151,8 @@ final class ClassMap {
         final Method[] lm = byName.get(methodName);
         if (lm != null && lm.length > 0) {
             return lm.clone();
-        } else {
-            return null;
         }
+        return null;
     }
 
     /**
@@ -179,7 +178,8 @@ final class ClassMap {
         // We looked this up before and failed.
         if (cacheEntry == CACHE_MISS) {
             return null;
-        } else if (cacheEntry == null) {
+        }
+        if (cacheEntry == null) {
             try {
                 // That one is expensive...
                 final Method[] methodList = byName.get(methodKey.getMethod());
@@ -242,11 +242,10 @@ final class ClassMap {
                 int end = start + 1;
                 while (end < lm.size()) {
                     final String walk = lm.get(end).getName();
-                    if (walk.equals(name)) {
-                        end += 1;
-                    } else {
+                    if (!walk.equals(name)) {
                         break;
                     }
+                    end += 1;
                 }
                 final Method[] lmn = lm.subList(start, end).toArray(new 
Method[end - start]);
                 cache.byName.put(name, lmn);
diff --git 
a/src/main/java/org/apache/commons/jexl3/internal/introspection/ConstructorMethod.java
 
b/src/main/java/org/apache/commons/jexl3/internal/introspection/ConstructorMethod.java
index 2a2feff..bb57873 100644
--- 
a/src/main/java/org/apache/commons/jexl3/internal/introspection/ConstructorMethod.java
+++ 
b/src/main/java/org/apache/commons/jexl3/internal/introspection/ConstructorMethod.java
@@ -50,9 +50,8 @@ public final class ConstructorMethod implements JexlMethod {
         final Constructor<?> ctor = is.getConstructor(clazz, new 
MethodKey(className, args));
         if (ctor != null) {
             return new ConstructorMethod(ctor);
-        } else {
-            return null;
         }
+        return null;
     }
     /**
      * Creates a constructor method.
diff --git 
a/src/main/java/org/apache/commons/jexl3/internal/introspection/IndexedType.java
 
b/src/main/java/org/apache/commons/jexl3/internal/introspection/IndexedType.java
index e0a1493..d851ff2 100644
--- 
a/src/main/java/org/apache/commons/jexl3/internal/introspection/IndexedType.java
+++ 
b/src/main/java/org/apache/commons/jexl3/internal/introspection/IndexedType.java
@@ -144,9 +144,8 @@ public final class IndexedType implements JexlPropertyGet {
     public Object invoke(final Object obj) throws Exception {
         if (obj != null && clazz.equals(obj.getClass())) {
             return new IndexedContainer(this, obj);
-        } else {
-            throw new IntrospectionException("property resolution error");
         }
+        throw new IntrospectionException("property resolution error");
     }
 
     @Override
@@ -155,9 +154,8 @@ public final class IndexedType implements JexlPropertyGet {
             && clazz.equals(obj.getClass())
             && container.equals(key.toString())) {
             return new IndexedContainer(this, obj);
-        } else {
-            return Uberspect.TRY_FAILED;
         }
+        return Uberspect.TRY_FAILED;
     }
 
     @Override
diff --git 
a/src/main/java/org/apache/commons/jexl3/internal/introspection/Introspector.java
 
b/src/main/java/org/apache/commons/jexl3/internal/introspection/Introspector.java
index d190fe7..b2d384c 100644
--- 
a/src/main/java/org/apache/commons/jexl3/internal/introspection/Introspector.java
+++ 
b/src/main/java/org/apache/commons/jexl3/internal/introspection/Introspector.java
@@ -383,9 +383,8 @@ public final class Introspector {
             while (cloader != null) {
                 if (cloader.equals(loader)) {
                     return true;
-                } else {
-                    cloader = cloader.getParent();
                 }
+                cloader = cloader.getParent();
             }
         }
         return false;
diff --git 
a/src/main/java/org/apache/commons/jexl3/internal/introspection/ListGetExecutor.java
 
b/src/main/java/org/apache/commons/jexl3/internal/introspection/ListGetExecutor.java
index adb8765..7e02b5f 100644
--- 
a/src/main/java/org/apache/commons/jexl3/internal/introspection/ListGetExecutor.java
+++ 
b/src/main/java/org/apache/commons/jexl3/internal/introspection/ListGetExecutor.java
@@ -73,9 +73,8 @@ public final class ListGetExecutor extends 
AbstractExecutor.Get {
     public Object invoke(final Object obj) {
         if (method == ARRAY_GET) {
             return Array.get(obj, property);
-        } else {
-            return ((List<?>) obj).get(property);
         }
+        return ((List<?>) obj).get(property);
     }
 
     @Override
@@ -86,9 +85,8 @@ public final class ListGetExecutor extends 
AbstractExecutor.Get {
             && index != null) {
             if (method == ARRAY_GET) {
                 return Array.get(obj, index);
-            } else {
-                return ((List<?>) obj).get(index);
             }
+            return ((List<?>) obj).get(index);
         }
         return TRY_FAILED;
     }
diff --git 
a/src/main/java/org/apache/commons/jexl3/internal/introspection/MapGetExecutor.java
 
b/src/main/java/org/apache/commons/jexl3/internal/introspection/MapGetExecutor.java
index 07611b0..adf8029 100644
--- 
a/src/main/java/org/apache/commons/jexl3/internal/introspection/MapGetExecutor.java
+++ 
b/src/main/java/org/apache/commons/jexl3/internal/introspection/MapGetExecutor.java
@@ -41,9 +41,8 @@ public final class MapGetExecutor extends 
AbstractExecutor.Get {
     public static MapGetExecutor discover(final Introspector is, final 
Class<?> clazz, final Object identifier) {
         if (Map.class.isAssignableFrom(clazz)) {
             return new MapGetExecutor(clazz, MAP_GET, identifier);
-        } else {
-            return null;
         }
+        return null;
     }
 
     /**
diff --git 
a/src/main/java/org/apache/commons/jexl3/internal/introspection/MapSetExecutor.java
 
b/src/main/java/org/apache/commons/jexl3/internal/introspection/MapSetExecutor.java
index c3eec2a..e3d0081 100644
--- 
a/src/main/java/org/apache/commons/jexl3/internal/introspection/MapSetExecutor.java
+++ 
b/src/main/java/org/apache/commons/jexl3/internal/introspection/MapSetExecutor.java
@@ -45,9 +45,8 @@ public final class MapSetExecutor extends 
AbstractExecutor.Set {
                                           final Object value) {
         if (Map.class.isAssignableFrom(clazz)) {
             return new MapSetExecutor(clazz, MAP_SET, identifier, value);
-        } else {
-            return null;
         }
+        return null;
     }
 
     /**
diff --git 
a/src/main/java/org/apache/commons/jexl3/internal/introspection/MethodExecutor.java
 
b/src/main/java/org/apache/commons/jexl3/internal/introspection/MethodExecutor.java
index 021b7a6..c97c4f4 100644
--- 
a/src/main/java/org/apache/commons/jexl3/internal/introspection/MethodExecutor.java
+++ 
b/src/main/java/org/apache/commons/jexl3/internal/introspection/MethodExecutor.java
@@ -88,9 +88,8 @@ public final class MethodExecutor extends 
AbstractExecutor.Method {
         }
         if (method.getDeclaringClass() == ArrayListWrapper.class && 
o.getClass().isArray()) {
             return method.invoke(new ArrayListWrapper(o), args);
-        } else {
-            return method.invoke(o, args);
         }
+        return method.invoke(o, args);
     }
 
     @Override
diff --git 
a/src/main/java/org/apache/commons/jexl3/internal/introspection/MethodKey.java 
b/src/main/java/org/apache/commons/jexl3/internal/introspection/MethodKey.java
index 709d97a..445a84f 100644
--- 
a/src/main/java/org/apache/commons/jexl3/internal/introspection/MethodKey.java
+++ 
b/src/main/java/org/apache/commons/jexl3/internal/introspection/MethodKey.java
@@ -659,7 +659,8 @@ public final class MethodKey {
             if (c != null) {
                 if (c.isPrimitive()) {
                     return true;
-                } else if (possibleVarArg) {
+                }
+                if (possibleVarArg) {
                     final Class<?> t = c.getComponentType();
                     return t != null && t.isPrimitive();
                 }
diff --git 
a/src/main/java/org/apache/commons/jexl3/introspection/JexlSandbox.java 
b/src/main/java/org/apache/commons/jexl3/introspection/JexlSandbox.java
index eb05ff5..f871e50 100644
--- a/src/main/java/org/apache/commons/jexl3/introspection/JexlSandbox.java
+++ b/src/main/java/org/apache/commons/jexl3/introspection/JexlSandbox.java
@@ -618,9 +618,8 @@ public final class JexlSandbox {
         final Permissions permissions = sandbox.get(clazz);
         if (permissions == null) {
             return allow ? ALLOW_ALL : BLOCK_ALL;
-        } else {
-            return permissions;
         }
+        return permissions;
     }
 
     /**
diff --git 
a/src/main/java/org/apache/commons/jexl3/parser/ASTIdentifierAccess.java 
b/src/main/java/org/apache/commons/jexl3/parser/ASTIdentifierAccess.java
index 8f8c0a2..05b4231 100644
--- a/src/main/java/org/apache/commons/jexl3/parser/ASTIdentifierAccess.java
+++ b/src/main/java/org/apache/commons/jexl3/parser/ASTIdentifierAccess.java
@@ -75,7 +75,8 @@ public class ASTIdentifierAccess extends JexlNode {
                 if (c == '0') {
                     if (length == 1) {
                         return 0;
-                    } else if (val == 0) {
+                    }
+                    if (val == 0) {
                         return null;
                     }
                 } // any non numeric, NaN
diff --git a/src/main/java/org/apache/commons/jexl3/parser/ASTJexlScript.java 
b/src/main/java/org/apache/commons/jexl3/parser/ASTJexlScript.java
index 54c734a..ed5f908 100644
--- a/src/main/java/org/apache/commons/jexl3/parser/ASTJexlScript.java
+++ b/src/main/java/org/apache/commons/jexl3/parser/ASTJexlScript.java
@@ -49,9 +49,8 @@ public class ASTJexlScript extends JexlLexicalNode  {
             final ASTJexlLambda lambda = (ASTJexlLambda) jjtGetChild(0);
             lambda.jjtSetParent(null);
             return lambda;
-        } else {
-            return this;
         }
+        return this;
     }
 
     @Override
diff --git a/src/main/java/org/apache/commons/jexl3/parser/JexlNode.java 
b/src/main/java/org/apache/commons/jexl3/parser/JexlNode.java
index 5ce6751..aecb5c9 100644
--- a/src/main/java/org/apache/commons/jexl3/parser/JexlNode.java
+++ b/src/main/java/org/apache/commons/jexl3/parser/JexlNode.java
@@ -84,10 +84,9 @@ public abstract class JexlNode extends SimpleNode {
             final int l = lc >> 0xc;
             // at least an info with line/column number
             return info != null? info.at(l, c) : new JexlInfo(null, l, c);
-        } else {
-            // weird though; no jjSetFirstToken(...) ever called?
-            return info;
         }
+        // weird though; no jjSetFirstToken(...) ever called?
+        return info;
     }
 
     /**
@@ -160,11 +159,10 @@ public abstract class JexlNode extends SimpleNode {
                 return true;
             }
             final int nc = walk.jjtGetNumChildren() - 1;
-            if (nc >= 0) {
-                walk = walk.jjtGetChild(nc);
-            } else {
+            if (nc < 0) {
                 return walk.jjtGetParent() instanceof ASTReference;
             }
+            walk = walk.jjtGetChild(nc);
         } while (walk != null);
         return false;
     }
diff --git a/src/main/java/org/apache/commons/jexl3/parser/JexlParser.java 
b/src/main/java/org/apache/commons/jexl3/parser/JexlParser.java
index 45fd1b2..396111d 100644
--- a/src/main/java/org/apache/commons/jexl3/parser/JexlParser.java
+++ b/src/main/java/org/apache/commons/jexl3/parser/JexlParser.java
@@ -385,9 +385,8 @@ public abstract class JexlParser extends StringParser {
         if (!declareSymbol(symbol)) {
             if (getFeatures().isLexical()) {
                 throw new JexlException(var, name + ": variable is already 
declared");
-            } else {
-                var.setRedefined(true);
             }
+            var.setRedefined(true);
         }
     }
 
diff --git 
a/src/main/java/org/apache/commons/jexl3/scripting/JexlScriptEngine.java 
b/src/main/java/org/apache/commons/jexl3/scripting/JexlScriptEngine.java
index cea77db..b7ca530 100644
--- a/src/main/java/org/apache/commons/jexl3/scripting/JexlScriptEngine.java
+++ b/src/main/java/org/apache/commons/jexl3/scripting/JexlScriptEngine.java
@@ -133,11 +133,11 @@ public class JexlScriptEngine extends 
AbstractScriptEngine implements Compilable
             final Writer out = context.getWriter();
             if (out instanceof PrintWriter) {
                 return (PrintWriter) out;
-            } else if (out != null) {
+            }
+            if (out != null) {
                 return new PrintWriter(out, true);
-            } else {
-                return null;
             }
+            return null;
         }
 
         /**
@@ -149,11 +149,11 @@ public class JexlScriptEngine extends 
AbstractScriptEngine implements Compilable
             final Writer error = context.getErrorWriter();
             if (error instanceof PrintWriter) {
                 return (PrintWriter) error;
-            } else if (error != null) {
+            }
+            if (error != null) {
                 return new PrintWriter(error, true);
-            } else {
-                return null;
             }
+            return null;
         }
 
         /**
diff --git 
a/src/main/java/org/apache/commons/jexl3/scripting/JexlScriptEngineFactory.java 
b/src/main/java/org/apache/commons/jexl3/scripting/JexlScriptEngineFactory.java
index d95c07e..578c553 100644
--- 
a/src/main/java/org/apache/commons/jexl3/scripting/JexlScriptEngineFactory.java
+++ 
b/src/main/java/org/apache/commons/jexl3/scripting/JexlScriptEngineFactory.java
@@ -104,9 +104,8 @@ public class JexlScriptEngineFactory implements 
ScriptEngineFactory {
     public String getOutputStatement(final String toDisplay) {
         if (toDisplay == null) {
             return "JEXL.out.print(null)";
-        } else {
-            return "JEXL.out.print("+StringParser.escapeString(toDisplay, 
'\'')+")";
         }
+        return "JEXL.out.print("+StringParser.escapeString(toDisplay, 
'\'')+")";
     }
 
     @Override
diff --git a/src/test/java/org/apache/commons/jexl3/AnnotationTest.java 
b/src/test/java/org/apache/commons/jexl3/AnnotationTest.java
index 10d6e18..7058e61 100644
--- a/src/test/java/org/apache/commons/jexl3/AnnotationTest.java
+++ b/src/test/java/org/apache/commons/jexl3/AnnotationTest.java
@@ -110,16 +110,7 @@ public class AnnotationTest extends JexlTestCase {
             }
             // transient side effect for silent
             if ("silent".equals(name)) {
-                if (args == null || args.length == 0) {
-                    final boolean b = options.isSilent();
-                    try {
-                        return statement.call();
-                    } catch(final JexlException xjexl) {
-                        return null;
-                    } finally {
-                        options.setSilent(b);
-                    }
-                } else {
+                if ((args != null) && (args.length != 0)) {
                     final boolean s = (Boolean) args[0];
                     final boolean b = options.isSilent();
                     options.setSilent(s);
@@ -128,6 +119,14 @@ public class AnnotationTest extends JexlTestCase {
                     options.setSilent(b);
                     return r;
                 }
+                final boolean b = options.isSilent();
+                try {
+                    return statement.call();
+                } catch(final JexlException xjexl) {
+                    return null;
+                } finally {
+                    options.setSilent(b);
+                }
             }
             // durable side effect for scale
             if ("scale".equals(name)) {
diff --git a/src/test/java/org/apache/commons/jexl3/ArithmeticOperatorTest.java 
b/src/test/java/org/apache/commons/jexl3/ArithmeticOperatorTest.java
index 39084cc..9bcaf62 100644
--- a/src/test/java/org/apache/commons/jexl3/ArithmeticOperatorTest.java
+++ b/src/test/java/org/apache/commons/jexl3/ArithmeticOperatorTest.java
@@ -361,9 +361,11 @@ public class ArithmeticOperatorTest extends JexlTestCase {
                 cal.setTime(date);
                 if ("yyyy".equals(key)) {
                     return cal.get(Calendar.YEAR);
-                } else if ("MM".equals(key)) {
+                }
+                if ("MM".equals(key)) {
                     return cal.get(Calendar.MONTH) + 1;
-                } else if ("dd".equals(key)) {
+                }
+                if ("dd".equals(key)) {
                     return cal.get(Calendar.DAY_OF_MONTH);
                 }
                 // Otherwise treat as format mask
diff --git a/src/test/java/org/apache/commons/jexl3/ArithmeticTest.java 
b/src/test/java/org/apache/commons/jexl3/ArithmeticTest.java
index 34590ae..371cda2 100644
--- a/src/test/java/org/apache/commons/jexl3/ArithmeticTest.java
+++ b/src/test/java/org/apache/commons/jexl3/ArithmeticTest.java
@@ -1056,22 +1056,22 @@ public class ArithmeticTest extends JexlTestCase {
             final int ls = x.signum();
             if (ls < 0) {
                 return Double.NEGATIVE_INFINITY;
-            } else if (ls > 0) {
+            }
+            if (ls > 0) {
                 return Double.POSITIVE_INFINITY;
-            } else {
-                return Double.NaN;
             }
+            return Double.NaN;
         }
 
         protected double divideZero(final BigInteger x) {
             final int ls = x.signum();
             if (ls < 0) {
                 return Double.NEGATIVE_INFINITY;
-            } else if (ls > 0) {
+            }
+            if (ls > 0) {
                 return Double.POSITIVE_INFINITY;
-            } else {
-                return Double.NaN;
             }
+            return Double.NaN;
         }
 
         @Override
diff --git a/src/test/java/org/apache/commons/jexl3/CacheTest.java 
b/src/test/java/org/apache/commons/jexl3/CacheTest.java
index 173fc82..439a536 100644
--- a/src/test/java/org/apache/commons/jexl3/CacheTest.java
+++ b/src/test/java/org/apache/commons/jexl3/CacheTest.java
@@ -180,7 +180,8 @@ public class CacheTest extends JexlTestCase {
         public Object get(final String prop) {
             if ("value".equals(prop)) {
                 return value;
-            } else if ("flag".equals(prop)) {
+            }
+            if ("flag".equals(prop)) {
                 return Boolean.valueOf(flag);
             }
             throw new RuntimeException("no such property");
diff --git a/src/test/java/org/apache/commons/jexl3/ClassCreator.java 
b/src/test/java/org/apache/commons/jexl3/ClassCreator.java
index 50705e9..bdff968 100644
--- a/src/test/java/org/apache/commons/jexl3/ClassCreator.java
+++ b/src/test/java/org/apache/commons/jexl3/ClassCreator.java
@@ -214,15 +214,14 @@ public class ClassCreator {
         fileManager.close();
         if (success) {
             return getClassLoader().loadClass(GEN_CLASS + className);
-        } else {
-            final List<Diagnostic<? extends JavaFileObject>> diagnostics = 
diagnosticsCollector.getDiagnostics();
-            for (final Diagnostic<? extends JavaFileObject> diagnostic : 
diagnostics) {
-                // read error dertails from the diagnostic object
-                System.out.println(diagnostic.getMessage(null));
-
-            }
-            return null;
         }
+        final List<Diagnostic<? extends JavaFileObject>> diagnostics = 
diagnosticsCollector.getDiagnostics();
+        for (final Diagnostic<? extends JavaFileObject> diagnostic : 
diagnostics) {
+            // read error dertails from the diagnostic object
+            System.out.println(diagnostic.getMessage(null));
+
+        }
+        return null;
     }
 
     Object validate(final Class<?> clazz) throws Exception {
diff --git a/src/test/java/org/apache/commons/jexl3/Issues100Test.java 
b/src/test/java/org/apache/commons/jexl3/Issues100Test.java
index aba1e6d..2741dec 100644
--- a/src/test/java/org/apache/commons/jexl3/Issues100Test.java
+++ b/src/test/java/org/apache/commons/jexl3/Issues100Test.java
@@ -756,9 +756,8 @@ public class Issues100Test extends JexlTestCase {
         public static Integer callme(final Integer n) {
             if (n == null) {
                 return null;
-            } else {
-                return n >= 0 ? 42 : -42;
             }
+            return n >= 0 ? 42 : -42;
         }
 
         public static Object kickme() {
diff --git a/src/test/java/org/apache/commons/jexl3/Issues200Test.java 
b/src/test/java/org/apache/commons/jexl3/Issues200Test.java
index df4309b..4b1e701 100644
--- a/src/test/java/org/apache/commons/jexl3/Issues200Test.java
+++ b/src/test/java/org/apache/commons/jexl3/Issues200Test.java
@@ -514,9 +514,8 @@ public class Issues200Test extends JexlTestCase {
             if (i266 != null) {
                 i266.remove();
                 throw new JexlException.Continue(null);
-            } else {
-                throw new NoSuchElementException();
             }
+            throw new NoSuchElementException();
         }
     }
 
diff --git a/src/test/java/org/apache/commons/jexl3/JXLTTest.java 
b/src/test/java/org/apache/commons/jexl3/JXLTTest.java
index a4f1bd1..b6c032b 100644
--- a/src/test/java/org/apache/commons/jexl3/JXLTTest.java
+++ b/src/test/java/org/apache/commons/jexl3/JXLTTest.java
@@ -97,9 +97,8 @@ public class JXLTTest extends JexlTestCase {
         final boolean dbg = td.debug(ts);
         if (dbg) {
             return td.toString();
-        } else {
-            return "";
         }
+        return "";
     }
 
     /** Extract the source from a toString-ed expression. */
@@ -112,9 +111,8 @@ public class JXLTTest extends JexlTestCase {
         final int ec = tostring.lastIndexOf(" */");
         if (sc >= 0 && ec >= 0 && ec > sc && ec < len) {
             return tostring.substring(sc, ec);
-        } else {
-            return tostring;
         }
+        return tostring;
 
     }
 
diff --git a/src/test/java/org/apache/commons/jexl3/MethodTest.java 
b/src/test/java/org/apache/commons/jexl3/MethodTest.java
index aeb1688..47f98ff 100644
--- a/src/test/java/org/apache/commons/jexl3/MethodTest.java
+++ b/src/test/java/org/apache/commons/jexl3/MethodTest.java
@@ -86,16 +86,15 @@ public class MethodTest extends JexlTestCase {
         }
 
         public String concat(final String... strs) {
-            if (strs.length > 0) {
-                final StringBuilder strb = new StringBuilder(strs[0]);
-                for (int s = 1; s < strs.length; ++s) {
-                    strb.append(", ");
-                    strb.append(strs[s]);
-                }
-                return strb.toString();
-            } else {
+            if (strs.length <= 0) {
                 return "";
             }
+            final StringBuilder strb = new StringBuilder(strs[0]);
+            for (int s = 1; s < strs.length; ++s) {
+                strb.append(", ");
+                strb.append(strs[s]);
+            }
+            return strb.toString();
         }
     }
 
@@ -728,9 +727,8 @@ public class MethodTest extends JexlTestCase {
             public Object invoke(final Object obj, final Object ... params) 
throws Exception {
                 if (obj instanceof Map<?, ?>) {
                     return ja.add(params[0], params[1]);
-                } else {
-                    throw new Exception("not a script context");
                 }
+                throw new Exception("not a script context");
             }
 
             @Override
diff --git a/src/test/java/org/apache/commons/jexl3/PropertyAccessTest.java 
b/src/test/java/org/apache/commons/jexl3/PropertyAccessTest.java
index a96bdf8..cd12059 100644
--- a/src/test/java/org/apache/commons/jexl3/PropertyAccessTest.java
+++ b/src/test/java/org/apache/commons/jexl3/PropertyAccessTest.java
@@ -105,11 +105,11 @@ public class PropertyAccessTest extends JexlTestCase {
         public Object getProperty(final String name) {
             if ("name".equals(name)) {
                 return value0;
-            } else if ("number".equals(name)) {
+            }
+            if ("number".equals(name)) {
                 return value1;
-            } else {
-                return null;
             }
+            return null;
         }
 
         public void setProperty(final String name, final String value) {
diff --git a/src/test/java/org/apache/commons/jexl3/SynchronizedContext.java 
b/src/test/java/org/apache/commons/jexl3/SynchronizedContext.java
index 58f15d5..7ad2e3c 100644
--- a/src/test/java/org/apache/commons/jexl3/SynchronizedContext.java
+++ b/src/test/java/org/apache/commons/jexl3/SynchronizedContext.java
@@ -39,10 +39,9 @@ public class SynchronizedContext extends MapContext 
implements JexlContext.Annot
         final boolean varisarg = parms != null && parms.length == 1;
         if (var == null) {
             return varisarg ? script.execute(context, var) : 
script.execute(context);
-        } else {
-            synchronized (var) {
-                return varisarg ? script.execute(context, var) : 
script.execute(context);
-            }
+        }
+        synchronized (var) {
+            return varisarg ? script.execute(context, var) : 
script.execute(context);
         }
     }
 

Reply via email to