/**
* Return the parent class loader for this component. If not set, return
- * {@link Container#getParent()#getParentClassLoader()}. If no parent has
+ * {@link #getParent()} {@link #getParentClassLoader()}. If no parent has
* been set, return the system class loader.
*/
public ClassLoader getParentClassLoader();
/**
* Return the regular expression that defines the files and directories in
- * the host's {@link #appBase} that will be ignored by the automatic
- * deployment process.
+ * the host's appBase that will be ignored by the automatic deployment
+ * process.
*/
public String getDeployIgnore();
/**
* Return the compiled regular expression that defines the files and
- * directories in the host's {@link #appBase} that will be ignored by the
- * automatic deployment process.
+ * directories in the host's appBase that will be ignored by the automatic
+ * deployment process.
*/
public Pattern getDeployIgnorePattern();
/**
* Set the regular expression that defines the files and directories in
- * the host's {@link #appBase} that will be ignored by the automatic
- * deployment process.
+ * the host's appBase that will be ignored by the automatic deployment
+ * process.
*/
public void setDeployIgnore(String deployIgnore);
/**
* Return the parent class loader for this component. If not set, return
- * {@link Server#getCatalina()#getParentClassLoader(). If no catalina has
- * been set, return the system class loader.
+ * {@link #getCatalina()} {@link Catalina#getParentClassLoader()}. If
+ * catalina has not been set, return the system class loader.
*/
public ClassLoader getParentClassLoader();
/**
* Return the parent class loader for this component. If not set, return
- * {@link Service#getServer()#getParentClassLoader(). If no server has
- * been set, return the system class loader.
+ * {@link #getServer()} {@link Server#getParentClassLoader()}. If no server
+ * has been set, return the system class loader.
*/
public ClassLoader getParentClassLoader();
* The Java class name of the secure random number generator class to be
* used when generating SSO session identifiers. The random number generator
* class must be self-seeding and have a zero-argument constructor. If not
- * specified, an instance of {@link java.secure.SecureRandom} will be
+ * specified, an instance of {@link java.security.SecureRandom} will be
* generated.
*/
protected String secureRandomClass = null;
/**
* The name of the algorithm to use to create instances of
- * {@link java.secure.SecureRandom} which are used to generate SSO session
+ * {@link java.security.SecureRandom} which are used to generate SSO session
* IDs. If no algorithm is specified, SHA1PRNG is used. To use the platform
* default (which may be SHA1PRNG), specify the empty string. If an invalid
* algorithm and/or provider is specified the SecureRandom instances will be
/**
* The name of the provider to use to create instances of
- * {@link java.secure.SecureRandom} which are used to generate session SSO
+ * {@link java.security.SecureRandom} which are used to generate session SSO
* IDs. If no algorithm is specified the of SHA1PRNG default is used. If an
* invalid algorithm and/or provider is specified the SecureRandom instances
* will be created using the defaults. If that fails, the SecureRandom
* Set the regular expression used to test for denied requests for this
* Filter, if any.
*
- * @param allow The new deny expression
+ * @param deny The new deny expression
*/
public void setDeny(String deny) {
if (deny == null || deny.length() == 0) {
* The Java class name of the secure random number generator class to be
* used when generating session identifiers. The random number generator
* class must be self-seeding and have a zero-argument constructor. If not
- * specified, an instance of {@link java.secure.SecureRandom} will be
+ * specified, an instance of {@link java.security.SecureRandom} will be
* generated.
*/
protected String secureRandomClass = null;
/**
* The name of the algorithm to use to create instances of
- * {@link java.secure.SecureRandom} which are used to generate session IDs.
+ * {@link java.security.SecureRandom} which are used to generate session IDs.
* If no algorithm is specified, SHA1PRNG is used. To use the platform
* default (which may be SHA1PRNG), specify the empty string. If an invalid
* algorithm and/or provider is specified the SecureRandom instances will be
/**
* The name of the provider to use to create instances of
- * {@link java.secure.SecureRandom} which are used to generate session IDs.
+ * {@link java.security.SecureRandom} which are used to generate session IDs.
* If no algorithm is specified the of SHA1PRNG default is used. If an
* invalid algorithm and/or provider is specified the SecureRandom instances
* will be created using the defaults. If that fails, the SecureRandom
* Set the regular expression used to test for denied requests for this
* Valve, if any.
*
- * @param allow The new deny expression
+ * @param deny The new deny expression
*/
public void setDeny(String deny) {
if (deny == null || deny.length() == 0) {
/**
* Attributes provide a way for configuration to be passed to sub-components
- * without the {@link ProtocolHandler} being aware of the properties
- * available on those sub-components. One example of such a sub-component is
- * the {@link org.apache.tomcat.util.net.ServerSocketFactory}.
+ * without the {@link org.apache.coyote.ProtocolHandler} being aware of the
+ * properties available on those sub-components. One example of such a
+ * sub-component is the
+ * {@link org.apache.tomcat.util.net.ServerSocketFactory}.
*/
protected HashMap<String, Object> attributes =
new HashMap<String, Object>();
/**
* Generic property setter called when a property for which a specific
- * setter already exists within the {@link ProtocolHandler} needs to be
- * made available to sub-components. The specific setter will call this
- * method to populate the attributes.
+ * setter already exists within the
+ * {@link org.apache.coyote.ProtocolHandler} needs to be made available to
+ * sub-components. The specific setter will call this method to populate the
+ * attributes.
*/
public void setAttribute(String name, Object value) {
if (getLog().isTraceEnabled()) {
public class CounterLatch {
private class Sync extends AbstractQueuedSynchronizer {
+ private static final long serialVersionUID = 1L;
+
public Sync() {
}
+ @Override
protected int tryAcquireShared(int arg) {
return ((!released) && count.get() == signal) ? -1 : 1;
}
+ @Override
protected boolean tryReleaseShared(int arg) {
return true;
}
* If the operation is successful and {@code expect==waitValue && expect!=update} waiting threads will be released.
* @param expect - the expected counter value
* @param update - the new counter value
- * @return
+ * @return <code>true</code> if successful, <code>false</code> if the
+ * current value wasn't as expected
*/
public boolean compareAndSet(long expect, long update) {
boolean result = count.compareAndSet(expect, update);
/**
* releases all waiting threads. This operation is permanent, and no threads will block,
* even if the counter hits the {@code waitValue} until {@link #reset(long)} has been called.
- * @return
+ * @return <code>true</code> if this release of shared mode may permit a
+ * waiting acquire (shared or exclusive) to succeed; and
+ * <code>false</code> otherwise
*/
public boolean releaseAll() {
released = true;
/**
* Resets the latch and initializes the counter with the new value.
* @param value the new counter value
- * @see {@link #releaseAll()}
+ * @see #releaseAll()
*/
public void reset(long value) {
this.count.set(value);
* @param <V>
* the type of the returned value
* @param callable
- * @return
+ * @return the completed result
*/
public <V> V execute(final Callable<V> callable) {
final Future<V> futureTask = executorService.submit(callable);
*
* @param <V>
* @param callable
- * @return
+ * @return the completed result
*/
public static <V> V executeInOwnThread(
final Callable<V> callable) {
import java.util.concurrent.Executor;
public interface ResizableExecutor extends Executor {
+
/**
- * {@link java.util.concurrent.ThreadPoolExecutor#getPoolSize()}
- * @return {@link java.util.concurrent.ThreadPoolExecutor#getPoolSize()}
+ * Returns the current number of threads in the pool.
+ *
+ * @return the number of threads
*/
public int getPoolSize();
public int getMaxThreads();
/**
- * {@link java.util.concurrent.ThreadPoolExecutor#getActiveCount()}
- * @return {@link java.util.concurrent.ThreadPoolExecutor#getActiveCount()}
+ * Returns the approximate number of threads that are actively executing
+ * tasks.
+ *
+ * @return the number of threads
*/
public int getActiveCount();
</update>
</changelog>
</subsection>
+ <subsection name="Web applications">
+ <changelog>
+ <fix>
+ Correct a handful of Javadoc warnings. (markt)
+ </fix>
+ </changelog>
+ </subsection>
<subsection name="Other">
<changelog>
<add>