Skip to content
This repository was archived by the owner on Jul 1, 2022. It is now read-only.

Commit 4f828cf

Browse files
rgreigyurishkuro
andauthored
Update the version of libthrift to 0.14.1 (#772). (#774)
This change updates the version of the dependency libthrift to 0.14.1. The primary impact of this is the requirement to handle a new checked exception, TTransportException, and a new base class TEndpointTransport which is used instead of TTransport and provides a useful implementation of some additional methods that were added to the TTransport base class. Signed-off-by: Robert Greig <[email protected]> Co-authored-by: Yuri Shkuro <[email protected]>
1 parent 6b314cd commit 4f828cf

File tree

14 files changed

+60
-30
lines changed

14 files changed

+60
-30
lines changed

build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ plugins {
1919

2020
ext.opentracingVersion = getProperty('opentracingVersion','0.33.0')
2121
ext.guavaVersion = getProperty('guavaVersion','18.0')
22-
ext.apacheThriftVersion = getProperty('apacheThriftVersion','0.13.0')
22+
ext.apacheThriftVersion = getProperty('apacheThriftVersion','0.14.1')
2323
ext.jerseyVersion = getProperty('jerseyVersion','2.22.2')
2424
ext.slf4jVersion = getProperty('slf4jVersion','1.7.28')
2525
ext.gsonVersion = getProperty('gsonVersion','2.8.6')

jaeger-crossdock/src/main/java/io/jaegertracing/crossdock/JerseyServer.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@
4040
import javax.ws.rs.client.Client;
4141
import javax.ws.rs.client.ClientBuilder;
4242
import org.apache.log4j.BasicConfigurator;
43+
import org.apache.thrift.transport.TTransportException;
4344
import org.glassfish.grizzly.GrizzlyFuture;
4445
import org.glassfish.grizzly.http.server.HttpServer;
4546
import org.glassfish.grizzly.http.server.NetworkListener;
@@ -141,7 +142,7 @@ private static String getEvn(String envName, String defaultValue) {
141142
return env;
142143
}
143144

144-
private static Sender senderFromEnv(String collectorHostPort, String agentHost) {
145+
private static Sender senderFromEnv(String collectorHostPort, String agentHost) throws TTransportException {
145146
String senderEnvVar = System.getenv(Constants.ENV_PROP_SENDER_TYPE);
146147
if ("http".equalsIgnoreCase(senderEnvVar)) {
147148
return new HttpSender.Builder(String.format("http://%s/api/traces", collectorHostPort))

jaeger-thrift/src/main/java/io/jaegertracing/thrift/internal/reporters/protocols/ThriftUdpTransport.java

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -23,14 +23,16 @@
2323
import java.net.UnknownHostException;
2424
import java.nio.ByteBuffer;
2525
import lombok.ToString;
26+
import org.apache.thrift.TConfiguration;
27+
import org.apache.thrift.transport.TEndpointTransport;
2628
import org.apache.thrift.transport.TTransport;
2729
import org.apache.thrift.transport.TTransportException;
2830

2931
/*
3032
* A thrift transport for sending sending/receiving spans.
3133
*/
3234
@ToString
33-
public class ThriftUdpTransport extends TTransport implements Closeable {
35+
public class ThriftUdpTransport extends TEndpointTransport implements Closeable {
3436
public static final int MAX_PACKET_SIZE = 65000;
3537

3638
public int receiveOffSet = -1;
@@ -41,7 +43,7 @@ public class ThriftUdpTransport extends TTransport implements Closeable {
4143
@ToString.Exclude public ByteBuffer writeBuffer;
4244

4345
// Create a UDP client for sending data to specific host and port
44-
public static ThriftUdpTransport newThriftUdpClient(String host, int port) {
46+
public static ThriftUdpTransport newThriftUdpClient(String host, int port) throws TTransportException {
4547
ThriftUdpTransport t;
4648
try {
4749
t = new ThriftUdpTransport();
@@ -54,13 +56,14 @@ public static ThriftUdpTransport newThriftUdpClient(String host, int port) {
5456

5557
// Create a UDP server for receiving data on specific host and port
5658
public static ThriftUdpTransport newThriftUdpServer(String host, int port)
57-
throws SocketException, UnknownHostException {
59+
throws SocketException, TTransportException, UnknownHostException {
5860
ThriftUdpTransport t = new ThriftUdpTransport();
5961
t.socket.bind(new InetSocketAddress(host, port));
6062
return t;
6163
}
6264

63-
private ThriftUdpTransport() throws SocketException {
65+
private ThriftUdpTransport() throws TTransportException, SocketException {
66+
super(new TConfiguration());
6467
this.socket = new DatagramSocket(null);
6568
}
6669

jaeger-thrift/src/main/java/io/jaegertracing/thrift/internal/senders/HttpSender.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@
2929
import okhttp3.Request;
3030
import okhttp3.RequestBody;
3131
import okhttp3.Response;
32+
import org.apache.thrift.transport.TTransportException;
3233

3334
@ToString
3435
public class HttpSender extends ThriftSender {
@@ -39,7 +40,7 @@ public class HttpSender extends ThriftSender {
3940
@ToString.Exclude private final OkHttpClient httpClient;
4041
@ToString.Exclude private final Request.Builder requestBuilder;
4142

42-
protected HttpSender(Builder builder) {
43+
protected HttpSender(Builder builder) throws TTransportException {
4344
super(ProtocolType.Binary, builder.maxPacketSize);
4445
HttpUrl collectorUrl = HttpUrl
4546
.parse(String.format("%s?%s", builder.endpoint, HTTP_COLLECTOR_JAEGER_THRIFT_FORMAT_PARAM));
@@ -119,7 +120,7 @@ public Builder withAuth(String authToken) {
119120
return this;
120121
}
121122

122-
public HttpSender build() {
123+
public HttpSender build() throws TTransportException {
123124
if (authInterceptor != null) {
124125
clientBuilder.addInterceptor(authInterceptor);
125126
}

jaeger-thrift/src/main/java/io/jaegertracing/thrift/internal/senders/ThriftSender.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
import java.util.ArrayList;
2424
import java.util.List;
2525
import lombok.ToString;
26+
import org.apache.thrift.transport.TTransportException;
2627

2728
@ToString
2829
public abstract class ThriftSender extends ThriftSenderBase implements Sender {
@@ -37,7 +38,7 @@ public abstract class ThriftSender extends ThriftSenderBase implements Sender {
3738
* @param protocolType protocol type (compact or binary)
3839
* @param maxPacketSize if 0 it will use default value {@value ThriftUdpTransport#MAX_PACKET_SIZE}
3940
*/
40-
public ThriftSender(ProtocolType protocolType, int maxPacketSize) {
41+
public ThriftSender(ProtocolType protocolType, int maxPacketSize) throws TTransportException {
4142
super(protocolType, maxPacketSize);
4243

4344
spanBuffer = new ArrayList<io.jaegertracing.thriftjava.Span>();

jaeger-thrift/src/main/java/io/jaegertracing/thrift/internal/senders/ThriftSenderBase.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,11 +18,13 @@
1818
import lombok.ToString;
1919
import lombok.extern.slf4j.Slf4j;
2020
import org.apache.thrift.TBase;
21+
import org.apache.thrift.TConfiguration;
2122
import org.apache.thrift.TSerializer;
2223
import org.apache.thrift.protocol.TBinaryProtocol;
2324
import org.apache.thrift.protocol.TCompactProtocol;
2425
import org.apache.thrift.protocol.TProtocolFactory;
2526
import org.apache.thrift.transport.AutoExpandingBufferWriteTransport;
27+
import org.apache.thrift.transport.TTransportException;
2628

2729
@ToString
2830
@Slf4j
@@ -45,7 +47,7 @@ public enum ProtocolType {
4547
* @param protocolType protocol type (compact or binary)
4648
* @param maxPacketSize if 0 it will use default value {@value ThriftUdpTransport#MAX_PACKET_SIZE}
4749
*/
48-
public ThriftSenderBase(ProtocolType protocolType, int maxPacketSize) {
50+
public ThriftSenderBase(ProtocolType protocolType, int maxPacketSize) throws TTransportException {
4951
switch (protocolType) {
5052
case Binary:
5153
this.protocolFactory = new TBinaryProtocol.Factory();
@@ -64,7 +66,7 @@ public ThriftSenderBase(ProtocolType protocolType, int maxPacketSize) {
6466
}
6567

6668
maxBatchBytes = maxPacketSize - EMIT_BATCH_OVERHEAD;
67-
memoryTransport = new AutoExpandingBufferWriteTransport(maxPacketSize, 2);
69+
memoryTransport = new AutoExpandingBufferWriteTransport(new TConfiguration(), maxPacketSize, 2);
6870
serializer = new TSerializer(protocolFactory);
6971
}
7072

jaeger-thrift/src/main/java/io/jaegertracing/thrift/internal/senders/ThriftSenderFactory.java

Lines changed: 16 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
import io.jaegertracing.spi.SenderFactory;
66
import lombok.ToString;
77
import lombok.extern.slf4j.Slf4j;
8+
import org.apache.thrift.transport.TTransportException;
89

910
/**
1011
* Factory for {@link Sender} instances backed by Thrift. The actual sender implementation can be either
@@ -27,14 +28,24 @@ public Sender getSender(Configuration.SenderConfiguration conf) {
2728
}
2829

2930
log.debug("Using the HTTP Sender to send spans directly to the endpoint.");
30-
return httpSenderBuilder.build();
31+
try {
32+
return httpSenderBuilder.build();
33+
}
34+
catch (TTransportException e) {
35+
throw new RuntimeException("Failed to build http sender: " + e, e);
36+
}
3137
}
3238

3339
log.debug("Using the UDP Sender to send spans to the agent.");
34-
return new UdpSender(
35-
stringOrDefault(conf.getAgentHost(), UdpSender.DEFAULT_AGENT_UDP_HOST),
36-
numberOrDefault(conf.getAgentPort(), UdpSender.DEFAULT_AGENT_UDP_COMPACT_PORT).intValue(),
37-
0 /* max packet size */);
40+
try {
41+
return new UdpSender(
42+
stringOrDefault(conf.getAgentHost(), UdpSender.DEFAULT_AGENT_UDP_HOST),
43+
numberOrDefault(conf.getAgentPort(), UdpSender.DEFAULT_AGENT_UDP_COMPACT_PORT).intValue(),
44+
0 /* max packet size */);
45+
}
46+
catch (TTransportException e) {
47+
throw new RuntimeException("Unable to create UDPSender: " + e, e);
48+
}
3849
}
3950

4051
@Override

jaeger-thrift/src/main/java/io/jaegertracing/thrift/internal/senders/UdpSender.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
import io.jaegertracing.thriftjava.Process;
2222
import java.util.List;
2323
import lombok.ToString;
24+
import org.apache.thrift.transport.TTransportException;
2425

2526
@ToString
2627
public class UdpSender extends ThriftSender {
@@ -37,7 +38,7 @@ public class UdpSender extends ThriftSender {
3738
* This constructor expects Jaeger running running on {@value #DEFAULT_AGENT_UDP_HOST}
3839
* and port {@value #DEFAULT_AGENT_UDP_COMPACT_PORT}
3940
*/
40-
public UdpSender() {
41+
public UdpSender() throws TTransportException {
4142
this(DEFAULT_AGENT_UDP_HOST, DEFAULT_AGENT_UDP_COMPACT_PORT, 0);
4243
}
4344

@@ -46,7 +47,7 @@ public UdpSender() {
4647
* @param port port e.g. {@value DEFAULT_AGENT_UDP_COMPACT_PORT}
4748
* @param maxPacketSize if 0 it will use {@value ThriftUdpTransport#MAX_PACKET_SIZE}
4849
*/
49-
public UdpSender(String host, int port, int maxPacketSize) {
50+
public UdpSender(String host, int port, int maxPacketSize) throws TTransportException {
5051
super(ProtocolType.Compact, maxPacketSize);
5152

5253
if (host == null || host.length() == 0) {
@@ -61,7 +62,7 @@ public UdpSender(String host, int port, int maxPacketSize) {
6162
this.port = port;
6263
}
6364

64-
private Agent.Client getAgentClient() {
65+
private Agent.Client getAgentClient() throws TTransportException {
6566
Agent.Client localRef = this.agentClient;
6667
if (localRef == null) {
6768
synchronized (this) {

jaeger-thrift/src/test/java/io/jaegertracing/thrift/internal/reporters/protocols/TestTServer.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,13 +22,14 @@
2222
import org.apache.thrift.protocol.TCompactProtocol;
2323
import org.apache.thrift.server.TServer;
2424
import org.apache.thrift.server.TSimpleServer;
25+
import org.apache.thrift.transport.TTransportException;
2526

2627
public class TestTServer implements Runnable {
2728
TServer server;
2829
InMemorySpanServerHandler handler;
2930
ThriftUdpServerTransport transport;
3031

31-
public TestTServer(int port) throws SocketException, UnknownHostException {
32+
public TestTServer(int port) throws SocketException, UnknownHostException, TTransportException {
3233
handler = new InMemorySpanServerHandler();
3334
transport = new ThriftUdpServerTransport(port);
3435
server =
@@ -62,7 +63,7 @@ public Batch getBatch(int expectedSpans, int timeout) throws Exception {
6263
batch.setProcess(receivedBatch.getProcess());
6364
}
6465

65-
if (batch.spans.size() >= expectedSpans) {
66+
if (batch.getSpans().size() >= expectedSpans) {
6667
return batch;
6768
}
6869

jaeger-thrift/src/test/java/io/jaegertracing/thrift/internal/reporters/protocols/ThriftSenderBaseTest.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,8 @@
2222
import io.jaegertracing.thriftjava.Span;
2323
import java.util.ArrayList;
2424
import java.util.List;
25+
26+
import org.apache.thrift.TConfiguration;
2527
import org.apache.thrift.protocol.TCompactProtocol;
2628
import org.apache.thrift.transport.AutoExpandingBufferWriteTransport;
2729
import org.junit.Test;
@@ -44,7 +46,7 @@ public void testEmitBatchOverhead() throws Exception {
4446

4547
private int calculateBatchOverheadDifference(int numberOfSpans) throws Exception {
4648
AutoExpandingBufferWriteTransport memoryTransport =
47-
new AutoExpandingBufferWriteTransport(maxPacketSize, 2);
49+
new AutoExpandingBufferWriteTransport(new TConfiguration(), maxPacketSize, 2);
4850
Agent.Client memoryClient = new Agent.Client(new TCompactProtocol((memoryTransport)));
4951
Span span = new Span();
5052
span.setOperationName("raza");

0 commit comments

Comments
 (0)