001    package railo.runtime.exp;
002    
003    import railo.runtime.config.Config;
004    
005    /**
006     * 
007     */
008    public final class LockException extends PageExceptionImpl {
009        
010        /**
011         * Field <code>OPERATION_TIMEOUT</code>
012         */
013        public static final String OPERATION_TIMEOUT="Timeout";
014        /**
015         * Field <code>OPERATION_MUTEX</code>
016         */
017        public static final String OPERATION_MUTEX="Mutex";
018        /**
019         * Field <code>OPERATION_CREATE</code>
020         */
021        public static final String OPERATION_CREATE="Create";
022        /**
023         * Field <code>OPERATION_UNKNOW</code>
024         */
025        public static final String OPERATION_UNKNOW="Unknown";
026        
027        private String lockName="";
028        private String lockOperation="Unknown";
029        
030            /**
031             * Class Constuctor
032             * @param operation
033             * @param name
034             * @param message error message
035             */
036            public LockException(String operation,String name,String message) {
037                    super(message,"lock"); 
038                    this.lockName=name;
039                    this.lockOperation=operation;
040            }
041    
042            /**
043             * Class Constuctor
044             * @param operation
045             * @param name
046             * @param message error message
047             * @param detail detailed error message
048             */
049            public LockException(String operation,String name,String message, String detail) {
050                    super(message,"lock");
051                    this.lockName=name;
052                    this.lockOperation=operation;
053                    setDetail(detail);
054            }
055            
056            @Override
057            public CatchBlock getCatchBlock(Config config) {
058                    CatchBlock sct=super.getCatchBlock(config);
059                    sct.setEL("LockName",lockName);
060                    sct.setEL("LockOperation",lockOperation);
061                    return sct;
062            }
063    }