Produced using SpotBugs3.1.0-RC6.
Project:
216 lines of code analyzed, in 5 classes, in 1 packages.
Metric | Total | Density* |
---|---|---|
High Priority Warnings | NaN | |
Medium Priority Warnings | NaN | |
Low Priority Warnings | 3 | 13.89 |
Total Warnings | 3 | 13.89 |
(* Defects per Thousand lines of non-commenting source statements)
Warning Type | Number |
---|---|
Internationalization Warnings | 1 |
Performance Warnings | 1 |
Dodgy code Warnings | 1 |
Total | 3 |
Click on each warning link to see a full description of the issue, and details of how to resolve it.
Warning | Priority | Details |
---|---|---|
Consider using Locale parameterized version of invoked method | Low |
Use of non-localized String.toUpperCase() or String.toLowerCase() in groovyx.net.http.OkHttpBuilder.resolveMediaType(String, Charset) |
Warning | Priority | Details |
---|---|---|
Could be refactored into a static inner class | Low |
The class groovyx.net.http.OkHttpBuilder$OkHttpFromServer could be refactored into a _static_ inner class |
Warning | Priority | Details |
---|---|---|
Exception is caught when Exception is not thrown | Low |
Exception is caught when Exception is not thrown in groovyx.net.http.OkHttpBuilder.execute(Function, ChainedHttpConfig) |
A String is being converted to upper or lowercase, using the platform's default encoding. This may result in improper conversions when used with international characters. Use the
versions instead.
This method uses a try-catch block that catches Exception objects, but Exception is not thrown within the try block, and RuntimeException is not explicitly caught. It is a common bug pattern to say try { ... } catch (Exception e) { something } as a shorthand for catching a number of types of exception each of whose catch blocks is identical, but this construct also accidentally catches RuntimeException as well, masking potential bugs.
A better approach is to either explicitly catch the specific exceptions that are thrown, or to explicitly catch RuntimeException exception, rethrow it, and then catch all non-Runtime Exceptions, as shown below:
try {
...
} catch (RuntimeException e) {
throw e;
} catch (Exception e) {
... deal with all non-runtime exceptions ...
}
This class is an inner class, but does not use its embedded reference to the object which created it except during construction of the inner object. This reference makes the instances of the class larger, and may keep the reference to the creator object alive longer than necessary. If possible, the class should be made into a static inner class. Since the reference to the outer object is required during construction of the inner instance, the inner class will need to be refactored so as to pass a reference to the outer instance to the constructor for the inner class.