Browse Source
This commit removes Spring's custom NestedIOException and replaces its usage with the standard IOException which has supported a root cause since Java 6. Closes gh-28198pull/28217/head
Sam Brannen
3 years ago
6 changed files with 11 additions and 96 deletions
@ -1,80 +0,0 @@
@@ -1,80 +0,0 @@
|
||||
/* |
||||
* Copyright 2002-2022 the original author or authors. |
||||
* |
||||
* Licensed under the Apache License, Version 2.0 (the "License"); |
||||
* you may not use this file except in compliance with the License. |
||||
* You may obtain a copy of the License at |
||||
* |
||||
* https://www.apache.org/licenses/LICENSE-2.0
|
||||
* |
||||
* Unless required by applicable law or agreed to in writing, software |
||||
* distributed under the License is distributed on an "AS IS" BASIS, |
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
* See the License for the specific language governing permissions and |
||||
* limitations under the License. |
||||
*/ |
||||
|
||||
package org.springframework.core; |
||||
|
||||
import java.io.IOException; |
||||
|
||||
import org.springframework.lang.Nullable; |
||||
|
||||
/** |
||||
* Subclass of {@link IOException} that properly handles a root cause, |
||||
* exposing the root cause just like NestedChecked/RuntimeException does. |
||||
* |
||||
* <p>Proper root cause handling was added to the standard {@code IOException} in |
||||
* Java 6, which is why Spring originally introduced {@code NestedIOException} |
||||
* for compatibility with versions prior to Java 6. |
||||
* |
||||
* <p>The similarity between this class and the NestedChecked/RuntimeException |
||||
* class is unavoidable, as this class needs to derive from IOException. |
||||
* |
||||
* @author Juergen Hoeller |
||||
* @since 2.0 |
||||
* @see #getMessage |
||||
* @see #printStackTrace |
||||
* @see org.springframework.core.NestedCheckedException |
||||
* @see org.springframework.core.NestedRuntimeException |
||||
*/ |
||||
@SuppressWarnings("serial") |
||||
public class NestedIOException extends IOException { |
||||
|
||||
static { |
||||
// Eagerly load the NestedExceptionUtils class to avoid classloader deadlock
|
||||
// issues on OSGi when calling getMessage(). Reported by Don Brown; SPR-5607.
|
||||
NestedExceptionUtils.class.getName(); |
||||
} |
||||
|
||||
|
||||
/** |
||||
* Construct a {@code NestedIOException} with the specified detail message. |
||||
* @param msg the detail message |
||||
*/ |
||||
public NestedIOException(String msg) { |
||||
super(msg); |
||||
} |
||||
|
||||
/** |
||||
* Construct a {@code NestedIOException} with the specified detail message |
||||
* and nested exception. |
||||
* @param msg the detail message |
||||
* @param cause the nested exception |
||||
*/ |
||||
public NestedIOException(@Nullable String msg, @Nullable Throwable cause) { |
||||
super(msg, cause); |
||||
} |
||||
|
||||
|
||||
/** |
||||
* Return the detail message, including the message from the nested exception |
||||
* if there is one. |
||||
*/ |
||||
@Override |
||||
@Nullable |
||||
public String getMessage() { |
||||
return NestedExceptionUtils.buildMessage(super.getMessage(), getCause()); |
||||
} |
||||
|
||||
} |
Loading…
Reference in new issue