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

Commit 374b052

Browse files
authored
Merge pull request #35 from netty/more-examples
Port over more Netty examples
2 parents bf80061 + d98e80b commit 374b052

23 files changed

+3530
-274
lines changed

Dockerfile

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
FROM fedora:33
33
RUN dnf -y install file findutils unzip zip libXtst-devel libXt-devel libXrender-devel libXrandr-devel \
44
libXi-devel cups-devel fontconfig-devel alsa-lib-devel make autoconf diffutils git clang \
5-
java-latest-openjdk-devel
5+
java-latest-openjdk-devel automake libtool
66

77
# Build panama-foreign openjdk
88
WORKDIR /home/build
@@ -24,7 +24,7 @@ ENV PATH=/home/build/apache-maven-3.6.3/bin:$PATH
2424
# Prepare a snapshot of Netty 5
2525
RUN git clone -b master https://github.com/netty/netty.git netty
2626
WORKDIR /home/build/netty
27-
RUN mvn install -DskipTests -T1C -B -am -pl buffer,handler
27+
RUN mvn install -DskipTests -T1C -B -am
2828
WORKDIR /home/build
2929

3030
# Prepare our own build

pom.xml

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -394,12 +394,25 @@
394394
<version>${netty.build.version}</version>
395395
<scope>test</scope>
396396
</dependency>
397+
<dependency>
398+
<groupId>io.netty</groupId>
399+
<artifactId>netty-buffer</artifactId>
400+
<version>${netty.version}</version>
401+
<type>test-jar</type>
402+
<scope>test</scope>
403+
</dependency>
397404
<dependency>
398405
<groupId>io.netty</groupId>
399406
<artifactId>netty-handler</artifactId>
400407
<version>${netty.version}</version>
401408
<scope>test</scope>
402409
</dependency>
410+
<dependency>
411+
<groupId>io.netty</groupId>
412+
<artifactId>netty-codec-http</artifactId>
413+
<version>${netty.version}</version>
414+
<scope>test</scope>
415+
</dependency>
403416
<dependency>
404417
<groupId>org.openjdk.jmh</groupId>
405418
<artifactId>jmh-core</artifactId>

src/main/java/io/netty/buffer/api/CompositeBuffer.java

