On 14/07/2009, Filip Hanik - Dev Lists <devli...@hanik.com> wrote: > think it should be all in order now > > http://people.apache.org/~fhanik/jdbc-pool/v1.0.6/
Eclipse and Findbugs show the following warnings for the non-test code: Description Resource Path Type Location Class is a raw type. References to generic type Class<T> should be parameterized ConnectionPool.java /tomcat-jdbc-pool_1_0_6/java/org/apache/tomcat/jdbc/pool Java Problem line 302 Class is a raw type. References to generic type Class<T> should be parameterized PoolProperties.java /tomcat-jdbc-pool_1_0_6/java/org/apache/tomcat/jdbc/pool Java Problem line 735 Class is a raw type. References to generic type Class<T> should be parameterized ProxyConnection.java /tomcat-jdbc-pool_1_0_6/java/org/apache/tomcat/jdbc/pool Java Problem line 72 Constructor is a raw type. References to generic type Constructor<T> should be parameterized ConnectionPool.java /tomcat-jdbc-pool_1_0_6/java/org/apache/tomcat/jdbc/pool Java Problem line 105 Constructor is a raw type. References to generic type Constructor<T> should be parameterized ConnectionPool.java /tomcat-jdbc-pool_1_0_6/java/org/apache/tomcat/jdbc/pool Java Problem line 299 FairBlockingQueue is a raw type. References to generic type FairBlockingQueue<E> should be parameterized ConnectionPool.java /tomcat-jdbc-pool_1_0_6/java/org/apache/tomcat/jdbc/pool Java Problem line 148 FairBlockingQueue.ItemFuture is a raw type. References to generic type FairBlockingQueue<E>.ItemFuture<T> should be parameterized FairBlockingQueue.java /tomcat-jdbc-pool_1_0_6/java/org/apache/tomcat/jdbc/pool Java Problem line 173 FairBlockingQueue.ItemFuture is a raw type. References to generic type FairBlockingQueue<E>.ItemFuture<T> should be parameterized FairBlockingQueue.java /tomcat-jdbc-pool_1_0_6/java/org/apache/tomcat/jdbc/pool Java Problem line 177 Hashtable is a raw type. References to generic type Hashtable<K,V> should be parameterized DataSourceFactory.java /tomcat-jdbc-pool_1_0_6/java/org/apache/tomcat/jdbc/pool Java Problem line 177 Iterator is a raw type. References to generic type Iterator<E> should be parameterized DataSourceProxy.java /tomcat-jdbc-pool_1_0_6/java/org/apache/tomcat/jdbc/pool Java Problem line 441 Iterator is a raw type. References to generic type Iterator<E> should be parameterized FairBlockingQueue.java /tomcat-jdbc-pool_1_0_6/java/org/apache/tomcat/jdbc/pool Java Problem line 293 Javadoc: Duplicate tag for return type PooledConnection.java /tomcat-jdbc-pool_1_0_6/java/org/apache/tomcat/jdbc/pool Java Problem line 295 Javadoc: UnsupportedOperation cannot be resolved to a type FairBlockingQueue.java /tomcat-jdbc-pool_1_0_6/java/org/apache/tomcat/jdbc/pool Java Problem line 254 Javadoc: UnsupportedOperation cannot be resolved to a type FairBlockingQueue.java /tomcat-jdbc-pool_1_0_6/java/org/apache/tomcat/jdbc/pool Java Problem line 262 Javadoc: UnsupportedOperation cannot be resolved to a type FairBlockingQueue.java /tomcat-jdbc-pool_1_0_6/java/org/apache/tomcat/jdbc/pool Java Problem line 303 Javadoc: UnsupportedOperation cannot be resolved to a type FairBlockingQueue.java /tomcat-jdbc-pool_1_0_6/java/org/apache/tomcat/jdbc/pool Java Problem line 312 Javadoc: UnsupportedOperation cannot be resolved to a type FairBlockingQueue.java /tomcat-jdbc-pool_1_0_6/java/org/apache/tomcat/jdbc/pool Java Problem line 327 Javadoc: UnsupportedOperation cannot be resolved to a type FairBlockingQueue.java /tomcat-jdbc-pool_1_0_6/java/org/apache/tomcat/jdbc/pool Java Problem line 335 Javadoc: UnsupportedOperation cannot be resolved to a type FairBlockingQueue.java /tomcat-jdbc-pool_1_0_6/java/org/apache/tomcat/jdbc/pool Java Problem line 343 Javadoc: UnsupportedOperation cannot be resolved to a type FairBlockingQueue.java /tomcat-jdbc-pool_1_0_6/java/org/apache/tomcat/jdbc/pool Java Problem line 351 Javadoc: UnsupportedOperation cannot be resolved to a type FairBlockingQueue.java /tomcat-jdbc-pool_1_0_6/java/org/apache/tomcat/jdbc/pool Java Problem line 359 Javadoc: UnsupportedOperation cannot be resolved to a type FairBlockingQueue.java /tomcat-jdbc-pool_1_0_6/java/org/apache/tomcat/jdbc/pool Java Problem line 367 Javadoc: UnsupportedOperation cannot be resolved to a type FairBlockingQueue.java /tomcat-jdbc-pool_1_0_6/java/org/apache/tomcat/jdbc/pool Java Problem line 375 Null comparison always yields false: The variable con cannot be null at this location ConnectionPool.java /tomcat-jdbc-pool_1_0_6/java/org/apache/tomcat/jdbc/pool Java Problem line 823 Null comparison always yields false: The variable con cannot be null at this location ConnectionPool.java /tomcat-jdbc-pool_1_0_6/java/org/apache/tomcat/jdbc/pool Java Problem line 861 The declared exception IOException is not actually thrown by the method getProperties(String) from type DataSourceFactory DataSourceFactory.java /tomcat-jdbc-pool_1_0_6/java/org/apache/tomcat/jdbc/pool Java Problem line 460 The declared exception SQLException is not actually thrown by the constructor ProxyConnection(ConnectionPool, PooledConnection, boolean) ProxyConnection.java /tomcat-jdbc-pool_1_0_6/java/org/apache/tomcat/jdbc/pool Java Problem line 56 The declared exception SQLException is not actually thrown by the method getLogWriter() from type DataSourceProxy DataSourceProxy.java /tomcat-jdbc-pool_1_0_6/java/org/apache/tomcat/jdbc/pool Java Problem line 466 The declared exception SQLException is not actually thrown by the method getPoolSize() from type DataSourceProxy DataSourceProxy.java /tomcat-jdbc-pool_1_0_6/java/org/apache/tomcat/jdbc/pool Java Problem line 169 The declared exception SQLException is not actually thrown by the method isWrapperFor(Class<?>) from type DataSourceProxy DataSourceProxy.java /tomcat-jdbc-pool_1_0_6/java/org/apache/tomcat/jdbc/pool Java Problem line 64 The declared exception SQLException is not actually thrown by the method isWrapperFor(Class<?>) from type ProxyConnection ProxyConnection.java /tomcat-jdbc-pool_1_0_6/java/org/apache/tomcat/jdbc/pool Java Problem line 67 The declared exception SQLException is not actually thrown by the method setLogWriter(PrintWriter) from type DataSourceProxy DataSourceProxy.java /tomcat-jdbc-pool_1_0_6/java/org/apache/tomcat/jdbc/pool Java Problem line 475 The declared exception SQLException is not actually thrown by the method unwrap(Class<T>) from type DataSourceProxy DataSourceProxy.java /tomcat-jdbc-pool_1_0_6/java/org/apache/tomcat/jdbc/pool Java Problem line 70 The expression of type boolean is boxed into Boolean ProxyConnection.java /tomcat-jdbc-pool_1_0_6/java/org/apache/tomcat/jdbc/pool Java Problem line 82 The field PooledConnection.instanceCount is never read locally PooledConnection.java /tomcat-jdbc-pool_1_0_6/java/org/apache/tomcat/jdbc/pool Java Problem line 100 The import java.io.ByteArrayInputStream is never used DataSourceFactory.java /tomcat-jdbc-pool_1_0_6/java/org/apache/tomcat/jdbc/pool Java Problem line 20 The import java.lang.management.ManagementFactory is never used ConnectionPool.java /tomcat-jdbc-pool_1_0_6/java/org/apache/tomcat/jdbc/pool Java Problem line 19 The import java.lang.ref.WeakReference is never used PooledConnection.java /tomcat-jdbc-pool_1_0_6/java/org/apache/tomcat/jdbc/pool Java Problem line 20 The import java.lang.reflect.InvocationHandler is never used DataSourceFactory.java /tomcat-jdbc-pool_1_0_6/java/org/apache/tomcat/jdbc/pool Java Problem line 22 The import java.lang.reflect.InvocationTargetException is never used DataSourceFactory.java /tomcat-jdbc-pool_1_0_6/java/org/apache/tomcat/jdbc/pool Java Problem line 23 The import java.lang.reflect.Method is never used DataSourceFactory.java /tomcat-jdbc-pool_1_0_6/java/org/apache/tomcat/jdbc/pool Java Problem line 24 The import java.lang.reflect.Proxy is never used DataSourceFactory.java /tomcat-jdbc-pool_1_0_6/java/org/apache/tomcat/jdbc/pool Java Problem line 25 The import java.sql.SQLException is never used DataSource.java /tomcat-jdbc-pool_1_0_6/java/org/apache/tomcat/jdbc/pool Java Problem line 20 The import java.util.concurrent.LinkedBlockingQueue is never used DataSourceProxy.java /tomcat-jdbc-pool_1_0_6/java/org/apache/tomcat/jdbc/pool Java Problem line 25 The import java.util.concurrent.ThreadPoolExecutor is never used DataSourceProxy.java /tomcat-jdbc-pool_1_0_6/java/org/apache/tomcat/jdbc/pool Java Problem line 26 The import java.util.concurrent.TimeUnit is never used DataSourceProxy.java /tomcat-jdbc-pool_1_0_6/java/org/apache/tomcat/jdbc/pool Java Problem line 27 The import java.util.HashMap is never used DataSourceFactory.java /tomcat-jdbc-pool_1_0_6/java/org/apache/tomcat/jdbc/pool Java Problem line 27 The import java.util.Properties is never used DataSource.java /tomcat-jdbc-pool_1_0_6/java/org/apache/tomcat/jdbc/pool Java Problem line 22 The import javax.management.MBeanServer is never used ConnectionPool.java /tomcat-jdbc-pool_1_0_6/java/org/apache/tomcat/jdbc/pool Java Problem line 39 The import javax.management.ObjectName is never used ConnectionPool.java /tomcat-jdbc-pool_1_0_6/java/org/apache/tomcat/jdbc/pool Java Problem line 40 The import org.apache.tomcat.jdbc.pool.PoolProperties.InterceptorDefinition is never used DataSource.java /tomcat-jdbc-pool_1_0_6/java/org/apache/tomcat/jdbc/pool Java Problem line 30 The local variable exec is never read PooledConnection.java /tomcat-jdbc-pool_1_0_6/java/org/apache/tomcat/jdbc/pool Java Problem line 326 The method equals(Object) of type PoolProperties.InterceptorProperty should be tagged with @Override since it actually overrides a superclass method PoolProperties.java /tomcat-jdbc-pool_1_0_6/java/org/apache/tomcat/jdbc/pool Java Problem line 791 The method finalize() of type DataSourceProxy should be tagged with @Override since it actually overrides a superclass method DataSourceProxy.java /tomcat-jdbc-pool_1_0_6/java/org/apache/tomcat/jdbc/pool Java Problem line 158 The method hashCode() of type PoolProperties.InterceptorProperty should be tagged with @Override since it actually overrides a superclass method PoolProperties.java /tomcat-jdbc-pool_1_0_6/java/org/apache/tomcat/jdbc/pool Java Problem line 788 The method invoke(Object, Method, Object[]) of type ProxyConnection should be tagged with @Override since it actually overrides a superclass method ProxyConnection.java /tomcat-jdbc-pool_1_0_6/java/org/apache/tomcat/jdbc/pool Java Problem line 80 The method reset(ConnectionPool, PooledConnection) of type ProxyConnection should be tagged with @Override since it actually overrides a superclass method ProxyConnection.java /tomcat-jdbc-pool_1_0_6/java/org/apache/tomcat/jdbc/pool Java Problem line 62 The method run() of type ConnectionPool.PoolCleaner should be tagged with @Override since it actually overrides a superclass method ConnectionPool.java /tomcat-jdbc-pool_1_0_6/java/org/apache/tomcat/jdbc/pool Java Problem line 1083 The method toString() of type DataSourceProxy should be tagged with @Override since it actually overrides a superclass method DataSourceProxy.java /tomcat-jdbc-pool_1_0_6/java/org/apache/tomcat/jdbc/pool Java Problem line 175 The method toString() of type PoolProperties should be tagged with @Override since it actually overrides a superclass method PoolProperties.java /tomcat-jdbc-pool_1_0_6/java/org/apache/tomcat/jdbc/pool Java Problem line 653 The method toString() of type ProxyConnection should be tagged with @Override since it actually overrides a superclass method ProxyConnection.java /tomcat-jdbc-pool_1_0_6/java/org/apache/tomcat/jdbc/pool Java Problem line 120 Type safety: The constructor FairBlockingQueue.ItemFuture(FairBlockingQueue.ExchangeCountDownLatch) belongs to the raw type FairBlockingQueue.ItemFuture. References to generic type FairBlockingQueue<E>.ItemFuture<T> should be parameterized FairBlockingQueue.java /tomcat-jdbc-pool_1_0_6/java/org/apache/tomcat/jdbc/pool Java Problem line 173 Type safety: The constructor FairBlockingQueue.ItemFuture(Object) belongs to the raw type FairBlockingQueue.ItemFuture. References to generic type FairBlockingQueue<E>.ItemFuture<T> should be parameterized FairBlockingQueue.java /tomcat-jdbc-pool_1_0_6/java/org/apache/tomcat/jdbc/pool Java Problem line 177 Type safety: The expression of type FairBlockingQueue.ItemFuture needs unchecked conversion to conform to Future<E> FairBlockingQueue.java /tomcat-jdbc-pool_1_0_6/java/org/apache/tomcat/jdbc/pool Java Problem line 173 Type safety: The expression of type FairBlockingQueue.ItemFuture needs unchecked conversion to conform to Future<E> FairBlockingQueue.java /tomcat-jdbc-pool_1_0_6/java/org/apache/tomcat/jdbc/pool Java Problem line 177 Type safety: The method getConstructor(Class...) belongs to the raw type Class. References to generic type Class<T> should be parameterized ConnectionPool.java /tomcat-jdbc-pool_1_0_6/java/org/apache/tomcat/jdbc/pool Java Problem line 303 Type safety: Unchecked cast from Class to Class<? extends JdbcInterceptor> PoolProperties.java /tomcat-jdbc-pool_1_0_6/java/org/apache/tomcat/jdbc/pool Java Problem line 770 Type safety: Unchecked cast from Object to E FairBlockingQueue.java /tomcat-jdbc-pool_1_0_6/java/org/apache/tomcat/jdbc/pool Java Problem line 295 Type safety: Unchecked cast from Object[] to E[] FairBlockingQueue.java /tomcat-jdbc-pool_1_0_6/java/org/apache/tomcat/jdbc/pool Java Problem line 464 Unnecessary cast from Class to Class<? extends JdbcInterceptor> PoolProperties.java /tomcat-jdbc-pool_1_0_6/java/org/apache/tomcat/jdbc/pool Java Problem line 770 Unnecessary cast from int to float ConnectionPool.java /tomcat-jdbc-pool_1_0_6/java/org/apache/tomcat/jdbc/pool Java Problem line 788 Unnecessary cast from int to float ConnectionPool.java /tomcat-jdbc-pool_1_0_6/java/org/apache/tomcat/jdbc/pool Java Problem line 789 Unnecessary cast from int to float ConnectionPool.java /tomcat-jdbc-pool_1_0_6/java/org/apache/tomcat/jdbc/pool Java Problem line 790 Unnecessary cast from PooledConnection to PooledConnection ConnectionPool.java /tomcat-jdbc-pool_1_0_6/java/org/apache/tomcat/jdbc/pool Java Problem line 165 Call to unsupported method org.apache.tomcat.jdbc.pool.FairBlockingQueue.drainTo(Collection, int) FairBlockingQueue.java /tomcat-jdbc-pool_1_0_6/java/org/apache/tomcat/jdbc/pool FindBugs Problem (Normal Priority) line 265 org.apache.tomcat.jdbc.pool.ConnectionPool.abandon(PooledConnection) ignores exceptional return value of java.util.concurrent.BlockingQueue.offer(Object) ConnectionPool.java /tomcat-jdbc-pool_1_0_6/java/org/apache/tomcat/jdbc/pool FindBugs Problem (Normal Priority) line 484 org.apache.tomcat.jdbc.pool.ConnectionPool.finalize() is empty and should be deleted ConnectionPool.java /tomcat-jdbc-pool_1_0_6/java/org/apache/tomcat/jdbc/pool FindBugs Problem (Normal Priority) line 321 org.apache.tomcat.jdbc.pool.DataSource.unregisterJmx() might ignore javax.management.InstanceNotFoundException DataSource.java /tomcat-jdbc-pool_1_0_6/java/org/apache/tomcat/jdbc/pool FindBugs Problem (Normal Priority) line 139 org.apache.tomcat.jdbc.pool.DataSourceProxy.finalize() is empty and should be deleted DataSourceProxy.java /tomcat-jdbc-pool_1_0_6/java/org/apache/tomcat/jdbc/pool FindBugs Problem (Normal Priority) line 167 org.apache.tomcat.jdbc.pool.FairBlockingQueue.poll(long, TimeUnit) does not release lock on all exception paths FairBlockingQueue.java /tomcat-jdbc-pool_1_0_6/java/org/apache/tomcat/jdbc/pool FindBugs Problem (Normal Priority) line 121 org.apache.tomcat.jdbc.pool.FairBlockingQueue.poll(long, TimeUnit) does not release lock on all exception paths FairBlockingQueue.java /tomcat-jdbc-pool_1_0_6/java/org/apache/tomcat/jdbc/pool FindBugs Problem (Normal Priority) line 135 org.apache.tomcat.jdbc.pool.FairBlockingQueue.pollAsync() does not release lock on all exception paths FairBlockingQueue.java /tomcat-jdbc-pool_1_0_6/java/org/apache/tomcat/jdbc/pool FindBugs Problem (Normal Priority) line 163 Should org.apache.tomcat.jdbc.pool.ConnectionPool$PoolCleaner be a _static_ inner class? ConnectionPool.java /tomcat-jdbc-pool_1_0_6/java/org/apache/tomcat/jdbc/pool FindBugs Problem (Normal Priority) line 1066 The class name org.apache.tomcat.jdbc.pool.DataSource shadows the simple name of implemented interface javax.sql.DataSource DataSource.java /tomcat-jdbc-pool_1_0_6/java/org/apache/tomcat/jdbc/pool FindBugs Problem (Normal Priority) line 1 Class is a raw type. References to generic type Class<T> should be parameterized SlowQueryReportJmx.java /tomcat-jdbc-pool_1_0_6/java/org/apache/tomcat/jdbc/pool/interceptor Java Problem line 268 Redundant assignment: The variable result can only be null at this location ConnectionState.java /tomcat-jdbc-pool_1_0_6/java/org/apache/tomcat/jdbc/pool/interceptor Java Problem line 124 The expression of type boolean is boxed into Boolean AbstractQueryReport.java /tomcat-jdbc-pool_1_0_6/java/org/apache/tomcat/jdbc/pool/interceptor Java Problem line 223 The expression of type int is boxed into Integer ConnectionState.java /tomcat-jdbc-pool_1_0_6/java/org/apache/tomcat/jdbc/pool/interceptor Java Problem line 94 The expression of type int is boxed into Integer SlowQueryReport.java /tomcat-jdbc-pool_1_0_6/java/org/apache/tomcat/jdbc/pool/interceptor Java Problem line 320 The expression of type int is boxed into Integer SlowQueryReport.java /tomcat-jdbc-pool_1_0_6/java/org/apache/tomcat/jdbc/pool/interceptor Java Problem line 327 The expression of type long is boxed into Long SlowQueryReport.java /tomcat-jdbc-pool_1_0_6/java/org/apache/tomcat/jdbc/pool/interceptor Java Problem line 321 The expression of type long is boxed into Long SlowQueryReport.java /tomcat-jdbc-pool_1_0_6/java/org/apache/tomcat/jdbc/pool/interceptor Java Problem line 322 The expression of type long is boxed into Long SlowQueryReport.java /tomcat-jdbc-pool_1_0_6/java/org/apache/tomcat/jdbc/pool/interceptor Java Problem line 323 The expression of type long is boxed into Long SlowQueryReport.java /tomcat-jdbc-pool_1_0_6/java/org/apache/tomcat/jdbc/pool/interceptor Java Problem line 324 The expression of type long is boxed into Long SlowQueryReport.java /tomcat-jdbc-pool_1_0_6/java/org/apache/tomcat/jdbc/pool/interceptor Java Problem line 325 The expression of type long is boxed into Long SlowQueryReport.java /tomcat-jdbc-pool_1_0_6/java/org/apache/tomcat/jdbc/pool/interceptor Java Problem line 326 The expression of type long is boxed into Long SlowQueryReport.java /tomcat-jdbc-pool_1_0_6/java/org/apache/tomcat/jdbc/pool/interceptor Java Problem line 328 The expression of type long is boxed into Long SlowQueryReport.java /tomcat-jdbc-pool_1_0_6/java/org/apache/tomcat/jdbc/pool/interceptor Java Problem line 329 The field SlowQueryReport.log is hiding a field from type AbstractQueryReport SlowQueryReport.java /tomcat-jdbc-pool_1_0_6/java/org/apache/tomcat/jdbc/pool/interceptor Java Problem line 42 The field SlowQueryReportJmx.log is hiding a field from type SlowQueryReport SlowQueryReportJmx.java /tomcat-jdbc-pool_1_0_6/java/org/apache/tomcat/jdbc/pool/interceptor Java Problem line 63 The field StatementFinalizer.statements is hiding a field from type AbstractCreateStatementInterceptor StatementFinalizer.java /tomcat-jdbc-pool_1_0_6/java/org/apache/tomcat/jdbc/pool/interceptor Java Problem line 37 The method equals(Object) of type SlowQueryReport.QueryStats should be tagged with @Override since it actually overrides a superclass method SlowQueryReport.java /tomcat-jdbc-pool_1_0_6/java/org/apache/tomcat/jdbc/pool/interceptor Java Problem line 397 The method hashCode() of type SlowQueryReport.QueryStats should be tagged with @Override since it actually overrides a superclass method SlowQueryReport.java /tomcat-jdbc-pool_1_0_6/java/org/apache/tomcat/jdbc/pool/interceptor Java Problem line 393 The method reset(ConnectionPool, PooledConnection) of type ConnectionState should be tagged with @Override since it actually overrides a superclass method ConnectionState.java /tomcat-jdbc-pool_1_0_6/java/org/apache/tomcat/jdbc/pool/interceptor Java Problem line 55 The method toGMTString() from the type Date is deprecated SlowQueryReport.java /tomcat-jdbc-pool_1_0_6/java/org/apache/tomcat/jdbc/pool/interceptor Java Problem line 298 The method toGMTString() from the type Date is deprecated SlowQueryReport.java /tomcat-jdbc-pool_1_0_6/java/org/apache/tomcat/jdbc/pool/interceptor Java Problem line 302 The method toString() of type SlowQueryReport.QueryStats should be tagged with @Override since it actually overrides a superclass method SlowQueryReport.java /tomcat-jdbc-pool_1_0_6/java/org/apache/tomcat/jdbc/pool/interceptor Java Problem line 290 The import java.util.Iterator is never used ConnectionPool.java /tomcat-jdbc-pool_1_0_6/java/org/apache/tomcat/jdbc/pool/jmx Java Problem line 20 The import java.util.Properties is never used ConnectionPoolMBean.java /tomcat-jdbc-pool_1_0_6/java/org/apache/tomcat/jdbc/pool/jmx Java Problem line 18 These have not been investigated in any detail, but at leas two of them appear to be bugs: There is an apparent infinite recursive loop ConnectionPool.java /tomcat-jdbc-pool_1_0_6/java/org/apache/tomcat/jdbc/pool/jmx FindBugs Problem (High Priority) line 242 There is an apparent infinite recursive loop DataSourceProxy.java /tomcat-jdbc-pool_1_0_6/java/org/apache/tomcat/jdbc/pool FindBugs Problem (High Priority) line 720 > If everyone thinks it looks ok, then I will put up for a vote in a few days > > Filip > > --------------------------------------------------------------------- > To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org > For additional commands, e-mail: dev-h...@tomcat.apache.org > > --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org