Fix unreachable error condition in AmazonS3Fixture (#32005)

The `else` branch where currently the error response should be thrown is not
reachable because `handler` is always non-null inside the previous outer check.
Moving error creation into an else branch on the other condition check, removing
the other superflous check for non-null handler inside the first branch.
This commit is contained in:
Christoph Büscher 2018-07-12 17:38:30 +02:00 committed by GitHub
parent 0b7e7befdd
commit 043e40adde
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -18,14 +18,15 @@
*/ */
package org.elasticsearch.repositories.s3; package org.elasticsearch.repositories.s3;
import org.elasticsearch.test.fixture.AbstractHttpFixture;
import com.amazonaws.util.DateUtils; import com.amazonaws.util.DateUtils;
import org.elasticsearch.common.Strings; import org.elasticsearch.common.Strings;
import org.elasticsearch.common.io.Streams; import org.elasticsearch.common.io.Streams;
import org.elasticsearch.common.path.PathTrie; import org.elasticsearch.common.path.PathTrie;
import org.elasticsearch.common.util.concurrent.ConcurrentCollections; import org.elasticsearch.common.util.concurrent.ConcurrentCollections;
import org.elasticsearch.rest.RestStatus; import org.elasticsearch.rest.RestStatus;
import org.elasticsearch.rest.RestUtils; import org.elasticsearch.rest.RestUtils;
import org.elasticsearch.test.fixture.AbstractHttpFixture;
import java.io.BufferedInputStream; import java.io.BufferedInputStream;
import java.io.ByteArrayInputStream; import java.io.ByteArrayInputStream;
@ -93,23 +94,21 @@ public class AmazonS3Fixture extends AbstractHttpFixture {
return newError(request.getId(), RestStatus.FORBIDDEN, "AccessDenied", "Bad access key", ""); return newError(request.getId(), RestStatus.FORBIDDEN, "AccessDenied", "Bad access key", "");
} }
if (handler != null) { final String bucket = request.getParam("bucket");
final String bucket = request.getParam("bucket"); if (bucket != null && permittedBucket.equals(bucket) == false) {
if (bucket != null && permittedBucket.equals(bucket) == false) { // allow a null bucket to support the multi-object-delete API which
// allow a null bucket to support the multi-object-delete API which // passes the bucket name in the host header instead of the URL.
// passes the bucket name in the host header instead of the URL. if (buckets.containsKey(bucket)) {
if (buckets.containsKey(bucket)) { return newError(request.getId(), RestStatus.FORBIDDEN, "AccessDenied", "Bad bucket", "");
return newError(request.getId(), RestStatus.FORBIDDEN, "AccessDenied", "Bad bucket", ""); } else {
} else { return newBucketNotFoundError(request.getId(), bucket);
return newBucketNotFoundError(request.getId(), bucket);
}
} }
return handler.handle(request);
} else {
return newInternalError(request.getId(), "No handler defined for request [" + request + "]");
} }
return handler.handle(request);
} else {
return newInternalError(request.getId(), "No handler defined for request [" + request + "]");
} }
return null;
} }
public static void main(final String[] args) throws Exception { public static void main(final String[] args) throws Exception {