You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by tv...@apache.org on 2014/02/19 16:48:09 UTC

svn commit: r1569795 [24/35] - in /tomee/tomee/trunk/container/openejb-core/src/main: config/pmd/ java/javax/xml/ws/ java/javax/xml/ws/wsaddressing/ java/org/apache/openejb/ java/org/apache/openejb/assembler/ java/org/apache/openejb/assembler/classic/ ...

Modified: tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/stateful/SimplePassivater.java
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/stateful/SimplePassivater.java?rev=1569795&r1=1569794&r2=1569795&view=diff
==============================================================================
--- tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/stateful/SimplePassivater.java (original)
+++ tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/stateful/SimplePassivater.java Wed Feb 19 15:47:58 2014
@@ -66,7 +66,7 @@ public class SimplePassivater implements
 
             logger.info("Using directory " + sessionDirectory + " for stateful session passivation");
 
-        } catch (IOException e) {
+        } catch (final IOException e) {
             throw new SystemException(getClass().getName() + ".init(): can't use directory prefix " + dir + ":" + e, e);
         }
     }
@@ -87,10 +87,10 @@ public class SimplePassivater implements
                 IO.close(oos);
             }
 
-        } catch (NotSerializableException nse) {
+        } catch (final NotSerializableException nse) {
             logger.error("Passivation failed ", nse);
             throw (SystemException) new SystemException("The type " + nse.getMessage() + " is not serializable as mandated by the EJB specification.").initCause(nse);
-        } catch (Exception t) {
+        } catch (final Exception t) {
             logger.error("Passivation failed ", t);
             throw new SystemException(t);
         }
@@ -126,7 +126,7 @@ public class SimplePassivater implements
                 logger.info("Activation failed: file not found " + sessionFile);
                 return null;
             }
-        } catch (Exception t) {
+        } catch (final Exception t) {
             logger.info("Activation failed ", t);
 
             throw new SystemException(t);

Modified: tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/stateful/StatefulContainer.java
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/stateful/StatefulContainer.java?rev=1569795&r1=1569794&r2=1569795&view=diff
==============================================================================
--- tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/stateful/StatefulContainer.java (original)
+++ tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/stateful/StatefulContainer.java Wed Feb 19 15:47:58 2014
@@ -124,7 +124,7 @@ public class StatefulContainer implement
 
         try {
             methods.put(BeanContext.Removable.class.getDeclaredMethod("$$remove"), MethodType.REMOVE);
-        } catch (NoSuchMethodException e) {
+        } catch (final NoSuchMethodException e) {
             throw new IllegalStateException("Internal code change: BeanContext.Removable.$$remove() method was deleted", e);
         }
 
@@ -136,7 +136,7 @@ public class StatefulContainer implement
                 try {
                     final Method method = businessLocal.getMethod(removeMethod.getName(), removeMethod.getParameterTypes());
                     methods.put(method, MethodType.REMOVE);
-                } catch (NoSuchMethodException ignore) {
+                } catch (final NoSuchMethodException ignore) {
                     // no-op
                 }
             }
@@ -145,7 +145,7 @@ public class StatefulContainer implement
                 try {
                     final Method method = businessRemote.getMethod(removeMethod.getName(), removeMethod.getParameterTypes());
                     methods.put(method, MethodType.REMOVE);
-                } catch (NoSuchMethodException ignore) {
+                } catch (final NoSuchMethodException ignore) {
                     // no-op
                 }
             }
@@ -156,7 +156,7 @@ public class StatefulContainer implement
             try {
                 final Method method = legacyRemote.getMethod("remove");
                 methods.put(method, MethodType.REMOVE);
-            } catch (NoSuchMethodException ignore) {
+            } catch (final NoSuchMethodException ignore) {
                 // no-op
             }
         }
@@ -166,7 +166,7 @@ public class StatefulContainer implement
             try {
                 final Method method = legacyLocal.getMethod("remove");
                 methods.put(method, MethodType.REMOVE);
-            } catch (NoSuchMethodException ignore) {
+            } catch (final NoSuchMethodException ignore) {
                 // no-op
             }
         }
@@ -272,7 +272,7 @@ public class StatefulContainer implement
         for (final ObjectName objectName : data.jmxNames) {
             try {
                 server.unregisterMBean(objectName);
-            } catch (Exception e) {
+            } catch (final Exception e) {
                 logger.error("Unable to unregister MBean " + objectName);
             }
         }
@@ -323,7 +323,7 @@ public class StatefulContainer implement
                 }
                 server.registerMBean(new ManagedMBean(stats), objectName);
                 data.jmxNames.add(objectName);
-            } catch (Exception e) {
+            } catch (final Exception e) {
                 logger.error("Unable to register MBean ", e);
             }
         }
@@ -331,7 +331,7 @@ public class StatefulContainer implement
         try {
             final Context context = beanContext.getJndiEnc();
             context.bind("comp/EJBContext", sessionContext);
-        } catch (NamingException e) {
+        } catch (final NamingException e) {
             throw new OpenEJBException("Failed to bind EJBContext", e);
         }
 
@@ -385,7 +385,7 @@ public class StatefulContainer implement
             if (entityManagers != null) {
                 try {
                     entityManagerRegistry.addEntityManagers((String) beanContext.getDeploymentID(), primaryKey, entityManagers);
-                } catch (EntityManagerAlreadyRegisteredException e) {
+                } catch (final EntityManagerAlreadyRegisteredException e) {
                     throw new EJBException(e);
                 }
             }
@@ -406,7 +406,7 @@ public class StatefulContainer implement
                     // Wrap-up everthing into a object
                     instance = new Instance(beanContext, primaryKey, context.getBean(), context.getCreationalContext(), context.getInterceptors(), entityManagers);
 
-                } catch (Throwable throwable) {
+                } catch (final Throwable throwable) {
                     final ThreadContext callContext = ThreadContext.getThreadContext();
                     EjbTransactionUtil.handleSystemException(callContext.getTransactionPolicy(), throwable, callContext);
                     throw new IllegalStateException(throwable); // should never be reached
@@ -442,7 +442,7 @@ public class StatefulContainer implement
                         interceptorStack.invoke(args);
                     }
                 }
-            } catch (Throwable e) {
+            } catch (final Throwable e) {
                 handleException(createContext, txPolicy, e);
             } finally {
                 // un register EntityManager
@@ -558,16 +558,16 @@ public class StatefulContainer implement
                         returnValue = interceptorStack.invoke(args);
                     }
                 }
-            } catch (InvalidateReferenceException e) {
+            } catch (final InvalidateReferenceException e) {
                 throw new ApplicationException(e.getRootCause());
-            } catch (Throwable e) {
+            } catch (final Throwable e) {
                 if (interfaceType.isBusiness()) {
                     retain = beanContext.retainIfExeption(runMethod);
                     handleException(callContext, txPolicy, e);
                 } else {
                     try {
                         handleException(callContext, txPolicy, e);
-                    } catch (ApplicationException ae) {
+                    } catch (final ApplicationException ae) {
                         // Don't throw application exceptions for non-business interface removes
                     }
                 }
@@ -580,7 +580,7 @@ public class StatefulContainer implement
                             final InterceptorStack interceptorStack = new InterceptorStack(instance.bean, null, Operation.PRE_DESTROY, callbackInterceptors, instance.interceptors);
                             interceptorStack.invoke();
                         }
-                    } catch (Throwable t) {
+                    } catch (final Throwable t) {
                         final String logMessage = "An unexpected exception occured while invoking the preDestroy method on the Stateful SessionBean instance: "
                                                   + (null != instance ? instance.bean.getClass().getName() : beanContext.getBeanClass().getName());
                         logger.error(logMessage, t);
@@ -668,7 +668,7 @@ public class StatefulContainer implement
 
                 // Invoke
                 returnValue = interceptorStack.invoke(args);
-            } catch (Throwable e) {
+            } catch (final Throwable e) {
                 handleException(callContext, txPolicy, e);
             } finally {
                 // un register EntityManager
@@ -701,9 +701,9 @@ public class StatefulContainer implement
             if (instance == null) { // no need to check for extended persistence contexts it shouldn't happen
                 try {
                     instance = cache.checkOut(primaryKey, checkOutIfNecessary);
-                } catch (OpenEJBException e) {
+                } catch (final OpenEJBException e) {
                     throw e;
-                } catch (Exception e) {
+                } catch (final Exception e) {
                     throw new SystemException("Unexpected load exception", e);
                 }
 
@@ -732,7 +732,7 @@ public class StatefulContainer implement
             // try to get a lock within the specified period. 
             try {
                 lockAcquired = currLock.tryLock(accessTimeout.getTime(), accessTimeout.getUnit());
-            } catch (InterruptedException e) {
+            } catch (final InterruptedException e) {
                 throw new ApplicationException("Unable to get lock.", e);
             }
         }
@@ -851,7 +851,7 @@ public class StatefulContainer implement
                 try {
                     final BeanTransactionPolicy beanTxEnv = (BeanTransactionPolicy) txPolicy;
                     suspendedTransaction = beanTxEnv.suspendUserTransaction();
-                } catch (SystemException e) {
+                } catch (final SystemException e) {
                     EjbTransactionUtil.handleSystemException(txPolicy, e, callContext);
                 } finally {
                     instance.setBeanTransaction(suspendedTransaction);
@@ -915,7 +915,7 @@ public class StatefulContainer implement
         // register them
         try {
             entityManagerRegistry.addEntityManagers((String) beanContext.getDeploymentID(), instance.primaryKey, entityManagers);
-        } catch (EntityManagerAlreadyRegisteredException e) {
+        } catch (final EntityManagerAlreadyRegisteredException e) {
             throw new EJBException(e);
         }
     }
@@ -1027,7 +1027,7 @@ public class StatefulContainer implement
                 final InterceptorStack interceptorStack = new InterceptorStack(instance.bean, null, Operation.AFTER_BEGIN, interceptors, instance.interceptors);
                 interceptorStack.invoke();
 
-            } catch (Exception e) {
+            } catch (final Exception e) {
                 final String message = "An unexpected system exception occured while invoking the afterBegin method on the SessionSynchronization object";
 
                 // [1] Log the exception or error
@@ -1069,9 +1069,9 @@ public class StatefulContainer implement
                     interceptorStack.invoke();
 
                     instance.setInUse(false);
-                } catch (InvalidateReferenceException e) {
+                } catch (final InvalidateReferenceException e) {
                     // exception has alredy been handled
-                } catch (Exception e) {
+                } catch (final Exception e) {
                     final String message = "An unexpected system exception occured while invoking the beforeCompletion method on the SessionSynchronization object";
 
                     // [1] Log the exception or error
@@ -1112,9 +1112,9 @@ public class StatefulContainer implement
                     }
                     instance.setTransaction(null);
                     releaseInstance(instance);
