Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -68,8 +68,9 @@ static final class OkHttpAdapter extends brave.http.HttpClientAdapter<Request, R
return request.header(name);
}

@Override public Integer statusCode(Response response) {
return statusCodeAsInt(response);
@Override @Nullable public Integer statusCode(Response response) {
int result = statusCodeAsInt(response);
return result != 0 ? result : null;
}

@Override public int statusCodeAsInt(Response response) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@
import brave.Tracing;
import brave.http.HttpClientHandler;
import brave.http.HttpTracing;
import brave.internal.Nullable;
import brave.propagation.CurrentTraceContext;
import brave.propagation.CurrentTraceContext.Scope;
import brave.propagation.Propagation;
Expand All @@ -32,6 +33,7 @@
import org.apache.http.HttpRequestInterceptor;
import org.apache.http.HttpResponse;
import org.apache.http.HttpResponseInterceptor;
import org.apache.http.StatusLine;
import org.apache.http.client.methods.HttpRequestWrapper;
import org.apache.http.client.protocol.HttpClientContext;
import org.apache.http.concurrent.FutureCallback;
Expand Down Expand Up @@ -157,12 +159,14 @@ static final class HttpAdapter extends brave.http.HttpClientAdapter<HttpRequest,
return result != null ? result.getValue() : null;
}