Lines changed: 24 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -877,7 +877,7 @@ public byte readByte() {
877877

878878
@Override
879879
public byte getByte(int roff) {
880-
return prepRead(roff, Byte.BYTES).getByte(subOffset);
880+
return prepGet(roff, Byte.BYTES).getByte(subOffset);
881881
}
882882

883883
@Override
@@ -887,7 +887,7 @@ public int readUnsignedByte() {
887887

888888
@Override
889889
public int getUnsignedByte(int roff) {
890-
return prepRead(roff, Byte.BYTES).getUnsignedByte(subOffset);
890+
return prepGet(roff, Byte.BYTES).getUnsignedByte(subOffset);
891891
}
892892

893893
@Override
@@ -921,7 +921,7 @@ public char readChar() {
921921

922922
@Override
923923
public char getChar(int roff) {
924-
return prepRead(roff, 2).getChar(subOffset);
924+
return prepGet(roff, 2).getChar(subOffset);
925925
}
926926

927927
@Override
@@ -943,7 +943,7 @@ public short readShort() {
943943

944944
@Override
945945
public short getShort(int roff) {
946-
return prepRead(roff, Short.BYTES).getShort(subOffset);
946+
return prepGet(roff, Short.BYTES).getShort(subOffset);
947947
}
948948

949949
@Override
@@ -953,7 +953,7 @@ public int readUnsignedShort() {
953953

954954
@Override
955955
public int getUnsignedShort(int roff) {
956-
return prepRead(roff, Short.BYTES).getUnsignedShort(subOffset);
956+
return prepGet(roff, Short.BYTES).getUnsignedShort(subOffset);
957957
}
958958

959959
@Override
@@ -987,7 +987,7 @@ public int readMedium() {
987987

988988
@Override
989989
public int getMedium(int roff) {
990-
return prepRead(roff, 3).getMedium(subOffset);
990+
return prepGet(roff, 3).getMedium(subOffset);
991991
}
992992

993993
@Override
@@ -997,7 +997,7 @@ public int readUnsignedMedium() {
997997

998998
@Override
999999
public int getUnsignedMedium(int roff) {
1000-
return prepRead(roff, 3).getMedium(subOffset);
1000+
return prepGet(roff, 3).getMedium(subOffset);
10011001
}
10021002

10031003
@Override
@@ -1031,7 +1031,7 @@ public int readInt() {
10311031

10321032
@Override
10331033
public int getInt(int roff) {
1034-
return prepRead(roff, Integer.BYTES).getInt(subOffset);
1034+
return prepGet(roff, Integer.BYTES).getInt(subOffset);
10351035
}
10361036

10371037
@Override
@@ -1041,7 +1041,7 @@ public long readUnsignedInt() {
10411041

10421042
@Override
10431043
public long getUnsignedInt(int roff) {
1044-
return prepRead(roff, Integer.BYTES).getUnsignedInt(subOffset);
1044+
return prepGet(roff, Integer.BYTES).getUnsignedInt(subOffset);
10451045
}
10461046

10471047
@Override
@@ -1075,7 +1075,7 @@ public float readFloat() {
10751075

10761076
@Override
10771077
public float getFloat(int roff) {
1078-
return prepRead(roff, Float.BYTES).getFloat(subOffset);
1078+
return prepGet(roff, Float.BYTES).getFloat(subOffset);
10791079
}
10801080

10811081
@Override
@@ -1097,7 +1097,7 @@ public long readLong() {
10971097

10981098
@Override
10991099
public long getLong(int roff) {
1100-
return prepRead(roff, Long.BYTES).getLong(subOffset);
1100+
return prepGet(roff, Long.BYTES).getLong(subOffset);
11011101
}
11021102

11031103
@Override
@@ -1119,7 +1119,7 @@ public double readDouble() {
11191119

11201120
@Override
11211121
public double getDouble(int roff) {
1122-
return prepRead(roff, Double.BYTES).getDouble(subOffset);
1122+
return prepGet(roff, Double.BYTES).getDouble(subOffset);
11231123
}
11241124

11251125
@Override
@@ -1242,6 +1242,17 @@ private void checkReadBounds(int index, int size) {
12421242
}
12431243
}
12441244

1245+
private BufferAccessors prepGet(int index, int size) {
1246+
checkGetBounds(index, size);
1247+
return chooseBuffer(index, size);
1248+
}
1249+
1250+
private void checkGetBounds(int index, int size) {
1251+
if (index < 0 || capacity < index + size) {
1252+
throw indexOutOfBounds(index, false);
1253+
}
1254+
}
1255+
12451256
private BufferAccessors prepWrite(int size) {
12461257
var buf = prepWrite(woff, size);
12471258
woff += size;
@@ -1268,7 +1279,7 @@ private RuntimeException indexOutOfBounds(int index, boolean write) {
12681279
}
12691280
return new IndexOutOfBoundsException(
12701281
"Index " + index + " is out of bounds: [read 0 to " + woff + ", write 0 to " +
1271-
(capacity - 1) + "].");
1282+
capacity + "].");
12721283
}
12731284

12741285
private static IllegalStateException bufferIsClosed() {

src/main/java/io/netty/buffer/api/LifecycleTracer.java

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -83,10 +83,12 @@ void acquire(int acquires) {
8383
}
8484

8585
void addTrace(Trace trace) {
86-
if (traces.size() == MAX_TRACE_POINTS) {
87-
traces.pollFirst();
86+
synchronized (traces) {
87+
if (traces.size() == MAX_TRACE_POINTS) {
88+
traces.pollFirst();
89+
}
90+
traces.addLast(trace);
8891
}
89-
traces.addLast(trace);
9092
}
9193

9294
@Override
@@ -118,9 +120,11 @@ public T transferOwnership(Drop<T> drop) {
118120

119121
@Override
120122
<E extends Throwable> E attachTrace(E throwable) {
121-
long timestamp = System.nanoTime();
122-
for (Trace trace : traces) {
123-
trace.attach(throwable, timestamp);
123+
synchronized (traces) {
124+
long timestamp = System.nanoTime();
125+
for (Trace trace : traces) {
126+
trace.attach(throwable, timestamp);
127+
}
124128
}
125129
return throwable;
126130
}

0 commit comments

Comments
 (0)