From 5fbf49a0fb2cf15a21400eb616ef3fcd41b58624 Mon Sep 17 00:00:00 2001 From: Isabel Drost-Fromm Date: Sun, 13 Sep 2015 20:11:34 +0200 Subject: [PATCH] Minus 16 calls to getMessage Adds *Exception(Throwable cause) constructors and calls them where appropriate thus getting rid of 16 instances of calling getMessage and eliminating the risk of loosing exception context. Fixes ElasticsearchTimeoutException along the way (used to discard the parameter args in the (String message, Object... args) constructor, passes it up to super now. Relates to #10021 --- .../ElasticsearchCorruptionException.java | 11 +---------- .../org/elasticsearch/ElasticsearchException.java | 3 +++ .../elasticsearch/ElasticsearchTimeoutException.java | 6 +++++- .../main/java/org/elasticsearch/ExceptionsHelper.java | 6 +++--- .../action/support/AdapterActionFuture.java | 2 +- .../common/inject/TypeConverterBindingProcessor.java | 4 ++-- .../org/elasticsearch/index/analysis/Analysis.java | 4 ++-- .../HyphenationCompoundWordTokenFilterFactory.java | 2 +- .../index/fielddata/plain/AbstractIndexFieldData.java | 2 +- .../plain/AbstractIndexOrdinalsFieldData.java | 2 +- .../fielddata/plain/ParentChildIndexFieldData.java | 2 +- .../plain/SortedSetDVOrdinalsIndexFieldData.java | 2 +- .../elasticsearch/search/lookup/LeafIndexLookup.java | 2 +- .../elasticsearch/transport/PlainTransportFuture.java | 2 +- .../ResponseHandlerFailureTransportException.java | 2 +- .../elasticsearch/transport/TransportException.java | 4 ++++ .../java/org/elasticsearch/tribe/TribeService.java | 2 +- 17 files changed, 30 insertions(+), 28 deletions(-) diff --git a/core/src/main/java/org/elasticsearch/ElasticsearchCorruptionException.java b/core/src/main/java/org/elasticsearch/ElasticsearchCorruptionException.java index 350bbc31121..d56f580ff9e 100644 --- a/core/src/main/java/org/elasticsearch/ElasticsearchCorruptionException.java +++ b/core/src/main/java/org/elasticsearch/ElasticsearchCorruptionException.java @@ -42,15 +42,6 @@ public class ElasticsearchCorruptionException extends IOException { * @param ex the exception cause */ public ElasticsearchCorruptionException(Throwable ex) { - this(ex.getMessage()); - if (ex != null) { - this.setStackTrace(ex.getStackTrace()); - } - Throwable[] suppressed = ex.getSuppressed(); - if (suppressed != null) { - for (Throwable supressedExc : suppressed) { - addSuppressed(supressedExc); - } - } + super(ex); } } \ No newline at end of file diff --git a/core/src/main/java/org/elasticsearch/ElasticsearchException.java b/core/src/main/java/org/elasticsearch/ElasticsearchException.java index 62eb374733e..65da4ed93e1 100644 --- a/core/src/main/java/org/elasticsearch/ElasticsearchException.java +++ b/core/src/main/java/org/elasticsearch/ElasticsearchException.java @@ -51,6 +51,9 @@ public class ElasticsearchException extends RuntimeException implements ToXConte private static final Map, ElasticsearchExceptionHandle> CLASS_TO_ELASTICSEARCH_EXCEPTION_HANDLE; private final Map> headers = new HashMap<>(); + public ElasticsearchException(Throwable cause) { + super(cause); + } /** * Construct a ElasticsearchException with the specified detail message. * diff --git a/core/src/main/java/org/elasticsearch/ElasticsearchTimeoutException.java b/core/src/main/java/org/elasticsearch/ElasticsearchTimeoutException.java index 3cc4e7a477a..2b53a3beaae 100644 --- a/core/src/main/java/org/elasticsearch/ElasticsearchTimeoutException.java +++ b/core/src/main/java/org/elasticsearch/ElasticsearchTimeoutException.java @@ -33,8 +33,12 @@ public class ElasticsearchTimeoutException extends ElasticsearchException { super(in); } + public ElasticsearchTimeoutException(Throwable cause) { + super(cause); + } + public ElasticsearchTimeoutException(String message, Object... args) { - super(message); + super(message, args); } public ElasticsearchTimeoutException(String message, Throwable cause, Object... args) { diff --git a/core/src/main/java/org/elasticsearch/ExceptionsHelper.java b/core/src/main/java/org/elasticsearch/ExceptionsHelper.java index df7be834ebe..555a172c0d8 100644 --- a/core/src/main/java/org/elasticsearch/ExceptionsHelper.java +++ b/core/src/main/java/org/elasticsearch/ExceptionsHelper.java @@ -47,14 +47,14 @@ public final class ExceptionsHelper { if (t instanceof RuntimeException) { return (RuntimeException) t; } - return new ElasticsearchException(t.getMessage(), t); + return new ElasticsearchException(t); } public static ElasticsearchException convertToElastic(Throwable t) { if (t instanceof ElasticsearchException) { return (ElasticsearchException) t; } - return new ElasticsearchException(t.getMessage(), t); + return new ElasticsearchException(t); } public static RestStatus status(Throwable t) { @@ -160,7 +160,7 @@ public final class ExceptionsHelper { main = useOrSuppress(main, ex); } if (main != null) { - throw new ElasticsearchException(main.getMessage(), main); + throw new ElasticsearchException(main); } } diff --git a/core/src/main/java/org/elasticsearch/action/support/AdapterActionFuture.java b/core/src/main/java/org/elasticsearch/action/support/AdapterActionFuture.java index be93571b2b8..1a14f344d5a 100644 --- a/core/src/main/java/org/elasticsearch/action/support/AdapterActionFuture.java +++ b/core/src/main/java/org/elasticsearch/action/support/AdapterActionFuture.java @@ -69,7 +69,7 @@ public abstract class AdapterActionFuture extends BaseFuture implements try { return get(timeout, unit); } catch (TimeoutException e) { - throw new ElasticsearchTimeoutException(e.getMessage()); + throw new ElasticsearchTimeoutException(e); } catch (InterruptedException e) { throw new IllegalStateException("Future got interrupted", e); } catch (ExecutionException e) { diff --git a/core/src/main/java/org/elasticsearch/common/inject/TypeConverterBindingProcessor.java b/core/src/main/java/org/elasticsearch/common/inject/TypeConverterBindingProcessor.java index 485fab738a9..e42082817c1 100644 --- a/core/src/main/java/org/elasticsearch/common/inject/TypeConverterBindingProcessor.java +++ b/core/src/main/java/org/elasticsearch/common/inject/TypeConverterBindingProcessor.java @@ -106,7 +106,7 @@ class TypeConverterBindingProcessor extends AbstractProcessor { try { return Class.forName(value); } catch (ClassNotFoundException e) { - throw new RuntimeException(e.getMessage()); + throw new RuntimeException(e); } } @@ -135,7 +135,7 @@ class TypeConverterBindingProcessor extends AbstractProcessor { } catch (IllegalAccessException e) { throw new AssertionError(e); } catch (InvocationTargetException e) { - throw new RuntimeException(e.getTargetException().getMessage()); + throw new RuntimeException(e.getTargetException()); } } diff --git a/core/src/main/java/org/elasticsearch/index/analysis/Analysis.java b/core/src/main/java/org/elasticsearch/index/analysis/Analysis.java index 861f0705b38..827d337a745 100644 --- a/core/src/main/java/org/elasticsearch/index/analysis/Analysis.java +++ b/core/src/main/java/org/elasticsearch/index/analysis/Analysis.java @@ -244,7 +244,7 @@ public class Analysis { return loadWordList(reader, "#"); } catch (IOException ioe) { String message = String.format(Locale.ROOT, "IOException while reading %s_path: %s", settingPrefix, ioe.getMessage()); - throw new IllegalArgumentException(message); + throw new IllegalArgumentException(message, ioe); } } @@ -291,7 +291,7 @@ public class Analysis { return FileSystemUtils.newBufferedReader(path.toUri().toURL(), StandardCharsets.UTF_8); } catch (IOException ioe) { String message = String.format(Locale.ROOT, "IOException while reading %s_path: %s", settingPrefix, ioe.getMessage()); - throw new IllegalArgumentException(message); + throw new IllegalArgumentException(message, ioe); } } diff --git a/core/src/main/java/org/elasticsearch/index/analysis/compound/HyphenationCompoundWordTokenFilterFactory.java b/core/src/main/java/org/elasticsearch/index/analysis/compound/HyphenationCompoundWordTokenFilterFactory.java index a0c7ef58dc2..72d7bdc5871 100644 --- a/core/src/main/java/org/elasticsearch/index/analysis/compound/HyphenationCompoundWordTokenFilterFactory.java +++ b/core/src/main/java/org/elasticsearch/index/analysis/compound/HyphenationCompoundWordTokenFilterFactory.java @@ -62,7 +62,7 @@ public class HyphenationCompoundWordTokenFilterFactory extends AbstractCompoundW try { hyphenationTree = HyphenationCompoundWordTokenFilter.getHyphenationTree(new InputSource(Files.newInputStream(hyphenationPatternsFile))); } catch (Exception e) { - throw new IllegalArgumentException("Exception while reading hyphenation_patterns_path: " + e.getMessage()); + throw new IllegalArgumentException("Exception while reading hyphenation_patterns_path.", e); } } diff --git a/core/src/main/java/org/elasticsearch/index/fielddata/plain/AbstractIndexFieldData.java b/core/src/main/java/org/elasticsearch/index/fielddata/plain/AbstractIndexFieldData.java index 34b11c47cc8..c0b8f7a7b74 100644 --- a/core/src/main/java/org/elasticsearch/index/fielddata/plain/AbstractIndexFieldData.java +++ b/core/src/main/java/org/elasticsearch/index/fielddata/plain/AbstractIndexFieldData.java @@ -78,7 +78,7 @@ public abstract class AbstractIndexFieldData extends if (e instanceof ElasticsearchException) { throw (ElasticsearchException) e; } else { - throw new ElasticsearchException(e.getMessage(), e); + throw new ElasticsearchException(e); } } } diff --git a/core/src/main/java/org/elasticsearch/index/fielddata/plain/AbstractIndexOrdinalsFieldData.java b/core/src/main/java/org/elasticsearch/index/fielddata/plain/AbstractIndexOrdinalsFieldData.java index eff0926a013..9d2ca28a3d5 100644 --- a/core/src/main/java/org/elasticsearch/index/fielddata/plain/AbstractIndexOrdinalsFieldData.java +++ b/core/src/main/java/org/elasticsearch/index/fielddata/plain/AbstractIndexOrdinalsFieldData.java @@ -70,7 +70,7 @@ public abstract class AbstractIndexOrdinalsFieldData extends AbstractIndexFieldD if (e instanceof ElasticsearchException) { throw (ElasticsearchException) e; } else { - throw new ElasticsearchException(e.getMessage(), e); + throw new ElasticsearchException(e); } } } diff --git a/core/src/main/java/org/elasticsearch/index/fielddata/plain/ParentChildIndexFieldData.java b/core/src/main/java/org/elasticsearch/index/fielddata/plain/ParentChildIndexFieldData.java index 187cd25d193..facdc091e69 100644 --- a/core/src/main/java/org/elasticsearch/index/fielddata/plain/ParentChildIndexFieldData.java +++ b/core/src/main/java/org/elasticsearch/index/fielddata/plain/ParentChildIndexFieldData.java @@ -146,7 +146,7 @@ public class ParentChildIndexFieldData extends AbstractIndexFieldData { indexField = new IndexField(stringField, this); indexFields.put(stringField, indexField); } catch (IOException e) { - throw new ElasticsearchException(e.getMessage()); + throw new ElasticsearchException(e); } } return indexField; diff --git a/core/src/main/java/org/elasticsearch/transport/PlainTransportFuture.java b/core/src/main/java/org/elasticsearch/transport/PlainTransportFuture.java index 8cbe6b4c960..c0577e48623 100644 --- a/core/src/main/java/org/elasticsearch/transport/PlainTransportFuture.java +++ b/core/src/main/java/org/elasticsearch/transport/PlainTransportFuture.java @@ -59,7 +59,7 @@ public class PlainTransportFuture extends BaseFutur try { return get(timeout, unit); } catch (TimeoutException e) { - throw new ElasticsearchTimeoutException(e.getMessage()); + throw new ElasticsearchTimeoutException(e); } catch (InterruptedException e) { throw new IllegalStateException("Future got interrupted", e); } catch (ExecutionException e) { diff --git a/core/src/main/java/org/elasticsearch/transport/ResponseHandlerFailureTransportException.java b/core/src/main/java/org/elasticsearch/transport/ResponseHandlerFailureTransportException.java index a79e57441fe..375fbb8bfcb 100644 --- a/core/src/main/java/org/elasticsearch/transport/ResponseHandlerFailureTransportException.java +++ b/core/src/main/java/org/elasticsearch/transport/ResponseHandlerFailureTransportException.java @@ -31,7 +31,7 @@ import java.io.IOException; public class ResponseHandlerFailureTransportException extends TransportException { public ResponseHandlerFailureTransportException(Throwable cause) { - super(cause.getMessage(), cause); + super(cause); } public ResponseHandlerFailureTransportException(StreamInput in) throws IOException { diff --git a/core/src/main/java/org/elasticsearch/transport/TransportException.java b/core/src/main/java/org/elasticsearch/transport/TransportException.java index a672fb939e5..7cc1c54c236 100644 --- a/core/src/main/java/org/elasticsearch/transport/TransportException.java +++ b/core/src/main/java/org/elasticsearch/transport/TransportException.java @@ -28,6 +28,10 @@ import java.io.IOException; * */ public class TransportException extends ElasticsearchException { + public TransportException(Throwable cause) { + super(cause); + } + public TransportException(StreamInput in) throws IOException { super(in); } diff --git a/core/src/main/java/org/elasticsearch/tribe/TribeService.java b/core/src/main/java/org/elasticsearch/tribe/TribeService.java index 7872cef32b7..87da13fad4a 100644 --- a/core/src/main/java/org/elasticsearch/tribe/TribeService.java +++ b/core/src/main/java/org/elasticsearch/tribe/TribeService.java @@ -187,7 +187,7 @@ public class TribeService extends AbstractLifecycleComponent { if (e instanceof RuntimeException) { throw (RuntimeException) e; } - throw new ElasticsearchException(e.getMessage(), e); + throw new ElasticsearchException(e); } } }