@Override public Integer statusCode(HttpResponse response) {
return statusCodeAsInt(response);
@Override @Nullable public Integer statusCode(HttpResponse response) {
int result = statusCodeAsInt(response);
return result != 0 ? result : null;
}

@Override public int statusCodeAsInt(HttpResponse response) {
return response.getStatusLine().getStatusCode();
StatusLine statusLine = response.getStatusLine();
return statusLine != null ? statusLine.getStatusCode() : 0;
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,10 +14,12 @@
package brave.httpclient;

import brave.Span;
import brave.internal.Nullable;
import java.net.InetAddress;
import org.apache.http.Header;
import org.apache.http.HttpHost;
import org.apache.http.HttpResponse;
import org.apache.http.StatusLine;
import org.apache.http.client.methods.HttpRequestWrapper;

final class HttpAdapter extends brave.http.HttpClientAdapter<HttpRequestWrapper, HttpResponse> {
Expand All @@ -42,12 +44,14 @@ final class HttpAdapter extends brave.http.HttpClientAdapter<HttpRequestWrapper,
return result != null ? result.getValue() : null;
}

@Override public Integer statusCode(HttpResponse response) {
return statusCodeAsInt(response);
@Override @Nullable public Integer statusCode(HttpResponse response) {
int result = statusCodeAsInt(response);
return result != 0 ? result : null;
}

@Override public int statusCodeAsInt(HttpResponse response) {
return response.getStatusLine().getStatusCode();
StatusLine statusLine = response.getStatusLine();
return statusLine != null ? statusLine.getStatusCode() : 0;
}

static void parseTargetAddress(HttpRequestWrapper httpRequest, Span span) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@
import brave.Tracing;
import brave.http.HttpClientHandler;
import brave.http.HttpTracing;
import brave.internal.Nullable;
import brave.propagation.Propagation.Setter;
import brave.propagation.TraceContext;
import javax.annotation.Priority;
Expand Down Expand Up @@ -110,12 +111,14 @@ static final class HttpAdapter
return request.getHeaderString(name);
}

@Override public Integer statusCode(ClientResponseContext response) {
return statusCodeAsInt(response);
@Override @Nullable public Integer statusCode(ClientResponseContext response) {
int result = statusCodeAsInt(response);
return result != 0 ? result : null;
}

@Override public int statusCodeAsInt(ClientResponseContext response) {
return response.getStatus();
int result = response.getStatus();
return result != -1 ? result : 0;
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@
import brave.http.HttpServerAdapter;
import brave.http.HttpServerHandler;
import brave.http.HttpTracing;
import brave.internal.Nullable;
import brave.propagation.Propagation.Getter;
import brave.propagation.TraceContext;
import javax.inject.Inject;
Expand Down Expand Up @@ -101,8 +102,9 @@ static final class Adapter extends HttpServerAdapter<ContainerRequest, RequestEv
return (String) event.getContainerRequest().getProperty("http.route");
}

@Override public Integer statusCode(RequestEvent event) {
return statusCodeAsInt(event);
@Override @Nullable public Integer statusCode(RequestEvent response) {
int result = statusCodeAsInt(response);
return result != 0 ? result : null;
}

@Override public int statusCodeAsInt(RequestEvent event) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,10 @@
package brave.netty.http;

import brave.http.HttpServerAdapter;
import brave.internal.Nullable;
import io.netty.handler.codec.http.HttpRequest;
import io.netty.handler.codec.http.HttpResponse;
import io.netty.handler.codec.http.HttpResponseStatus;

final class HttpNettyAdapter extends HttpServerAdapter<HttpRequest, HttpResponse> {
@Override public String method(HttpRequest request) {
Expand All @@ -33,11 +35,13 @@ final class HttpNettyAdapter extends HttpServerAdapter<HttpRequest, HttpResponse
return request.headers().get(name);
}

@Override public Integer statusCode(HttpResponse response) {
return statusCodeAsInt(response);
@Override @Nullable public Integer statusCode(HttpResponse response) {
int result = statusCodeAsInt(response);
return result != 0 ? result : null;
}

@Override public int statusCodeAsInt(HttpResponse response) {
return response.status().code();
HttpResponseStatus status = response.status();
return status != null ? status.code() : 0;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@
import brave.Tracing;
import brave.http.HttpClientHandler;
import brave.http.HttpTracing;
import brave.internal.Nullable;
import brave.propagation.Propagation.Setter;
import brave.propagation.TraceContext;
import java.io.IOException;
Expand Down Expand Up @@ -108,8 +109,9 @@ static final class HttpAdapter extends brave.http.HttpClientAdapter<Request, Res
return request.header(name);
}

@Override public Integer statusCode(Response response) {
return statusCodeAsInt(response);
@Override @Nullable public Integer statusCode(Response response) {
int result = statusCodeAsInt(response);
return result != 0 ? result : null;
}

@Override public int statusCodeAsInt(Response response) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@

import brave.Span;
import brave.http.HttpServerAdapter;
import brave.internal.Nullable;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpServletResponseWrapper;
Expand Down Expand Up @@ -88,7 +89,12 @@ public HttpServletResponse adaptResponse(HttpServletRequest req, HttpServletResp
return null;
}

@Override public Integer statusCode(HttpServletResponse response) {
@Override @Nullable public Integer statusCode(HttpServletResponse response) {
int result = statusCodeAsInt(response);
return result != 0 ? result : null;
}

@Override public int statusCodeAsInt(HttpServletResponse response) {
return servlet.status(response);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,6 @@

import brave.Span;
import brave.http.HttpServerHandler;
import brave.internal.Nullable;
import java.io.IOException;
import java.lang.reflect.Method;
import java.util.LinkedHashMap;
Expand Down Expand Up @@ -44,7 +43,7 @@ HttpServletResponse httpResponse(ServletResponse response) {
return (HttpServletResponse) response;
}

abstract @Nullable Integer status(HttpServletResponse response);
abstract int status(HttpServletResponse response);

abstract boolean isAsync(HttpServletRequest request);

Expand Down Expand Up @@ -80,7 +79,7 @@ static final class Servlet3 extends ServletRuntime {
return request.isAsyncStarted();
}

@Override @Nullable Integer status(HttpServletResponse response) {
@Override int status(HttpServletResponse response) {
return response.getStatus();
}

Expand Down Expand Up @@ -167,7 +166,7 @@ static final class Servlet25 extends ServletRuntime {
* Eventhough the Servlet 2.5 version of HttpServletResponse doesn't have the getStatus method,
* routine servlet runtimes, do, for example {@code org.eclipse.jetty.server.Response}
*/
@Override @Nullable Integer status(HttpServletResponse response) {
@Override int status(HttpServletResponse response) {
// unwrap if we've decorated the response
if (response instanceof HttpServletAdapter.DecoratedHttpServletResponse) {
HttpServletResponseWrapper decorated = ((HttpServletResponseWrapper) response);
Expand All @@ -182,20 +181,20 @@ static final class Servlet25 extends ServletRuntime {
Object getStatusMethod = classesToCheck.get(clazz);
if (getStatusMethod == RETURN_NULL ||
(getStatusMethod == null && classesToCheck.size() == 10)) { // limit size
return null;
return 0;
}

// Now, we either have a cached method or we have room to cache a method
if (getStatusMethod == null) {
if (clazz.isLocalClass() || clazz.isAnonymousClass()) return null; // don't cache
if (clazz.isLocalClass() || clazz.isAnonymousClass()) return 0; // don't cache
try {
// we don't check for accessibility as isAccessible is deprecated: just fail later
getStatusMethod = clazz.getMethod("getStatus");
return (int) ((Method) getStatusMethod).invoke(response);
} catch (Throwable throwable) {
Call.propagateIfFatal(throwable);
getStatusMethod = RETURN_NULL;
return null;
return 0;
} finally {
// regardless of success or fail, replace the cache
Map<Class<?>, Object> replacement = new LinkedHashMap<>(classesToCheck);
Expand All @@ -212,7 +211,7 @@ static final class Servlet25 extends ServletRuntime {
Map<Class<?>, Object> replacement = new LinkedHashMap<>(classesToCheck);
replacement.put(clazz, RETURN_NULL);
classToGetStatus.set(replacement); // prefer overriding on failure
return null;
return 0;
}
}
}
Expand Down Expand Up @@ -246,7 +245,7 @@ static final class Servlet25ServerResponseAdapter extends HttpServletResponseWra
super.setStatus(sc);
}

public int getStatusInServlet25() {
int getStatusInServlet25() {
return httpStatus;
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@
import brave.Tracing;
import brave.http.HttpClientHandler;
import brave.http.HttpTracing;
import brave.internal.Nullable;
import brave.propagation.Propagation.Setter;
import brave.propagation.TraceContext;
import java.io.IOException;
Expand Down Expand Up @@ -88,11 +89,16 @@ static final class HttpAdapter
return result != null ? result.toString() : "";
}

@Override public Integer statusCode(ClientHttpResponse response) {
@Override @Nullable public Integer statusCode(ClientHttpResponse response) {
int result = statusCodeAsInt(response);
return result != 0 ? result : null;
}

@Override public int statusCodeAsInt(ClientHttpResponse response) {
try {
return response.getRawStatusCode();
} catch (IOException e) {
return null;
} catch (IllegalArgumentException | IOException e) {
return 0;
}
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@

import brave.Span;
import brave.http.HttpServerAdapter;
import brave.internal.Nullable;
import io.vertx.core.http.HttpServerRequest;
import io.vertx.core.http.HttpServerResponse;
import io.vertx.core.net.SocketAddress;
Expand Down Expand Up @@ -61,8 +62,9 @@ class VertxHttpServerAdapter extends HttpServerAdapter<HttpServerRequest, HttpSe
return result != null ? result : "";
}

@Override public Integer statusCode(HttpServerResponse response) {
return statusCodeAsInt(response);
@Override @Nullable public Integer statusCode(HttpServerResponse response) {
int result = statusCodeAsInt(response);
return result != 0 ? result : null;
}

@Override public int statusCodeAsInt(HttpServerResponse response) {
Expand Down