All Downloads are FREE. Search and download functionalities are using the official Maven repository.

lucee.runtime.lock.LockTimeoutException Maven / Gradle / Ivy

There is a newer version: 6.2.0.164-RC
Show newest version
/**
 *
 * Copyright (c) 2014, the Railo Company Ltd. All rights reserved.
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either 
 * version 2.1 of the License, or (at your option) any later version.
 * 
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Lesser General Public License for more details.
 * 
 * You should have received a copy of the GNU Lesser General Public 
 * License along with this library.  If not, see .
 * 
 **/
package lucee.runtime.lock;

/**
 * Lock Timeout
 */
public final class LockTimeoutException extends Exception {

	private static final long serialVersionUID = -2772267544602614500L;

	/**
	 * @param type type of the log
	 * @param name name of the Lock
	 * @param timeout lock timeout
	 */
	public LockTimeoutException(final int type, final String name, final int timeout) {
		// A timeout occurred while attempting to lock lockname
		super("a timeout occurred on a " + toString(type) + " lock with name [" + name + "] after " + getTime(timeout));
	}

	private static String getTime(final int timeout) {
		if (timeout / 1000 * 1000 == timeout) {
			final int s = timeout / 1000;
			return s + (s > 1 ? " seconds" : " second");
		}
		return timeout + (timeout > 1 ? " milliseconds" : " millisecond");
	}

	private static String toString(final int type) {
		if (LockManager.TYPE_EXCLUSIVE == type) return "exclusive";
		return "read-only";
	}

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy