View Javadoc
1   /*
2    * Licensed to the Apache Software Foundation (ASF) under one or more
3    * contributor license agreements. See the NOTICE file distributed with
4    * this work for additional information regarding copyright ownership.
5    * The ASF licenses this file to You under the Apache license, Version 2.0
6    * (the "License"); you may not use this file except in compliance with
7    * the License. You may obtain a copy of the License at
8    *
9    *      http://www.apache.org/licenses/LICENSE-2.0
10   *
11   * Unless required by applicable law or agreed to in writing, software
12   * distributed under the License is distributed on an "AS IS" BASIS,
13   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14   * See the license for the specific language governing permissions and
15   * limitations under the license.
16   */
17  package org.apache.log4j.config;
18  
19  /**
20   * Thrown when an error is encountered whilst attempting to set a property
21   * using the {@link PropertySetter} utility class.
22   *
23   * @since 1.1
24   */
25  public class PropertySetterException extends Exception {
26      private static final long serialVersionUID = -1352613734254235861L;
27  
28      /**
29       * The root cause.
30       */
31      protected Throwable rootCause;
32  
33      /**
34       * Construct the exception with the given message.
35       *
36       * @param msg The message
37       */
38      public PropertySetterException(final String msg) {
39          super(msg);
40      }
41  
42      /**
43       * Construct the exception with the given root cause.
44       *
45       * @param rootCause The root cause
46       */
47      public PropertySetterException(final Throwable rootCause) {
48          super();
49          this.rootCause = rootCause;
50      }
51  
52      /**
53       * Returns descriptive text on the cause of this exception.
54       *
55       * @return the descriptive text.
56       */
57      @Override
58      public String getMessage() {
59          String msg = super.getMessage();
60          if (msg == null && rootCause != null) {
61              msg = rootCause.getMessage();
62          }
63          return msg;
64      }
65  }