-                } catch (InvalidateReferenceException inv) {
+                } catch (final InvalidateReferenceException inv) {
                     // exception has alredy been handled
-                } catch (Throwable e) {
+                } catch (final Throwable e) {
                     final String message = "An unexpected system exception occured while invoking the afterCompletion method on the SessionSynchronization object";
 
                     // [1] Log the exception or error
@@ -1154,7 +1154,7 @@ public class StatefulContainer implement
                 final InterceptorStack interceptorStack = new InterceptorStack(instance.bean, remove, Operation.ACTIVATE, callbackInterceptors, instance.interceptors);
 
                 interceptorStack.invoke();
-            } catch (Throwable callbackException) {
+            } catch (final Throwable callbackException) {
                 discardInstance(threadContext.getPrimaryKey(), instance);
                 EjbTransactionUtil.handleSystemException(threadContext.getTransactionPolicy(), callbackException, threadContext);
             } finally {
@@ -1176,7 +1176,7 @@ public class StatefulContainer implement
 
                 interceptorStack.invoke();
 
-            } catch (Throwable e) {
+            } catch (final Throwable e) {
                 logger.error("An unexpected exception occured while invoking the ejbPassivate method on the Stateful SessionBean instance", e);
             } finally {
                 ThreadContext.exit(oldContext);
@@ -1197,7 +1197,7 @@ public class StatefulContainer implement
                 final InterceptorStack interceptorStack = new InterceptorStack(instance.bean, remove, Operation.PRE_DESTROY, callbackInterceptors, instance.interceptors);
 
                 interceptorStack.invoke();
-            } catch (Throwable e) {
+            } catch (final Throwable e) {
                 logger.error("An unexpected exception occured while invoking the ejbRemove method on the timed-out Stateful SessionBean instance", e);
             } finally {
                 logger.info("Removing the timed-out stateful session bean instance " + instance.primaryKey);

Modified: tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/stateful/StatefulContainerFactory.java
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/stateful/StatefulContainerFactory.java?rev=1569795&r1=1569794&r2=1569795&view=diff
==============================================================================
--- tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/stateful/StatefulContainerFactory.java (original)
+++ tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/stateful/StatefulContainerFactory.java Wed Feb 19 15:47:58 2014
@@ -36,7 +36,7 @@ public class StatefulContainerFactory {
         return id;
     }
 
-    public void setId(Object id) {
+    public void setId(final Object id) {
         this.id = id;
     }
 
@@ -44,7 +44,7 @@ public class StatefulContainerFactory {
         return securityService;
     }
 
-    public void setSecurityService(SecurityService securityService) {
+    public void setSecurityService(final SecurityService securityService) {
         this.securityService = securityService;
     }
 
@@ -52,7 +52,7 @@ public class StatefulContainerFactory {
         return accessTimeout;
     }
 
-    public void setAccessTimeout(Duration accessTimeout) {
+    public void setAccessTimeout(final Duration accessTimeout) {
         this.accessTimeout = accessTimeout;
     }
 
@@ -60,31 +60,31 @@ public class StatefulContainerFactory {
         return cache;
     }
 
-    public void setCache(Cache<Object, Instance> cache) {
+    public void setCache(final Cache<Object, Instance> cache) {
         this.cache = cache;
     }
 
-    public void setCache(String s) {
+    public void setCache(final String s) {
         properties.put("Cache", s);
     }
 
-    public void setPassivator(String s) {
+    public void setPassivator(final String s) {
         properties.put("Passivator", s);
     }
 
-    public void setTimeOut(String s) {
+    public void setTimeOut(final String s) {
         properties.put("TimeOut", s);
     }
 
-    public void setCapacity(String s) {
+    public void setCapacity(final String s) {
         properties.put("Capacity", s);
     }
 
-    public void setBulkPassivate(String s) {
+    public void setBulkPassivate(final String s) {
         properties.put("BulkPassivate", s);
     }
 
-    public void setFrequency(String s) {
+    public void setFrequency(final String s) {
         properties.put("Frequency", s);
     }
     
@@ -92,7 +92,7 @@ public class StatefulContainerFactory {
         return properties;
     }
 
-    public void setProperties(Properties properties) {
+    public void setProperties(final Properties properties) {
         this.properties.putAll(properties);
     }
 
@@ -123,7 +123,7 @@ public class StatefulContainerFactory {
         }
 
         // build the object recipe
-        ObjectRecipe serviceRecipe = new ObjectRecipe((String) cache);
+        final ObjectRecipe serviceRecipe = new ObjectRecipe((String) cache);
         serviceRecipe.allow(Option.CASE_INSENSITIVE_PROPERTIES);
         serviceRecipe.allow(Option.IGNORE_MISSING_PROPERTIES);
         serviceRecipe.allow(Option.NAMED_PARAMETERS);
@@ -144,9 +144,9 @@ public class StatefulContainerFactory {
         this.cache = (Cache<Object, Instance>) cache;
     }
 
-    private Object getProperty(String name) {
-        for (Entry<Object, Object> entry : properties.entrySet()) {
-            Object key = entry.getKey();
+    private Object getProperty(final String name) {
+        for (final Entry<Object, Object> entry : properties.entrySet()) {
+            final Object key = entry.getKey();
             if (key instanceof String && name.equalsIgnoreCase((String) key)) {
                 return entry.getValue();
             }

Modified: tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/stateful/StatefulContext.java
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/stateful/StatefulContext.java?rev=1569795&r1=1569794&r2=1569795&view=diff
==============================================================================
--- tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/stateful/StatefulContext.java (original)
+++ tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/stateful/StatefulContext.java Wed Feb 19 15:47:58 2014
@@ -30,12 +30,12 @@ import javax.xml.rpc.handler.MessageCont
  */
 public class StatefulContext extends BaseSessionContext {
 
-    public StatefulContext(SecurityService securityService, UserTransaction userTransaction) {
+    public StatefulContext(final SecurityService securityService, final UserTransaction userTransaction) {
         super(securityService, userTransaction);
     }
 
     @Override
-    public void check(Call call) {
+    public void check(final Call call) {
         final Operation operation = ThreadContext.getThreadContext().getCurrentOperation();
         switch (call) {
             case getCallerPrincipal:

Modified: tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/stateful/StatefulEjbHomeHandler.java
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/stateful/StatefulEjbHomeHandler.java?rev=1569795&r1=1569794&r2=1569795&view=diff
==============================================================================
--- tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/stateful/StatefulEjbHomeHandler.java (original)
+++ tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/stateful/StatefulEjbHomeHandler.java Wed Feb 19 15:47:58 2014
@@ -29,23 +29,23 @@ import java.util.List;
 
 public class StatefulEjbHomeHandler extends EjbHomeProxyHandler {
 
-    public StatefulEjbHomeHandler(BeanContext beanContext, InterfaceType interfaceType, List<Class> interfaces, Class mainInterface) {
+    public StatefulEjbHomeHandler(final BeanContext beanContext, final InterfaceType interfaceType, final List<Class> interfaces, final Class mainInterface) {
         super(beanContext, interfaceType, interfaces, mainInterface);
     }
 
-    public Object createProxy(Object primaryKey, Class mainInterface) {
-        Object proxy = super.createProxy(primaryKey, mainInterface);
+    public Object createProxy(final Object primaryKey, final Class mainInterface) {
+        final Object proxy = super.createProxy(primaryKey, mainInterface);
         EjbObjectProxyHandler handler = null;
 
         try {
             handler = (EjbObjectProxyHandler) ProxyManager.getInvocationHandler(proxy);
-        } catch (Exception e) {
+        } catch (final Exception e) {
             // try getting the invocation handler from the localbean
             try {
-                Field field = proxy.getClass().getDeclaredField("invocationHandler");
+                final Field field = proxy.getClass().getDeclaredField("invocationHandler");
                 field.setAccessible(true);
                 handler = (EjbObjectProxyHandler) field.get(proxy);
-            } catch (Exception e1) {
+            } catch (final Exception e1) {
                 // no-op
             }
         }
@@ -54,15 +54,15 @@ public class StatefulEjbHomeHandler exte
         return proxy;
     }
 
-    protected Object findX(Class interfce, Method method, Object[] args, Object proxy) throws Throwable {
+    protected Object findX(final Class interfce, final Method method, final Object[] args, final Object proxy) throws Throwable {
         throw new UnsupportedOperationException("Stateful beans may not have find methods");
     }
 
-    protected Object removeByPrimaryKey(Class interfce, Method method, Object[] args, Object proxy) throws Throwable {
+    protected Object removeByPrimaryKey(final Class interfce, final Method method, final Object[] args, final Object proxy) throws Throwable {
         throw new RemoveException("Session objects are private resources and do not have primary keys");
     }
 
-    protected EjbObjectProxyHandler newEjbObjectHandler(BeanContext beanContext, Object pk, InterfaceType interfaceType, List<Class> interfaces, Class mainInterface) {
+    protected EjbObjectProxyHandler newEjbObjectHandler(final BeanContext beanContext, final Object pk, final InterfaceType interfaceType, final List<Class> interfaces, final Class mainInterface) {
         return new StatefulEjbObjectHandler(getBeanContext(), pk, interfaceType, interfaces, mainInterface);
     }
 

Modified: tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/stateful/StatefulEjbObjectHandler.java
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/stateful/StatefulEjbObjectHandler.java?rev=1569795&r1=1569794&r2=1569795&view=diff
==============================================================================
--- tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/stateful/StatefulEjbObjectHandler.java (original)
+++ tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/stateful/StatefulEjbObjectHandler.java Wed Feb 19 15:47:58 2014
@@ -29,7 +29,7 @@ import java.util.List;
 
 public class StatefulEjbObjectHandler extends EjbObjectProxyHandler {
 
-    public StatefulEjbObjectHandler(BeanContext beanContext, Object pk, InterfaceType interfaceType, List<Class> interfaces, Class mainInterface) {
+    public StatefulEjbObjectHandler(final BeanContext beanContext, final Object pk, final InterfaceType interfaceType, final List<Class> interfaces, final Class mainInterface) {
         super(beanContext, pk, interfaceType, interfaces, mainInterface);
     }
 
@@ -37,22 +37,22 @@ public class StatefulEjbObjectHandler ex
         return new RegistryId(container, deploymentID, primaryKey);
     }
 
-    protected Object getPrimaryKey(Method method, Object[] args, Object proxy) throws Throwable {
+    protected Object getPrimaryKey(final Method method, final Object[] args, final Object proxy) throws Throwable {
         throw new RemoteException("Session objects are private resources and do not have primary keys");
     }
 
-    protected Object isIdentical(Method method, Object[] args, Object proxy) throws Throwable {
+    protected Object isIdentical(final Method method, final Object[] args, final Object proxy) throws Throwable {
         checkAuthorization(method);
 
         if (args.length != 1) {
             throw new IllegalArgumentException("Expected one argument to isIdentical, but received " + args.length);
         }
 
-        Object that = args[0];
-        Object invocationHandler = ProxyManager.getInvocationHandler(that);
+        final Object that = args[0];
+        final Object invocationHandler = ProxyManager.getInvocationHandler(that);
 
         if (invocationHandler instanceof StatefulEjbObjectHandler) {
-            StatefulEjbObjectHandler handler = (StatefulEjbObjectHandler) invocationHandler;
+            final StatefulEjbObjectHandler handler = (StatefulEjbObjectHandler) invocationHandler;
 
             /*
             * The registry id is a compound key composed of the bean's primary key, deployment id, and
@@ -65,9 +65,9 @@ public class StatefulEjbObjectHandler ex
         return false;
     }
 
-    protected Object remove(Class interfce, Method method, Object[] args, Object proxy) throws Throwable {
+    protected Object remove(final Class interfce, final Method method, final Object[] args, final Object proxy) throws Throwable {
         checkAuthorization(method);
-        Object value = container.invoke(deploymentID, interfaceType, interfce, method, args, primaryKey);
+        final Object value = container.invoke(deploymentID, interfaceType, interfce, method, args, primaryKey);
 
         invalidateAllHandlers(getRegistryId());
         return value;
@@ -80,7 +80,7 @@ public class StatefulEjbObjectHandler ex
         private final Object deploymentId;
         private final Object primaryKey;
 
-        public RegistryId(Container container, Object deploymentId, Object primaryKey) {
+        public RegistryId(final Container container, final Object deploymentId, final Object primaryKey) {
             if (container == null) throw new NullPointerException("container is null");
             if (deploymentId == null) throw new NullPointerException("deploymentId is null");
 
@@ -89,11 +89,11 @@ public class StatefulEjbObjectHandler ex
             this.primaryKey = primaryKey;
         }
 
-        public boolean equals(Object o) {
+        public boolean equals(final Object o) {
             if (this == o) return true;
             if (o == null || getClass() != o.getClass()) return false;
 
-            RegistryId that = (RegistryId) o;
+            final RegistryId that = (RegistryId) o;
 
             return containerId.equals(that.containerId) &&
                     deploymentId.equals(that.deploymentId) &&

Modified: tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/stateful/StatefulUserTransaction.java
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/stateful/StatefulUserTransaction.java?rev=1569795&r1=1569794&r2=1569795&view=diff
==============================================================================
--- tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/stateful/StatefulUserTransaction.java (original)
+++ tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/stateful/StatefulUserTransaction.java Wed Feb 19 15:47:58 2014
@@ -32,7 +32,7 @@ public class StatefulUserTransaction imp
     private final UserTransaction userTransaction;
     private final JtaEntityManagerRegistry jtaEntityManagerRegistry;
 
-    public StatefulUserTransaction(UserTransaction userTransaction, JtaEntityManagerRegistry jtaEntityManagerRegistry) {
+    public StatefulUserTransaction(final UserTransaction userTransaction, final JtaEntityManagerRegistry jtaEntityManagerRegistry) {
         this.userTransaction = userTransaction;
         this.jtaEntityManagerRegistry = jtaEntityManagerRegistry;
     }
@@ -41,21 +41,21 @@ public class StatefulUserTransaction imp
         userTransaction.begin();
 
         // get the callContext
-        ThreadContext callContext = ThreadContext.getThreadContext();
+        final ThreadContext callContext = ThreadContext.getThreadContext();
         if (callContext == null) {
             // someone is using the user transaction out side of the component
             return;
         }
 
         // get the deployment info
-        BeanContext beanContext = callContext.getBeanContext();
+        final BeanContext beanContext = callContext.getBeanContext();
         if (beanContext.getComponentType() != BeanType.STATEFUL) {
             // some other non-stateful ejb is using our user transaction
             return;
         }
 
         // get the primary key
-        Object primaryKey = callContext.getPrimaryKey();
+        final Object primaryKey = callContext.getPrimaryKey();
         if (primaryKey == null) {
             // is is not a bean method
             return;
@@ -79,7 +79,7 @@ public class StatefulUserTransaction imp
         userTransaction.setRollbackOnly();
     }
 
-    public void setTransactionTimeout(int i) throws SystemException {
+    public void setTransactionTimeout(final int i) throws SystemException {
         userTransaction.setTransactionTimeout(i);
     }
 }

Modified: tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/stateless/StatelessContainer.java
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/stateless/StatelessContainer.java?rev=1569795&r1=1569794&r2=1569795&view=diff
==============================================================================
--- tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/stateless/StatelessContainer.java (original)
+++ tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/stateless/StatelessContainer.java Wed Feb 19 15:47:58 2014
@@ -231,7 +231,7 @@ public class StatelessContainer implemen
                 final InterceptorStack interceptorStack = new InterceptorStack(instance.bean, runMethod, operation, interceptors, instance.interceptors);
                 returnValue = interceptorStack.invoke(args);
             }
-        } catch (Throwable re) {// handle reflection exception
+        } catch (final Throwable re) {// handle reflection exception
             final ExceptionType exceptionType = beanContext.getExceptionType(re);
             if (exceptionType == ExceptionType.SYSTEM) {
                 /* System Exception ****************************/
@@ -249,10 +249,10 @@ public class StatelessContainer implemen
         } finally {
             try {
                 afterInvoke(txPolicy, callContext);
-            } catch (SystemException e) {
+            } catch (final SystemException e) {
                 callContext.setDiscardInstance(true);
                 throw e;
-            } catch (RuntimeException e) {
+            } catch (final RuntimeException e) {
                 callContext.setDiscardInstance(true);
                 throw e;
             }

Modified: tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/stateless/StatelessEjbObjectHandler.java
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/stateless/StatelessEjbObjectHandler.java?rev=1569795&r1=1569794&r2=1569795&view=diff
==============================================================================
--- tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/stateless/StatelessEjbObjectHandler.java (original)
+++ tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/stateless/StatelessEjbObjectHandler.java Wed Feb 19 15:47:58 2014
@@ -56,7 +56,7 @@ public class StatelessEjbObjectHandler e
         try {
             final EjbObjectProxyHandler handler = (EjbObjectProxyHandler) ProxyManager.getInvocationHandler(args[0]);
             return deploymentID.equals(handler.deploymentID);
-        } catch (Throwable t) {
+        } catch (final Throwable t) {
             return Boolean.FALSE;
 
         }

Modified: tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/stateless/StatelessInstanceManager.java
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/stateless/StatelessInstanceManager.java?rev=1569795&r1=1569794&r2=1569795&view=diff
==============================================================================
--- tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/stateless/StatelessInstanceManager.java (original)
+++ tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/stateless/StatelessInstanceManager.java Wed Feb 19 15:47:58 2014
@@ -76,7 +76,7 @@ public class StatelessInstanceManager {
         Method foundRemoveMethod;
         try {
             foundRemoveMethod = SessionBean.class.getDeclaredMethod("ejbRemove");
-        } catch (NoSuchMethodException e) {
+        } catch (final NoSuchMethodException e) {
             foundRemoveMethod = null;
         }
         removeSessionBeanMethod = foundRemoveMethod;
@@ -116,7 +116,7 @@ public class StatelessInstanceManager {
                     if (!tpe.getQueue().offer(r, 20, TimeUnit.SECONDS)) {
                         logger.warning("Executor failed to run asynchronous process: " + r);
                     }
-                } catch (InterruptedException e) {
+                } catch (final InterruptedException e) {
                     //Ignore
                 }
             }
@@ -147,7 +147,7 @@ public class StatelessInstanceManager {
             final ThreadContext oldCallContext = ThreadContext.enter(ctx);
             try {
                 return createInstance(ctx, ctx.getBeanContext());
-            } catch (OpenEJBException e) {
+            } catch (final OpenEJBException e) {
                 logger.error("Unable to fill pool: for deployment '" + beanContext.getDeploymentID() + "'", e);
             } finally {
                 ThreadContext.exit(oldCallContext);
@@ -183,12 +183,12 @@ public class StatelessInstanceManager {
                 instance = entry.get();
                 instance.setPoolEntry(entry);
             }
-        } catch (TimeoutException e) {
+        } catch (final TimeoutException e) {
             final String msg = "No instances available in Stateless Session Bean pool.  Waited " + data.accessTimeout.toString();
             final ConcurrentAccessTimeoutException timeoutException = new ConcurrentAccessTimeoutException(msg);
             timeoutException.fillInStackTrace();
             throw new ApplicationException(timeoutException);
-        } catch (InterruptedException e) {
+        } catch (final InterruptedException e) {
             Thread.interrupted();
             throw new OpenEJBException("Unexpected Interruption of current thread: ", e);
         }
@@ -303,7 +303,7 @@ public class StatelessInstanceManager {
             if (instance.creationalContext != null) {
                 instance.creationalContext.release();
             }
-        } catch (Throwable re) {
+        } catch (final Throwable re) {
             logger.error("The bean instance " + instance + " threw a system exception:" + re, re);
         }
 
@@ -346,7 +346,7 @@ public class StatelessInstanceManager {
             context.bind("comp/EJBContext", data.sessionContext);
             context.bind("comp/WebServiceContext", new EjbWsContext(data.sessionContext));
             context.bind("comp/TimerService", new TimerServiceWrapper());
-        } catch (NamingException e) {
+        } catch (final NamingException e) {
             throw new OpenEJBException("Failed to bind EJBContext/WebServiceContext/TimerService", e);
         }
 
@@ -384,7 +384,7 @@ public class StatelessInstanceManager {
                 }
                 server.registerMBean(new ManagedMBean(stats), objectName);
                 data.add(objectName);
-            } catch (Exception e) {
+            } catch (final Exception e) {
                 logger.error("Unable to register MBean ", e);
             }
         }
@@ -397,7 +397,7 @@ public class StatelessInstanceManager {
             }
             server.registerMBean(new ManagedMBean(data.pool), objectName);
             data.add(objectName);
-        } catch (Exception e) {
+        } catch (final Exception e) {
             logger.error("Unable to register MBean ", e);
         }
 
@@ -410,7 +410,7 @@ public class StatelessInstanceManager {
             es.shutdown();
             try {
                 es.awaitTermination(5, TimeUnit.MINUTES);
-            } catch (InterruptedException e) {
+            } catch (final InterruptedException e) {
                 logger.error("can't fill the stateless pool", e);
             }
         }
@@ -437,7 +437,7 @@ public class StatelessInstanceManager {
         for (final ObjectName objectName : data.jmxNames) {
             try {
                 server.unregisterMBean(objectName);
-            } catch (Exception e) {
+            } catch (final Exception e) {
                 logger.error("Unable to unregister MBean " + objectName);
             }
         }
@@ -446,7 +446,7 @@ public class StatelessInstanceManager {
             if (!data.closePool()) {
                 logger.error("Timed-out waiting for stateless pool to close: for deployment '" + beanContext.getDeploymentID() + "'");
             }
-        } catch (InterruptedException e) {
+        } catch (final InterruptedException e) {
             Thread.interrupted();
         }
 

Modified: tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/timer/CalendarTimerData.java
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/timer/CalendarTimerData.java?rev=1569795&r1=1569794&r2=1569795&view=diff
==============================================================================
--- tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/timer/CalendarTimerData.java (original)
+++ tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/timer/CalendarTimerData.java Wed Feb 19 15:47:58 2014
@@ -36,7 +36,7 @@ public class CalendarTimerData extends T
     private ScheduleExpression scheduleExpression;
     private boolean autoCreated;
 
-    public CalendarTimerData(long id, EjbTimerServiceImpl timerService, String deploymentId, Object primaryKey, Method timeoutMethod, TimerConfig timerConfig, ScheduleExpression scheduleExpression, boolean auto) {
+    public CalendarTimerData(final long id, final EjbTimerServiceImpl timerService, final String deploymentId, final Object primaryKey, final Method timeoutMethod, final TimerConfig timerConfig, final ScheduleExpression scheduleExpression, final boolean auto) {
         super(id, timerService, deploymentId, primaryKey, timeoutMethod, timerConfig);
         this.scheduleExpression = scheduleExpression;
         this.autoCreated = auto;
@@ -59,7 +59,7 @@ public class CalendarTimerData extends T
     public AbstractTrigger<?> initializeTrigger() {
         try {
             return new EJBCronTrigger(scheduleExpression);
-        } catch (ParseException e) {
+        } catch (final ParseException e) {
             //TODO how to handle the ParseException
             throw new IllegalArgumentException("Fail to parse schedule expression " + scheduleExpression, e);
         }
@@ -76,7 +76,7 @@ public class CalendarTimerData extends T
         autoCreated = in.readBoolean();
         try {
             scheduleExpression = ScheduleExpression.class.cast(in.readObject());
-        } catch (ClassNotFoundException e) {
+        } catch (final ClassNotFoundException e) {
             throw new IOException(e);
         }
     }

Modified: tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/timer/DefaultTimerThreadPoolAdapter.java
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/timer/DefaultTimerThreadPoolAdapter.java?rev=1569795&r1=1569794&r2=1569795&view=diff
==============================================================================
--- tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/timer/DefaultTimerThreadPoolAdapter.java (original)
+++ tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/timer/DefaultTimerThreadPoolAdapter.java Wed Feb 19 15:47:58 2014
@@ -90,7 +90,7 @@ public class DefaultTimerThreadPoolAdapt
     public static final class TimerExecutor {
         private final Executor executor;
 
-        private TimerExecutor(Executor executor) {
+        private TimerExecutor(final Executor executor) {
             if (executor == null) throw new IllegalArgumentException("executor cannot be null");
             this.executor = executor;
         }
@@ -104,7 +104,7 @@ public class DefaultTimerThreadPoolAdapt
                 while (threadPoolExecutor.getMaximumPoolSize() - threadPoolExecutor.getActiveCount() < 1 && !threadPoolExecutor.isShutdown()) {
                     try {
                         this.threadAvailableLock.wait(500L);
-                    } catch (InterruptedException ignore) {
+                    } catch (final InterruptedException ignore) {
                         // no-op
                     }
                 }
@@ -151,7 +151,7 @@ public class DefaultTimerThreadPoolAdapt
         try {
             this.executor.execute(runnable);
             return true;
-        } catch (RejectedExecutionException e) {
+        } catch (final RejectedExecutionException e) {
             logger.error("Failed to execute timer task", e);
             return false;
         }
@@ -163,10 +163,10 @@ public class DefaultTimerThreadPoolAdapt
             final ThreadPoolExecutor tpe = (ThreadPoolExecutor) executor;
             tpe.shutdown();
             if (arg0) {
-                int timeout = SystemInstance.get().getOptions().get(OPENEJB_EJB_TIMER_POOL_AWAIT_SECONDS, 5);
+                final int timeout = SystemInstance.get().getOptions().get(OPENEJB_EJB_TIMER_POOL_AWAIT_SECONDS, 5);
                 try {
                     tpe.awaitTermination(timeout, TimeUnit.SECONDS);
-                } catch (InterruptedException e) {
+                } catch (final InterruptedException e) {
                     logger.error(e.getMessage(), e);
                 }
             }

Modified: tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/timer/EJBCronTrigger.java
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/timer/EJBCronTrigger.java?rev=1569795&r1=1569794&r2=1569795&view=diff
==============================================================================
--- tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/timer/EJBCronTrigger.java (original)
+++ tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/timer/EJBCronTrigger.java Wed Feb 19 15:47:58 2014
@@ -74,12 +74,12 @@ public class    EJBCronTrigger extends C
     static {
         int i = 0;
         // Jan -> 0
-        for (String month : new DateFormatSymbols(Locale.US).getShortMonths()) {
+        for (final String month : new DateFormatSymbols(Locale.US).getShortMonths()) {
             MONTHS_MAP.put(month.toUpperCase(Locale.US), i++);
         }
         i = 0;
         // SUN -> 1
-        for (String weekday : new DateFormatSymbols(Locale.US).getShortWeekdays()) {
+        for (final String weekday : new DateFormatSymbols(Locale.US).getShortWeekdays()) {
             WEEKDAYS_MAP.put(weekday.toUpperCase(Locale.US), i++);
         }
     }
@@ -104,9 +104,9 @@ public class    EJBCronTrigger extends C
     private TimeZone timezone;
     private String rawValue;
 
-    public EJBCronTrigger(ScheduleExpression expr) throws ParseException {
+    public EJBCronTrigger(final ScheduleExpression expr) throws ParseException {
 
-        Map<Integer, String> fieldValues = new LinkedHashMap<Integer, String>();
+        final Map<Integer, String> fieldValues = new LinkedHashMap<Integer, String>();
         fieldValues.put(Calendar.YEAR, expr.getYear());
         fieldValues.put(Calendar.MONTH, expr.getMonth());
         fieldValues.put(Calendar.DAY_OF_MONTH, expr.getDayOfMonth());
@@ -120,14 +120,14 @@ public class    EJBCronTrigger extends C
         setEndTime(expr.getEnd());
 
         // If parsing fails on a field, record the error and move to the next field
-        Map<Integer, ParseException> errors = new HashMap<Integer, ParseException>();
+        final Map<Integer, ParseException> errors = new HashMap<Integer, ParseException>();
         int index = 0;
-        for (Entry<Integer, String> entry : fieldValues.entrySet()) {
-            int field = entry.getKey();
-            String value = entry.getValue();
+        for (final Entry<Integer, String> entry : fieldValues.entrySet()) {
+            final int field = entry.getKey();
+            final String value = entry.getValue();
             try {
                 expressions[index++] = parseExpression(field, value);
-            } catch (ParseException e) {
+            } catch (final ParseException e) {
                 errors.put(field, e);
             }
         }
@@ -154,7 +154,7 @@ public class    EJBCronTrigger extends C
      *             when there is a syntax error in the expression, or its values
      *             are out of range
      */
-    protected FieldExpression parseExpression(int field, String expr) throws ParseException {
+    protected FieldExpression parseExpression(final int field, String expr) throws ParseException {
 
         if (expr == null || expr.isEmpty()){
             throw new ParseException(field, expr, "expression can't be null");
@@ -166,9 +166,9 @@ public class    EJBCronTrigger extends C
 
         if (expr.length() > 1 && expr.indexOf(",") > 0) {
 
-            String[] expressions = expr.split(",");
+            final String[] expressions = expr.split(",");
 
-            for (String subExpression : expressions) {
+            for (final String subExpression : expressions) {
                 validateExpression(field, subExpression);
             }
 
@@ -224,10 +224,10 @@ public class    EJBCronTrigger extends C
     }
         
 
-    private void validateExpression(int field, String expression) throws ParseException {
+    private void validateExpression(final int field, final String expression) throws ParseException {
 
-        Matcher rangeMatcher= RANGE.matcher(expression);
-        Matcher incrementsMatcher= INCREMENTS.matcher(expression);
+        final Matcher rangeMatcher= RANGE.matcher(expression);
+        final Matcher incrementsMatcher= INCREMENTS.matcher(expression);
         
         if (expression.length() > 2 && rangeMatcher.matches()) {
             
@@ -246,71 +246,70 @@ public class    EJBCronTrigger extends C
         }
 
     }
-        
-    private void validateSingleToken(int field, String token) throws ParseException{
-        
-        if(token==null || token.isEmpty()) {
-          throw new ParseException(field, token, "expression can't be null");
+
+    private void validateSingleToken(final int field, final String token) throws ParseException {
+        if (token == null || token.isEmpty()) {
+            throw new ParseException(field, token, "expression can't be null");
         }
-        
         switch (field) {
-        
-        case Calendar.YEAR:
-            Matcher m = VALID_YEAR.matcher(token);
-            if (!m.matches()) {
-                throw new ParseException(field, token, "Valid YEAR is four digit");
-            }
-            break;               
-            
-        case Calendar.MONTH:
-            m = VALID_MONTH.matcher(token);
-            if (!(m.matches() || MONTHS_MAP.containsKey(token))) {
-                throw new ParseException(field, token, "Valid MONTH is 1-12 or {'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', Dec'}");
+            case Calendar.YEAR: {
+                final Matcher m = VALID_YEAR.matcher(token);
+                if (!m.matches()) {
+                    throw new ParseException(field, token, "Valid YEAR is four digit");
+                }
+                break;
             }
-            break;
-            
-        case Calendar.DAY_OF_MONTH:
-            m = VALID_DAYS_OF_MONTH.matcher(token);
-            if (!m.matches()) {
-                throw new ParseException(field, token, "Valid DAYS_OF_MONTH is 0-7 or {'Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'} ");
+            case Calendar.MONTH: {
+                final Matcher m = VALID_MONTH.matcher(token);
+                if (!(m.matches() || MONTHS_MAP.containsKey(token))) {
+                    throw new ParseException(field, token, "Valid MONTH is 1-12 or {'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', Dec'}");
+                }
+                break;
             }
-            break;
-            
-        case Calendar.DAY_OF_WEEK:
-            m = VALID_DAYS_OF_WEEK.matcher(token);
-            if (!(m.matches() || WEEKDAYS_MAP.containsKey(token))) {
-                throw new ParseException(field, token, "Valid DAYS_OF_WEEK is 1-31  -(1-7) or {'1st', '2nd', '3rd', '4th',  '5th', 'Last'} + {'Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'} ");
+            case Calendar.DAY_OF_MONTH: {
+                final Matcher m = VALID_DAYS_OF_MONTH.matcher(token);
+                if (!m.matches()) {
+                    throw new ParseException(field, token, "Valid DAYS_OF_MONTH is 0-7 or {'Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'} ");
+                }
+                break;
             }
-            break;
-        
-        case Calendar.HOUR_OF_DAY:
-            m = VALID_HOUR.matcher(token);
-            if (!m.matches()) {
-                throw new ParseException(field, token, "Valid HOUR_OF_DAY value is 0-23");
+            case Calendar.DAY_OF_WEEK: {
+                final Matcher m = VALID_DAYS_OF_WEEK.matcher(token);
+                if (!(m.matches() || WEEKDAYS_MAP.containsKey(token))) {
+                    throw new ParseException(field, token, "Valid DAYS_OF_WEEK is 1-31  -(1-7) or {'1st', '2nd', '3rd', '4th',  '5th', 'Last'} + {'Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'} ");
+                }
+                break;
             }
-            break;
-        case Calendar.MINUTE:
-            m = VALID_MINUTE.matcher(token);
-            if (!m.matches()) {
-                throw new ParseException(field, token, "Valid MINUTE value is 0-59");
+            case Calendar.HOUR_OF_DAY: {
+                final Matcher m = VALID_HOUR.matcher(token);
+                if (!m.matches()) {
+                    throw new ParseException(field, token, "Valid HOUR_OF_DAY value is 0-23");
+                }
+                break;
             }
-            break;
-        case Calendar.SECOND:
-            m = VALID_SECOND.matcher(token);
-            if (!m.matches()) {
-                throw new ParseException(field, token, "Valid SECOND value is 0-59");
+            case Calendar.MINUTE: {
+                final Matcher m = VALID_MINUTE.matcher(token);
+                if (!m.matches()) {
+                    throw new ParseException(field, token, "Valid MINUTE value is 0-59");
+                }
+                break;
+            }
+            case Calendar.SECOND: {
+                final Matcher m = VALID_SECOND.matcher(token);
+                if (!m.matches()) {
+                    throw new ParseException(field, token, "Valid SECOND value is 0-59");
+                }
+                break;
             }
-            break;
-            
         }
-    
     }
+
     /**
      * Works similarly to getFireTimeAfter() but backwards.
      */
     @Override
     public Date getFinalFireTime() {
-        Calendar calendar = new GregorianCalendar(timezone);
+        final Calendar calendar = new GregorianCalendar(timezone);
         //calendar.setLenient(false);
         calendar.setFirstDayOfWeek(Calendar.SUNDAY);
 
@@ -326,7 +325,7 @@ public class    EJBCronTrigger extends C
         }
 
         // Calculate time to give up scheduling
-        Calendar stopCalendar = new  GregorianCalendar(timezone);
+        final Calendar stopCalendar = new  GregorianCalendar(timezone);
         if (getStartTime() != null) {
             stopCalendar.setTime(getStartTime());
         } else {
@@ -335,10 +334,10 @@ public class    EJBCronTrigger extends C
 
         int currentFieldIndex = 0;
         while (currentFieldIndex <= 6 && calendar.after(stopCalendar)) {
-            FieldExpression expr = expressions[currentFieldIndex];
-            Integer value = expr.getPreviousValue(calendar);
+            final FieldExpression expr = expressions[currentFieldIndex];
+            final Integer value = expr.getPreviousValue(calendar);
             if (value != null) {
-                int oldValue = calendar.get(expr.field);
+                final int oldValue = calendar.get(expr.field);
                 if (oldValue != value) {
                     // The value has changed, so update the calendar and reset all
                     // less significant fields
@@ -357,7 +356,7 @@ public class    EJBCronTrigger extends C
             } else if (currentFieldIndex >= 1) {
                 // No suitable value was found, so move back to the previous field
                 // and decrease the value
-                int maxAffectedFieldType = upadteCalendar(calendar, expressions[currentFieldIndex - 1].field, -1);
+                final int maxAffectedFieldType = upadteCalendar(calendar, expressions[currentFieldIndex - 1].field, -1);
                 currentFieldIndex = CALENDAR_FIELD_TYPE_ORDERED_INDEX_MAP.get(maxAffectedFieldType);
                 resetFields(calendar, maxAffectedFieldType, true);
             } else {
@@ -371,9 +370,9 @@ public class    EJBCronTrigger extends C
     }
 
     @Override
-    public Date getFireTimeAfter(Date afterTime) {
+    public Date getFireTimeAfter(final Date afterTime) {
         log.debug("start to getFireTimeAfter:"+afterTime);
-        Calendar calendar = new GregorianCalendar(timezone);
+        final Calendar calendar = new GregorianCalendar(timezone);
         // calendar.setLenient(false);
         calendar.setFirstDayOfWeek(Calendar.SUNDAY);
 
@@ -386,11 +385,11 @@ public class    EJBCronTrigger extends C
         }
 
         // Calculate time to give up scheduling
-        Calendar stopCalendar = new GregorianCalendar(timezone);
+        final Calendar stopCalendar = new GregorianCalendar(timezone);
         if (getEndTime() != null) {
             stopCalendar.setTime(getEndTime());
         } else {
-            int stopYear = calendar.get(Calendar.YEAR) + 100;
+            final int stopYear = calendar.get(Calendar.YEAR) + 100;
             stopCalendar.set(Calendar.YEAR, stopYear);
         }
 
@@ -399,7 +398,7 @@ public class    EJBCronTrigger extends C
         while (currentFieldIndex <= 6 && calendar.before(stopCalendar)) {
 
            
-            FieldExpression expr = expressions[currentFieldIndex];
+            final FieldExpression expr = expressions[currentFieldIndex];
             Integer value = expr.getNextValue(calendar);
 
             /*
@@ -409,7 +408,7 @@ public class    EJBCronTrigger extends C
              * two fields need not match the current day).
              */
             if (currentFieldIndex == 2 && !(expressions[3] instanceof AsteriskExpression)) {
-                Calendar clonedCalendarDayOfWeek = (Calendar) calendar.clone();
+                final Calendar clonedCalendarDayOfWeek = (Calendar) calendar.clone();
                 Integer nextDayOfWeek = expressions[3].getNextValue(clonedCalendarDayOfWeek);
                 while (nextDayOfWeek == null) {
                     clonedCalendarDayOfWeek.add(Calendar.DAY_OF_MONTH, 1);
@@ -418,7 +417,7 @@ public class    EJBCronTrigger extends C
 
                 if (nextDayOfWeek != null) {
                     clonedCalendarDayOfWeek.set(expressions[3].field, nextDayOfWeek);
-                    int newDayOfMonth = clonedCalendarDayOfWeek.get(expressions[2].field);
+                    final int newDayOfMonth = clonedCalendarDayOfWeek.get(expressions[2].field);
                     
                     if (value == null) {
                         value = newDayOfMonth;
@@ -449,15 +448,15 @@ public class    EJBCronTrigger extends C
                     // and increase the value
                     // When current field is HOUR_OF_DAY, its upper field is DAY_OF_MONTH, so we need to -2 due to
                     // DAY_OF_WEEK.
-                    int parentFieldIndex = currentFieldIndex == 4 ? currentFieldIndex - 2 : currentFieldIndex - 1;
-                    int maxAffectedFieldType = upadteCalendar(calendar, expressions[parentFieldIndex].field, 1);
+                    final int parentFieldIndex = currentFieldIndex == 4 ? currentFieldIndex - 2 : currentFieldIndex - 1;
+                    final int maxAffectedFieldType = upadteCalendar(calendar, expressions[parentFieldIndex].field, 1);
                     currentFieldIndex = CALENDAR_FIELD_TYPE_ORDERED_INDEX_MAP.get(maxAffectedFieldType);
                     resetFields(calendar, maxAffectedFieldType, false);
                 }
                 
             } else if (value != null) {
                 
-                int oldValue = calendar.get(expr.field);
+                final int oldValue = calendar.get(expr.field);
                 if (oldValue != value) {
                     
                     if (currentFieldIndex == 3 && !(expressions[2] instanceof AsteriskExpression)) {
@@ -493,11 +492,11 @@ public class    EJBCronTrigger extends C
      * @param field
      * @return
      */
-    private int upadteCalendar(Calendar calendar, int field, int amount) {
-        Calendar old = new GregorianCalendar(timezone);
+    private int upadteCalendar(final Calendar calendar, final int field, final int amount) {
+        final Calendar old = new GregorianCalendar(timezone);
         old.setTime(calendar.getTime());
         calendar.add(field, amount);
-        for (int fieldType : ORDERED_CALENDAR_FIELDS) {
+        for (final int fieldType : ORDERED_CALENDAR_FIELDS) {
             if (calendar.get(fieldType) != old.get(fieldType)) {
                 return fieldType;
             }
@@ -516,11 +515,11 @@ public class    EJBCronTrigger extends C
      * @param currentField
      * @param max
      */
-    private void resetFields(Calendar calendar, int currentField, boolean max) {
+    private void resetFields(final Calendar calendar, final int currentField, final boolean max) {
         for (int index = ORDERED_CALENDAR_FIELDS.length - 1; index >= 0; index--) {
-            int calendarField = ORDERED_CALENDAR_FIELDS[index];
+            final int calendarField = ORDERED_CALENDAR_FIELDS[index];
             if (calendarField > currentField) {
-                int value = max ? calendar.getActualMaximum(calendarField) : calendar.getActualMinimum(calendarField);
+                final int value = max ? calendar.getActualMaximum(calendarField) : calendar.getActualMinimum(calendarField);
                 calendar.set(calendarField, value);
             } else {
                 break;
@@ -540,14 +539,14 @@ public class    EJBCronTrigger extends C
         private final String value;
         private final String error;
 
-        protected ParseException(int field, String value, String message) {
+        protected ParseException(final int field, final String value, final String message) {
             this.children = null;
             this.field = field;
             this.value = value;
             this.error = message;
         }
 
-        protected ParseException(Map<Integer, ParseException> children) {
+        protected ParseException(final Map<Integer, ParseException> children) {
             this.children = children;
             this.field = null;
             this.value = null;
@@ -584,13 +583,13 @@ public class    EJBCronTrigger extends C
 
        
 
-        protected static int convertValue(String value, int field) throws ParseException {
+        protected static int convertValue(final String value, final int field) throws ParseException {
             // If the value begins with a digit, parse it as a number
             if (Character.isDigit(value.charAt(0))) {
                 int numValue;
                 try {
                     numValue = Integer.parseInt(value);
-                } catch (NumberFormatException e) {
+                } catch (final NumberFormatException e) {
                     throw new ParseException(field, value, "Unparseable value");
                 }
 
@@ -616,15 +615,15 @@ public class    EJBCronTrigger extends C
 
         public final int field;
 
-        protected FieldExpression(int field) {
+        protected FieldExpression(final int field) {
             this.field = field;
         }
 
-        protected int convertValue(String value) throws ParseException {
+        protected int convertValue(final String value) throws ParseException {
             return convertValue(value, field);
         }
 
-        protected boolean isValidResult(Calendar calendar, Integer result){
+        protected boolean isValidResult(final Calendar calendar, final Integer result){
             return result != null && result >= calendar.getActualMinimum(field) && result <= calendar.getActualMaximum(field);
         }
 
@@ -681,14 +680,14 @@ public class    EJBCronTrigger extends C
             return isDynamicRangeExpression;
         }
 
-        public RangeExpression(int field, int start, int end, int start2) {
+        public RangeExpression(final int field, final int start, final int end, final int start2) {
             super(field);
             this.start = start;
             this.end = end;
             this.start2 = start2;
         }
 
-        public RangeExpression(Matcher m, int field) throws ParseException {
+        public RangeExpression(final Matcher m, final int field) throws ParseException {
             
             super(field);
             
@@ -698,11 +697,11 @@ public class    EJBCronTrigger extends C
             
             if (field == Calendar.DAY_OF_MONTH) {
                 
-                Matcher startWeekDayMatcher = WEEKDAY.matcher(m.group(1));
-                Matcher endWeekDayMatcher = WEEKDAY.matcher(m.group(2));
+                final Matcher startWeekDayMatcher = WEEKDAY.matcher(m.group(1));
+                final Matcher endWeekDayMatcher = WEEKDAY.matcher(m.group(2));
                 
-                Matcher startDaysFromLastDayMatcher = DAYS_TO_LAST.matcher(m.group(1));
-                Matcher endDaysFromLastDayMatcher = DAYS_TO_LAST.matcher(m.group(2));
+                final Matcher startDaysFromLastDayMatcher = DAYS_TO_LAST.matcher(m.group(1));
+                final Matcher endDaysFromLastDayMatcher = DAYS_TO_LAST.matcher(m.group(2));
                 
                 if (startWeekDayMatcher.matches()) {
                     startWeekdayExpr = new WeekdayExpression(startWeekDayMatcher);
@@ -737,7 +736,7 @@ public class    EJBCronTrigger extends C
             
          }
         
-        private void initStartEndValues(Calendar calendar) throws ParseException{
+        private void initStartEndValues(final Calendar calendar) throws ParseException{
             
             int beginValue;
             int endValue;
@@ -749,7 +748,7 @@ public class    EJBCronTrigger extends C
                 } else if (startWeekdayExpr != null) {
                     beginValue = startWeekdayExpr.getWeekdayInMonth(calendar);
                 } else if (startDaysFromLastDayExpr != null) {
-                    Integer next = startDaysFromLastDayExpr.getNextValue(calendar);
+                    final Integer next = startDaysFromLastDayExpr.getNextValue(calendar);
                     beginValue = next == null ? calendar.get(field) : next;
                 } else {
                     beginValue = convertValue(startWeekDay);
@@ -760,7 +759,7 @@ public class    EJBCronTrigger extends C
                 } else if (endWeekdayExpr != null) {
                     endValue = endWeekdayExpr.getWeekdayInMonth(calendar);
                 } else if (endDaysFromLastDayExpr != null) {
-                    Integer next = endDaysFromLastDayExpr.getNextValue(calendar);
+                    final Integer next = endDaysFromLastDayExpr.getNextValue(calendar);
                     endValue = next == null ? calendar.get(field) : next;
                 } else {
                     endValue = convertValue(endWeekDay);
@@ -818,14 +817,14 @@ public class    EJBCronTrigger extends C
 
 
         @Override
-        public Integer getNextValue(Calendar calendar) {
+        public Integer getNextValue(final Calendar calendar) {
             
             if (isDynamicRangeExpression){
                 
-                Integer nextStartWeekday = startWeekdayExpr == null ? start : startWeekdayExpr
+                final Integer nextStartWeekday = startWeekdayExpr == null ? start : startWeekdayExpr
                         .getWeekdayInMonth(calendar);
                 
-                Integer nextendWeekday = endWeekdayExpr == null ? end : endWeekdayExpr.
+                final Integer nextendWeekday = endWeekdayExpr == null ? end : endWeekdayExpr.
                         getWeekdayInMonth(calendar);
                 
                 if (nextStartWeekday == null || nextendWeekday == null) {
@@ -834,13 +833,13 @@ public class    EJBCronTrigger extends C
                 
                 try {
                     initStartEndValues(calendar);
-                } catch (ParseException e) {
+                } catch (final ParseException e) {
                     return null;
                 }
             }
             
             
-            int currValue = calendar.get(field);
+            final int currValue = calendar.get(field);
             if (start2 != -1) {
                 if (currValue >= start2) {
                     return isValidResult(calendar,currValue)?currValue:null;
@@ -858,18 +857,18 @@ public class    EJBCronTrigger extends C
         }
 
         @Override
-        public Integer getPreviousValue(Calendar calendar) {
+        public Integer getPreviousValue(final Calendar calendar) {
             
             if (isDynamicRangeExpression){
                 try {
                     initStartEndValues(calendar);
-                } catch (ParseException e) {
+                } catch (final ParseException e) {
                     return null;
                 }
              }
             
             
-            int currValue = calendar.get(field);
+            final int currValue = calendar.get(field);
             if (start2 != -1) {
                 if (currValue >= start2) {
                     return isValidResult(calendar,currValue)?currValue:null;
@@ -884,14 +883,14 @@ public class    EJBCronTrigger extends C
             }
         }
 
-       public List<Integer> getAllValuesInRange(Calendar calendar){
+       public List<Integer> getAllValuesInRange(final Calendar calendar){
            
-           List<Integer> values=new ArrayList<Integer>();
+           final List<Integer> values=new ArrayList<Integer>();
            
            if (isDynamicRangeExpression){
                try {
                    initStartEndValues(calendar);
-               } catch (ParseException e) {
+               } catch (final ParseException e) {
                   return values;
                }
             }
@@ -928,18 +927,18 @@ public class    EJBCronTrigger extends C
 
         private final List<DaysFromLastDayExpression> daysFromLastDayExpressions = new ArrayList<DaysFromLastDayExpression>();;
 
-        public ListExpression(Matcher m, int field) throws ParseException {
+        public ListExpression(final Matcher m, final int field) throws ParseException {
             super(field);
             initialize(m);
         }
 
-        private void initialize(Matcher m) throws ParseException {
+        private void initialize(final Matcher m) throws ParseException {
             
-            for (String value : m.group().split("[,]")) {
+            for (final String value : m.group().split("[,]")) {
                 
-                Matcher rangeMatcher = RANGE.matcher(value);
-                Matcher weekDayMatcher = WEEKDAY.matcher(value);
-                Matcher daysToLastMatcher = DAYS_TO_LAST.matcher(value);
+                final Matcher rangeMatcher = RANGE.matcher(value);
+                final Matcher weekDayMatcher = WEEKDAY.matcher(value);
+                final Matcher daysToLastMatcher = DAYS_TO_LAST.matcher(value);
                 
                 if (value.equals(LAST_IDENTIFIER)) {
                     daysFromLastDayExpressions.add(new DaysFromLastDayExpression());
@@ -952,7 +951,7 @@ public class    EJBCronTrigger extends C
                     continue;
                 } else if (rangeMatcher.matches()) {
                     
-                    RangeExpression rangeExpression= new RangeExpression(rangeMatcher,field);
+                    final RangeExpression rangeExpression= new RangeExpression(rangeMatcher,field);
                     
                     if (rangeExpression.isDynamicRangeExpression()){
                         weekDayRangeExpressions.add(new RangeExpression(rangeMatcher,field));
@@ -974,26 +973,26 @@ public class    EJBCronTrigger extends C
             
         }
         
-        private TreeSet<Integer> getNewValuesFromDynamicExpressions(Calendar calendar){
+        private TreeSet<Integer> getNewValuesFromDynamicExpressions(final Calendar calendar){
             
-            TreeSet<Integer> newValues = new TreeSet<Integer>();
+            final TreeSet<Integer> newValues = new TreeSet<Integer>();
 
                 newValues.addAll(values);
                 
-                for (RangeExpression weekDayRangeExpression : weekDayRangeExpressions) {
+                for (final RangeExpression weekDayRangeExpression : weekDayRangeExpressions) {
                     
                         newValues.addAll(weekDayRangeExpression.getAllValuesInRange(calendar));
                 }
                 
-                for (WeekdayExpression weekdayExpression : weekDayExpressions) {
-                    Integer value=weekdayExpression.getNextValue(calendar);
+                for (final WeekdayExpression weekdayExpression : weekDayExpressions) {
+                    final Integer value=weekdayExpression.getNextValue(calendar);
                     if (value != null) {
                         newValues.add(value);
                     }
                 }
                 
-                for (DaysFromLastDayExpression daysFromLastDayExpression : daysFromLastDayExpressions) {
-                    Integer value=daysFromLastDayExpression.getNextValue(calendar);
+                for (final DaysFromLastDayExpression daysFromLastDayExpression : daysFromLastDayExpressions) {
+                    final Integer value=daysFromLastDayExpression.getNextValue(calendar);
                     if (value != null) {
                         newValues.add(value);
                     }
@@ -1005,26 +1004,26 @@ public class    EJBCronTrigger extends C
         }
 
         @Override
-        public Integer getNextValue(Calendar calendar) {
+        public Integer getNextValue(final Calendar calendar) {
 
-            TreeSet<Integer> newValues= getNewValuesFromDynamicExpressions(calendar);
+            final TreeSet<Integer> newValues= getNewValuesFromDynamicExpressions(calendar);
 
-            int currValue = calendar.get(field);
+            final int currValue = calendar.get(field);
 
-            Integer result = newValues.ceiling(currValue);
+            final Integer result = newValues.ceiling(currValue);
 
             return isValidResult(calendar, result)? result : null;
 
         }
 
         @Override
-        public Integer getPreviousValue(Calendar calendar) {
+        public Integer getPreviousValue(final Calendar calendar) {
 
-            TreeSet<Integer> newValues= getNewValuesFromDynamicExpressions(calendar);
+            final TreeSet<Integer> newValues= getNewValuesFromDynamicExpressions(calendar);
 
-            int currValue = calendar.get(field);
+            final int currValue = calendar.get(field);
 
-            Integer result =newValues.floor(currValue);
+            final Integer result =newValues.floor(currValue);
             
             return isValidResult(calendar, result)? result : null;
         }
@@ -1035,17 +1034,17 @@ public class    EJBCronTrigger extends C
         private final int start;
         private final int interval;
 
-        public IncrementExpression(Matcher m, int field) {
+        public IncrementExpression(final Matcher m, final int field) {
             super(field);
-            int minValue = CALENDAR.getMinimum(field);
+            final int minValue = CALENDAR.getMinimum(field);
             start = m.group(1).equals("*") ? minValue : Integer.parseInt(m.group(1));
             interval = Integer.parseInt(m.group(2));
         }
 
         @Override
-        public Integer getNextValue(Calendar calendar) {
+        public Integer getNextValue(final Calendar calendar) {
 
-            int currValue = calendar.get(field);
+            final int currValue = calendar.get(field);
 
             if (currValue > start) {
 
@@ -1069,9 +1068,9 @@ public class    EJBCronTrigger extends C
         }
 
         @Override
-        public Integer getPreviousValue(Calendar calendar) {
+        public Integer getPreviousValue(final Calendar calendar) {
 
-            int currValue = calendar.get(field);
+            final int currValue = calendar.get(field);
 
             if (currValue < start) {
 
@@ -1099,27 +1098,27 @@ public class    EJBCronTrigger extends C
         private final Integer ordinal; // null means last
         private final int weekday;
 
-        public WeekdayExpression(Matcher m) throws ParseException {
+        public WeekdayExpression(final Matcher m) throws ParseException {
             super(Calendar.DAY_OF_MONTH);
-            Character firstChar = m.group(1).charAt(0);
+            final Character firstChar = m.group(1).charAt(0);
             ordinal = Character.isDigit(firstChar) ? Integer.valueOf(firstChar.toString()) : null;
             weekday = convertValue(m.group(2), Calendar.DAY_OF_WEEK);
         }
 
         @Override
-        public Integer getNextValue(Calendar calendar) {
-            int currDay = calendar.get(Calendar.DAY_OF_MONTH);
-            Integer nthDay = getWeekdayInMonth(calendar);
-            Integer result = nthDay != null && nthDay >= currDay ? nthDay : null;
+        public Integer getNextValue(final Calendar calendar) {
+            final int currDay = calendar.get(Calendar.DAY_OF_MONTH);
+            final Integer nthDay = getWeekdayInMonth(calendar);
+            final Integer result = nthDay != null && nthDay >= currDay ? nthDay : null;
 
             return isValidResult(calendar, result)? result : null;
         }
         
-        public Integer getWeekdayInMonth(Calendar calendar){
+        public Integer getWeekdayInMonth(final Calendar calendar){
             
-            int currDay = calendar.get(Calendar.DAY_OF_MONTH);
-            int currWeekday = calendar.get(Calendar.DAY_OF_WEEK);
-            int maxDay = calendar.getActualMaximum(Calendar.DAY_OF_MONTH);
+            final int currDay = calendar.get(Calendar.DAY_OF_MONTH);
+            final int currWeekday = calendar.get(Calendar.DAY_OF_WEEK);
+            final int maxDay = calendar.getActualMaximum(Calendar.DAY_OF_MONTH);
 
             // Calculate the first day in the month whose weekday is the same as the
             // one we're looking for
@@ -1128,22 +1127,22 @@ public class    EJBCronTrigger extends C
             firstWeekday = firstWeekday == 0 ? 7 : firstWeekday;
 
             // Then calculate how many such weekdays there is in this month
-            int numWeekdays = firstWeekday>=0?(maxDay - firstWeekday) / 7 +1:(maxDay - firstWeekday) / 7;
+            final int numWeekdays = firstWeekday>=0?(maxDay - firstWeekday) / 7 +1:(maxDay - firstWeekday) / 7;
 
             // Then calculate the Nth of those days, or the last one if ordinal is null
-            int multiplier = ordinal != null ? ordinal : numWeekdays;
-            int nthDay = firstWeekday>=0? firstWeekday + (multiplier-1) * 7 : firstWeekday + multiplier * 7;
+            final int multiplier = ordinal != null ? ordinal : numWeekdays;
+            final int nthDay = firstWeekday>=0? firstWeekday + (multiplier-1) * 7 : firstWeekday + multiplier * 7;
 
             // Return the calculated day, or null if the day is out of range
             return nthDay <= maxDay ? nthDay : null;
         }
 
         @Override
-        public Integer getPreviousValue(Calendar calendar) {
+        public Integer getPreviousValue(final Calendar calendar) {
             
-              int currDay = calendar.get(Calendar.DAY_OF_MONTH);
-              Integer nthDay = getWeekdayInMonth(calendar);
-              Integer result = nthDay != null && nthDay <= currDay ? nthDay : null;
+              final int currDay = calendar.get(Calendar.DAY_OF_MONTH);
+              final Integer nthDay = getWeekdayInMonth(calendar);
+              final Integer result = nthDay != null && nthDay <= currDay ? nthDay : null;
               
               return isValidResult(calendar, result)? result : null;
         }
@@ -1154,7 +1153,7 @@ public class    EJBCronTrigger extends C
 
         private final int days;
 
-        public DaysFromLastDayExpression(Matcher m) {
+        public DaysFromLastDayExpression(final Matcher m) {
             super(Calendar.DAY_OF_MONTH);
             days = new Integer(m.group(1));
         }
@@ -1165,18 +1164,18 @@ public class    EJBCronTrigger extends C
         }
 
         @Override
-        public Integer getNextValue(Calendar calendar) {
-            int currValue = calendar.get(field);
-            int maxValue = calendar.getActualMaximum(field);
-            int value = maxValue - days;
-            Integer result = currValue <= value ? value : null;
+        public Integer getNextValue(final Calendar calendar) {
+            final int currValue = calendar.get(field);
+            final int maxValue = calendar.getActualMaximum(field);
+            final int value = maxValue - days;
+            final Integer result = currValue <= value ? value : null;
             return isValidResult(calendar, result)? result : null;
         }
 
         @Override
-        public Integer getPreviousValue(Calendar calendar) {
-            int maxValue = calendar.getActualMaximum(field);
-            Integer result = maxValue - days;
+        public Integer getPreviousValue(final Calendar calendar) {
+            final int maxValue = calendar.getActualMaximum(field);
+            final Integer result = maxValue - days;
             return isValidResult(calendar, result)? result : null;
         }
 
@@ -1184,17 +1183,17 @@ public class    EJBCronTrigger extends C
 
     private static class AsteriskExpression extends FieldExpression {
 
-        public AsteriskExpression(int field){
+        public AsteriskExpression(final int field){
             super(field);
         }
 
         @Override
-        public Integer getNextValue(Calendar calendar) {
+        public Integer getNextValue(final Calendar calendar) {
            return calendar.get(field);
         }
 
         @Override
-        public Integer getPreviousValue(Calendar calendar) {
+        public Integer getPreviousValue(final Calendar calendar) {
             return calendar.get(field);
         }
     }

Modified: tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/timer/EJBCronTriggerPersistenceDelegate.java
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/timer/EJBCronTriggerPersistenceDelegate.java?rev=1569795&r1=1569794&r2=1569795&view=diff
==============================================================================
--- tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/timer/EJBCronTriggerPersistenceDelegate.java (original)
+++ tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/timer/EJBCronTriggerPersistenceDelegate.java Wed Feb 19 15:47:58 2014
@@ -38,7 +38,7 @@ public class EJBCronTriggerPersistenceDe
     }
 
     @Override
-    public boolean canHandleTriggerType(OperableTrigger trigger) {
+    public boolean canHandleTriggerType(final OperableTrigger trigger) {
         return trigger instanceof EJBCronTrigger;
     }
 
@@ -53,8 +53,8 @@ public class EJBCronTriggerPersistenceDe
             rs = ps.executeQuery();
 
             if (rs.next()) {
-                String cronExpr = rs.getString(COL_CRON_EXPRESSION);
-                String timeZoneId = rs.getString(COL_TIME_ZONE_ID);
+                final String cronExpr = rs.getString(COL_CRON_EXPRESSION);
+                final String timeZoneId = rs.getString(COL_TIME_ZONE_ID);
 
                 final String[] parts = cronExpr.split(EJBCronTrigger.DELIMITER);
                 try {
@@ -68,7 +68,7 @@ public class EJBCronTriggerPersistenceDe
                             .second(parts[6])
                             .timezone(timeZoneId));
                     return new TriggerPropertyBundle(new EJBCronTriggerSceduleBuilder(cb), null, null);
-                } catch (EJBCronTrigger.ParseException e) {
+                } catch (final EJBCronTrigger.ParseException e) {
                     throw new IllegalStateException("Can't build the Trigger with key: '" + triggerKey + "' and statement: " + Util.rtp(SELECT_CRON_TRIGGER, tablePrefix, schedNameLiteral));
                 }
             }

Modified: tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/timer/EjbTimeoutJob.java
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/timer/EjbTimeoutJob.java?rev=1569795&r1=1569794&r2=1569795&view=diff
==============================================================================
--- tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/timer/EjbTimeoutJob.java (original)
+++ tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/timer/EjbTimeoutJob.java Wed Feb 19 15:47:58 2014
@@ -32,10 +32,10 @@ public class EjbTimeoutJob implements Jo
     public static final String TIMER_DATA = "TIMER_DATA";
 
     @Override
-    public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
-        JobDataMap jobDataMap = jobExecutionContext.getMergedJobDataMap();
-        EjbTimerServiceImpl ejbTimerService = (EjbTimerServiceImpl) jobDataMap.get(EJB_TIMERS_SERVICE);
-        TimerData timerData = (TimerData) jobDataMap.get(TIMER_DATA);
+    public void execute(final JobExecutionContext jobExecutionContext) throws JobExecutionException {
+        final JobDataMap jobDataMap = jobExecutionContext.getMergedJobDataMap();
+        final EjbTimerServiceImpl ejbTimerService = (EjbTimerServiceImpl) jobDataMap.get(EJB_TIMERS_SERVICE);
+        final TimerData timerData = (TimerData) jobDataMap.get(TIMER_DATA);
         ejbTimerService.ejbTimeout(timerData);
     }
 }