Skip to content

Commit 5de92f3

Browse files
committed
use bytebuffer
1 parent b5217d1 commit 5de92f3

File tree

1 file changed

+10
-10
lines changed
  • dd-java-agent/instrumentation/jdbc/src/main/java/datadog/trace/instrumentation/jdbc

1 file changed

+10
-10
lines changed

dd-java-agent/instrumentation/jdbc/src/main/java/datadog/trace/instrumentation/jdbc/JDBCDecorator.java

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,8 @@
2020
import datadog.trace.bootstrap.instrumentation.jdbc.DBInfo;
2121
import datadog.trace.bootstrap.instrumentation.jdbc.DBQueryInfo;
2222
import datadog.trace.bootstrap.instrumentation.jdbc.JDBCConnectionUrlParser;
23-
import java.io.ByteArrayOutputStream;
24-
import java.io.DataOutputStream;
23+
import java.nio.ByteBuffer;
24+
import java.nio.ByteOrder;
2525
import java.sql.Connection;
2626
import java.sql.DatabaseMetaData;
2727
import java.sql.PreparedStatement;
@@ -274,15 +274,15 @@ public long setContextInfo(Connection connection, DBInfo dbInfo) {
274274
final byte versionAndSamplingDecision =
275275
(byte) ((VERSION << 4) & 0b11110000 | samplingDecision & 0b00000001);
276276

277-
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
278-
DataOutputStream dataOutputStream = new DataOutputStream(byteArrayOutputStream);
279-
dataOutputStream.writeByte(versionAndSamplingDecision);
280-
dataOutputStream.writeLong(spanID);
277+
ByteBuffer byteBuffer = ByteBuffer.allocate(1 + 3 * Long.BYTES);
278+
byteBuffer.order(ByteOrder.BIG_ENDIAN);
279+
280+
byteBuffer.put(versionAndSamplingDecision);
281+
byteBuffer.putLong(spanID);
281282
final DDTraceId traceId = instrumentationSpan.getTraceId();
282-
dataOutputStream.writeLong(traceId.toHighOrderLong());
283-
dataOutputStream.writeLong(traceId.toLong());
284-
dataOutputStream.flush();
285-
final byte[] contextInfo = byteArrayOutputStream.toByteArray();
283+
byteBuffer.putLong(traceId.toHighOrderLong());
284+
byteBuffer.putLong(traceId.toLong());
285+
final byte[] contextInfo = byteBuffer.array();
286286

287287
String instrumentationSql = "set context_info ?";
288288
instrumentationStatement = connection.prepareStatement(instrumentationSql);

0 commit comments

Comments
 (0)