Skip to content

Commit 6b5c8f0

Browse files
TheHighriseropenkitdt
authored andcommitted
Pull request #263: Feature/RUM-20521 openkit java .net native should use long instead of int for bytessent and
Merge in OP/openkit-java from feature/RUM-20521-openkit-java-.net-native-should-use-long-instead-of-int-for-bytessent-and to main * commit 'a4e498097bf5c8e628a498c4aa8a86ee3a882821': RUM-20521 PR Fixes RUM-20521 Updating Tests and Changelog RUM-20521 Adding API and changing tests GitOrigin-RevId: a03e010c1f0e915fb7026a951a5b4643f339ab02
1 parent b8d0a4e commit 6b5c8f0

File tree

10 files changed

+203
-56
lines changed

10 files changed

+203
-56
lines changed

CHANGELOG.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,14 @@
22

33
## [Unreleased](https://github.com/Dynatrace/openkit-java/compare/v3.2.0...HEAD)
44

5+
### Added
6+
- `WebRequestTracer.setBytesSent(long bytes)` to increase the size range
7+
- `WebRequestTracer.setBytesReceived(long bytes)` to increase the size range
8+
9+
### Changed
10+
- Deprecated `WebRequestTracer.setBytesSent(int bytes)` due to datatype limitations
11+
- Deprecated `WebRequestTracer.setBytesReceived(int bytes)` due to datatype limitations
12+
513
## 3.2.0 [Release date: 2023-12-06]
614
[GitHub Releases](https://github.com/Dynatrace/openkit-java/releases/tag/v3.2.0)
715

src/main/java/com/dynatrace/openkit/api/WebRequestTracer.java

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,17 +35,39 @@ public interface WebRequestTracer extends Closeable {
3535
/**
3636
* Sets the amount of sent data of this web request. Has to be called before {@link WebRequestTracer#stop(int)}.
3737
*
38+
* @deprecated
39+
* This method should no longer be used due its datatype limitation. Use {@link WebRequestTracer#setBytesSent(long)} instead.
40+
*
3841
* @param bytesSent number of bytes
3942
*/
43+
@Deprecated
4044
WebRequestTracer setBytesSent(int bytesSent);
4145

46+
/**
47+
* Sets the amount of sent data of this web request. Has to be called before {@link WebRequestTracer#stop(int)}.
48+
*
49+
* @param bytesSent number of bytes
50+
*/
51+
WebRequestTracer setBytesSent(long bytesSent);
52+
4253
/**
4354
* Sets the amount of received data of this web request. Has to be called before {@link WebRequestTracer#stop(int)}.
4455
*
56+
* @deprecated
57+
* This method should no longer be used due its datatype limitation. Use {@link WebRequestTracer#setBytesReceived(long)} instead.
58+
*
4559
* @param bytesReceived number of bytes
4660
*/
61+
@Deprecated
4762
WebRequestTracer setBytesReceived(int bytesReceived);
4863

64+
/**
65+
* Sets the amount of received data of this web request. Has to be called before {@link WebRequestTracer#stop(int)}.
66+
*
67+
* @param bytesReceived number of bytes
68+
*/
69+
WebRequestTracer setBytesReceived(long bytesReceived);
70+
4971
/**
5072
* Starts the web request timing. Should be called when the web request is initiated.
5173
*/

src/main/java/com/dynatrace/openkit/core/objects/NullWebRequestTracer.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,11 +41,21 @@ public WebRequestTracer setBytesSent(int bytesSent) {
4141
return this;
4242
}
4343

44+
@Override
45+
public WebRequestTracer setBytesSent(long bytesSent) {
46+
return this;
47+
}
48+
4449
@Override
4550
public WebRequestTracer setBytesReceived(int bytesReceived) {
4651
return this;
4752
}
4853

54+
@Override
55+
public WebRequestTracer setBytesReceived(long bytesReceived) {
56+
return this;
57+
}
58+
4959
@Override
5060
public WebRequestTracer start() {
5161
return this;

src/main/java/com/dynatrace/openkit/core/objects/WebRequestTracerBaseImpl.java

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -53,9 +53,9 @@ public abstract class WebRequestTracerBaseImpl implements WebRequestTracer, Canc
5353
/** The response code received from the request */
5454
private int responseCode = -1;
5555
/** The number of bytes sent */
56-
private int bytesSent = -1;
56+
private long bytesSent = -1;
5757
/** The number of bytes received */
58-
private int bytesReceived = -1;
58+
private long bytesReceived = -1;
5959

6060
/** Start time of the web request, set in {@link #start()} */
6161
private long startTime;
@@ -103,6 +103,11 @@ public String getTag() {
103103

104104
@Override
105105
public WebRequestTracer setBytesSent(int bytesSent) {
106+
return setBytesSent((long) bytesSent);
107+
}
108+
109+
@Override
110+
public WebRequestTracer setBytesSent(long bytesSent) {
106111
synchronized (lockObject) {
107112
if (!isStopped()) {
108113
this.bytesSent = bytesSent;
@@ -113,6 +118,11 @@ public WebRequestTracer setBytesSent(int bytesSent) {
113118

114119
@Override
115120
public WebRequestTracer setBytesReceived(int bytesReceived) {
121+
return setBytesReceived((long) bytesReceived);
122+
}
123+
124+
@Override
125+
public WebRequestTracer setBytesReceived(long bytesReceived) {
116126
synchronized (lockObject) {
117127
if (!isStopped()) {
118128
this.bytesReceived = bytesReceived;
@@ -201,11 +211,11 @@ public int getEndSequenceNo() {
201211
return endSequenceNo;
202212
}
203213

204-
public int getBytesSent() {
214+
public long getBytesSent() {
205215
return bytesSent;
206216
}
207217

208-
public int getBytesReceived() {
218+
public long getBytesReceived() {
209219
return bytesReceived;
210220
}
211221

src/main/java/com/dynatrace/openkit/protocol/Beacon.java

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1267,6 +1267,20 @@ private void addKeyValuePairIfNotNegative(StringBuilder builder, String key, int
12671267
}
12681268
}
12691269

1270+
/**
1271+
* Serialization helper method for adding key/value pairs with int values
1272+
*
1273+
* the key value pair is only added to the string builder when the int is not negative
1274+
*
1275+
* @param builder The string builder storing serialized data.
1276+
* @param key The key to add.
1277+
* @param longValue The value to add.
1278+
*/
1279+
private void addKeyValuePairIfNotNegative(StringBuilder builder, String key, long longValue) {
1280+
if (longValue >= 0) {
1281+
addKeyValuePair(builder, key, longValue);
1282+
}
1283+
}
12701284

12711285
/**
12721286
* Serialization helper method for adding key/value pairs with double values

src/test/java/com/dynatrace/openkit/core/objects/NullWebRequestTracerTest.java

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,19 @@ public void setBytesSentReturnsSelf() {
5151
assertThat((NullWebRequestTracer)obtained, is(sameInstance(target)));
5252
}
5353

54+
@Test
55+
public void setBytesSentLongReturnsSelf() {
56+
// given
57+
NullWebRequestTracer target = NullWebRequestTracer.INSTANCE;
58+
59+
// when
60+
WebRequestTracer obtained = target.setBytesSent(37L);
61+
62+
// then
63+
assertThat(obtained, instanceOf(NullWebRequestTracer.class));
64+
assertThat((NullWebRequestTracer)obtained, is(sameInstance(target)));
65+
}
66+
5467
@Test
5568
public void setBytesReceivedReturnsSelf() {
5669
// given
@@ -64,6 +77,19 @@ public void setBytesReceivedReturnsSelf() {
6477
assertThat((NullWebRequestTracer)obtained, is(sameInstance(target)));
6578
}
6679

80+
@Test
81+
public void setBytesReceivedLongReturnsSelf() {
82+
// given
83+
NullWebRequestTracer target = NullWebRequestTracer.INSTANCE;
84+
85+
// when
86+
WebRequestTracer obtained = target.setBytesReceived(73L);
87+
88+
// then
89+
assertThat(obtained, instanceOf(NullWebRequestTracer.class));
90+
assertThat((NullWebRequestTracer)obtained, is(sameInstance(target)));
91+
}
92+
6793
@Test
6894
public void startReturnsSelf() {
6995
// given

src/test/java/com/dynatrace/openkit/core/objects/WebRequestTracerBaseImplTest.java

Lines changed: 63 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -71,8 +71,8 @@ public void defaultValues() {
7171
assertThat(target.getEndTime(), is(-1L));
7272
assertThat(target.getStartSequenceNo(), is(SEQUENCE_NUMBER));
7373
assertThat(target.getEndSequenceNo(), is(-1));
74-
assertThat(target.getBytesSent(), is(-1));
75-
assertThat(target.getBytesReceived(), is(-1));
74+
assertThat(target.getBytesSent(), is(-1L));
75+
assertThat(target.getBytesReceived(), is(-1L));
7676
assertThat(target.getParent(), is(sameInstance(parentOpenKitObject)));
7777

7878
// and verify that the sequence number was retrieved from beacon, as well as the tag
@@ -158,7 +158,21 @@ public void setBytesSentSetsTheNumberOfSentBytes() {
158158
WebRequestTracer obtained = target.setBytesSent(1234);
159159

160160
// then
161-
assertThat(target.getBytesSent(), is(1234));
161+
assertThat(target.getBytesSent(), is(1234L));
162+
assertThat(obtained, is(sameInstance((WebRequestTracer)target)));
163+
}
164+
165+
@Test
166+
public void setBytesSentLongSetsTheNumberOfSentBytes() {
167+
168+
// given
169+
WebRequestTracerBaseImpl target = new TestWebRequestTracerBaseImpl(logger, parentOpenKitObject, mockBeacon);
170+
171+
// when setting the sent bytes
172+
WebRequestTracer obtained = target.setBytesSent(1234L);
173+
174+
// then
175+
assertThat(target.getBytesSent(), is(1234L));
162176
assertThat(obtained, is(sameInstance((WebRequestTracer)target)));
163177
}
164178

@@ -173,7 +187,22 @@ public void setBytesSentDoesNotSetAnythingIfStoppedWithResponseCode() {
173187
WebRequestTracer obtained = target.setBytesSent(1234);
174188

175189
// then
176-
assertThat(target.getBytesSent(), is(-1));
190+
assertThat(target.getBytesSent(), is(-1L));
191+
assertThat(obtained, is(sameInstance((WebRequestTracer)target)));
192+
}
193+
194+
@Test
195+
public void setBytesSentLongDoesNotSetAnythingIfStoppedWithResponseCode() {
196+
197+
// given
198+
WebRequestTracerBaseImpl target = new TestWebRequestTracerBaseImpl(logger, parentOpenKitObject, mockBeacon);
199+
target.stop(200);
200+
201+
// when setting the sent bytes
202+
WebRequestTracer obtained = target.setBytesSent(1234L);
203+
204+
// then
205+
assertThat(target.getBytesSent(), is(-1L));
177206
assertThat(obtained, is(sameInstance((WebRequestTracer)target)));
178207
}
179208

@@ -187,7 +216,21 @@ public void setBytesReceivedSetsTheNumberOfReceivedBytes() {
187216
WebRequestTracer obtained = target.setBytesReceived(4321);
188217

189218
// then
190-
assertThat(target.getBytesReceived(), is(4321));
219+
assertThat(target.getBytesReceived(), is(4321L));
220+
assertThat(obtained, is(sameInstance((WebRequestTracer)target)));
221+
}
222+
223+
@Test
224+
public void setBytesReceivedLongSetsTheNumberOfReceivedBytes() {
225+
226+
// given
227+
WebRequestTracerBaseImpl target = new TestWebRequestTracerBaseImpl(logger, parentOpenKitObject, mockBeacon);
228+
229+
// when setting the received bytes
230+
WebRequestTracer obtained = target.setBytesReceived(4321L);
231+
232+
// then
233+
assertThat(target.getBytesReceived(), is(4321L));
191234
assertThat(obtained, is(sameInstance((WebRequestTracer)target)));
192235
}
193236

@@ -201,7 +244,21 @@ public void setBytesReceivedDoesNotSetAnythingIfStoppedWithResponseCode() {
201244
WebRequestTracer obtained = target.setBytesReceived(4321);
202245

203246
// then
204-
assertThat(target.getBytesReceived(), is(-1));
247+
assertThat(target.getBytesReceived(), is(-1L));
248+
assertThat(obtained, is(sameInstance((WebRequestTracer)target)));
249+
}
250+
251+
@Test
252+
public void setBytesReceivedLongDoesNotSetAnythingIfStoppedWithResponseCode() {
253+
// given
254+
WebRequestTracerBaseImpl target = new TestWebRequestTracerBaseImpl(logger, parentOpenKitObject, mockBeacon);
255+
target.stop(200);
256+
257+
// when setting the received bytes
258+
WebRequestTracer obtained = target.setBytesReceived(4321L);
259+
260+
// then
261+
assertThat(target.getBytesReceived(), is(-1L));
205262
assertThat(obtained, is(sameInstance((WebRequestTracer)target)));
206263
}
207264

0 commit comments

Comments
 (0)