ingo@1127: /*
ingo@1127: * Copyright (c) 2010 by Intevation GmbH
ingo@1127: *
ingo@1127: * This program is free software under the LGPL (>=v2.1)
ingo@1127: * Read the file LGPL.txt coming with the software for details
ingo@1127: * or visit http://www.gnu.org/licenses/ if it does not exist.
ingo@1127: */
ingo@1127:
sascha@894: package de.intevation.gnv.geobackend.base.connectionpool.exception;
sascha@894:
sascha@894: import com.esri.sde.sdk.client.SeError;
sascha@894: import com.esri.sde.sdk.client.SeException;
sascha@894:
sascha@894: import de.intevation.gnv.geobackend.sde.datasources.exception.TechnicalException;
sascha@894:
sascha@894: import org.apache.log4j.Logger;
sascha@894:
sascha@894: /**
sascha@894: * The class lConnectionException
fulfills the following purposes:
sascha@894: *
sascha@894: * @author blume
sascha@894: * @author Tim Englich
sascha@894: */
sascha@894: public class ConnectionException extends TechnicalException {
sascha@894:
sascha@894: /**
sascha@894: * The UID of this Class.
sascha@894: */
sascha@894: private static final long serialVersionUID = 102459262123219617L;
sascha@894:
sascha@894: /**
sascha@894: * Default Logging instance
sascha@894: */
sascha@894: private static Logger sLogger = Logger.getLogger(ConnectionException.class);
sascha@894:
sascha@894: /**
sascha@894: * Constructs a new exception with null
as its detail message.
sascha@894: * The cause is not initialized, and may subsequently be initialized by a
sascha@894: * call to {@link #initCause}.
sascha@894: */
sascha@894: public ConnectionException() {
sascha@894: }
sascha@894:
sascha@894: /**
sascha@894: * Constructs a new exception with the specified detail message. The
sascha@894: * cause is not initialized, and may subsequently be initialized by
sascha@894: * a call to {@link #initCause}.
sascha@894: *
sascha@894: * @param message the detail message. The detail message is saved for
sascha@894: * later retrieval by the {@link #getMessage()} method.
sascha@894: */
sascha@894: public ConnectionException(String message) {
sascha@894: super(message);
sascha@894: }
sascha@894:
sascha@894: /**
sascha@894: * Constructor
sascha@894: * @param pCause the Throwable which cause this exception
sascha@894: */
sascha@894: public ConnectionException(Throwable pCause) {
sascha@894: super(pCause);
sascha@894: }
sascha@894:
sascha@894: /**
sascha@894: * Constructs a new exception with the specified detail message and
sascha@894: * cause.
Note that the detail message associated with
sascha@894: * cause
is not automatically incorporated in
sascha@894: * this exception's detail message.
sascha@894: *
sascha@894: * @param message the detail message (which is saved for later retrieval
sascha@894: * by the {@link #getMessage()} method).
sascha@894: * @param cause the cause (which is saved for later retrieval by the
sascha@894: * {@link #getCause()} method). (A null value is
sascha@894: * permitted, and indicates that the cause is nonexistent or
sascha@894: * unknown.)
sascha@894: * @since 1.4
sascha@894: */
sascha@894: public ConnectionException(String message, Throwable cause) {
sascha@894: super(message, cause);
sascha@894: }
sascha@894:
sascha@894: /**
sascha@894: * Displays the details of an SeException (if available).
sascha@894: *
sascha@894: */
sascha@894: public void printError() {
sascha@894: if (getCause() != null && getCause() instanceof SeException) {
sascha@894: SeException exception = (SeException) getCause();
sascha@894: SeError error = exception.getSeError();
sascha@894:
sascha@894: sLogger.debug("\n ArcSDE Error Number : " + error.getSdeError());
sascha@894: sLogger.debug(" Error Description : " + error.getErrDesc());
sascha@894:
sascha@894: int extError = error.getExtError();
sascha@894: if (extError != 0)
sascha@894: sLogger.debug(" Extended Error Number : " + extError);
sascha@894:
sascha@894: String desc = error.getSdeErrMsg();
sascha@894: if (desc != null && desc.length() != 0)
sascha@894: sLogger.debug(" Extended Error Description : " + desc);
sascha@894:
sascha@894: desc = error.getExtErrMsg();
sascha@894: if (desc != null && desc.length() != 0)
sascha@894: sLogger.debug(" Extended Error Description : " + desc);
sascha@894:
sascha@894: sLogger.debug(exception);
sascha@894:
sascha@894: }
sascha@894:
sascha@894: }
sascha@894: }