Skip to content

Commit f0d870f

Browse files
authored
Add @Nullable to the parameter of equals(Object) (#2093)
Motivation: `Object.equals(Object)` accepts `null`, but many of our `equals()` implementations do not have `@Nullable` annotation on their parameters. Modifications: - Add `@Nullable` to the parameter of `equals(Object)` Result: - Better `null`-related inference
1 parent df3fde1 commit f0d870f

File tree

59 files changed

+104
-60
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

59 files changed

+104
-60
lines changed

CONTRIBUTING.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -212,7 +212,7 @@ public final class MyClass {
212212
}
213213

214214
@Override
215-
public boolean equals(Object obj) {
215+
public boolean equals(@Nullable Object obj) {
216216
... usual type check ...
217217
// OK
218218
return name.equals(((MyClass) obj).name);

core/src/main/java/com/linecorp/armeria/client/ClientDecoration.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,8 @@
2020
import java.util.List;
2121
import java.util.function.Function;
2222

23+
import javax.annotation.Nullable;
24+
2325
import com.linecorp.armeria.common.Request;
2426
import com.linecorp.armeria.common.Response;
2527

@@ -113,7 +115,7 @@ Function<Client<I, O>, Client<I, O>> decorator() {
113115
}
114116

115117
@Override
116-
public boolean equals(Object o) {
118+
public boolean equals(@Nullable Object o) {
117119
if (this == o) {
118120
return true;
119121
}

core/src/main/java/com/linecorp/armeria/client/DefaultEventLoopScheduler.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,8 @@
2929
import java.util.concurrent.atomic.AtomicLongFieldUpdater;
3030
import java.util.function.ToIntFunction;
3131

32+
import javax.annotation.Nullable;
33+
3234
import org.slf4j.Logger;
3335
import org.slf4j.LoggerFactory;
3436

@@ -262,7 +264,7 @@ public int hashCode() {
262264
}
263265

264266
@Override
265-
public boolean equals(Object obj) {
267+
public boolean equals(@Nullable Object obj) {
266268
if (this == obj) {
267269
return true;
268270
}

core/src/main/java/com/linecorp/armeria/client/Endpoint.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -643,7 +643,7 @@ private static void validateWeight(int weight) {
643643
}
644644

645645
@Override
646-
public boolean equals(Object obj) {
646+
public boolean equals(@Nullable Object obj) {
647647
if (this == obj) {
648648
return true;
649649
}

core/src/main/java/com/linecorp/armeria/client/HttpChannelPool.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -551,7 +551,7 @@ static final class PoolKey {
551551
}
552552

553553
@Override
554-
public boolean equals(Object o) {
554+
public boolean equals(@Nullable Object o) {
555555
if (this == o) {
556556
return true;
557557
}

core/src/main/java/com/linecorp/armeria/client/circuitbreaker/EventCount.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@
1616

1717
package com.linecorp.armeria.client.circuitbreaker;
1818

19+
import javax.annotation.Nullable;
20+
1921
/**
2022
* An immutable object that stores the count of events.
2123
*/
@@ -99,7 +101,7 @@ public int hashCode() {
99101
}
100102

101103
@Override
102-
public boolean equals(Object o) {
104+
public boolean equals(@Nullable Object o) {
103105
if (this == o) {
104106
return true;
105107
}

core/src/main/java/com/linecorp/armeria/client/endpoint/dns/DnsQuestionWithoutTrailingDot.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@
1919

2020
import java.net.IDN;
2121

22+
import javax.annotation.Nullable;
23+
2224
import io.netty.handler.codec.dns.DnsQuestion;
2325
import io.netty.handler.codec.dns.DnsRecordType;
2426

@@ -56,7 +58,7 @@ public long timeToLive() {
5658
}
5759

5860
@Override
59-
public boolean equals(Object o) {
61+
public boolean equals(@Nullable Object o) {
6062
if (this == o) {
6163
return true;
6264
}

core/src/main/java/com/linecorp/armeria/common/AbstractHttpData.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@
1616

1717
package com.linecorp.armeria.common;
1818

19+
import javax.annotation.Nullable;
20+
1921
/**
2022
* Support APIs for creating well-behaved {@link HttpData} objects. {@link HttpData} generally should extend
2123
* {@link AbstractHttpData} to interact with other {@link HttpData} implementations, via, e.g., {@code equals}.
@@ -37,7 +39,7 @@ public int hashCode() {
3739
}
3840

3941
@Override
40-
public boolean equals(Object obj) {
42+
public boolean equals(@Nullable Object obj) {
4143
if (!(obj instanceof AbstractHttpData)) {
4244
return false;
4345
}

core/src/main/java/com/linecorp/armeria/common/AbstractRequestContext.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,8 @@
2626
import java.util.function.Consumer;
2727
import java.util.function.Function;
2828

29+
import javax.annotation.Nullable;
30+
2931
import com.linecorp.armeria.common.util.SafeCloseable;
3032
import com.linecorp.armeria.server.DefaultServiceRequestContext;
3133

@@ -195,7 +197,7 @@ public final int hashCode() {
195197
}
196198

197199
@Override
198-
public final boolean equals(Object obj) {
200+
public final boolean equals(@Nullable Object obj) {
199201
return super.equals(obj);
200202
}
201203
}

core/src/main/java/com/linecorp/armeria/common/CacheControl.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@
1515
*/
1616
package com.linecorp.armeria.common;
1717

18+
import javax.annotation.Nullable;
19+
1820
/**
1921
* Directives for HTTP caching mechanisms in requests or responses. Use {@link ServerCacheControl} for
2022
* response-side and {@link ClientCacheControl} for request-side.
@@ -115,7 +117,7 @@ final StringBuilder newHeaderValueBuffer() {
115117
}
116118

117119
@Override
118-
public boolean equals(Object o) {
120+
public boolean equals(@Nullable Object o) {
119121
if (this == o) {
120122
return true;
121123
}

core/src/main/java/com/linecorp/armeria/common/ClientCacheControl.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -244,7 +244,7 @@ public String asHeaderValue() {
244244
}
245245

246246
@Override
247-
public boolean equals(Object o) {
247+
public boolean equals(@Nullable Object o) {
248248
if (!super.equals(o)) {
249249
return false;
250250
}

core/src/main/java/com/linecorp/armeria/common/DefaultAggregatedHttpRequest.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@
1616

1717
package com.linecorp.armeria.common;
1818

19+
import javax.annotation.Nullable;
20+
1921
import com.google.common.base.MoreObjects;
2022
import com.google.common.base.MoreObjects.ToStringHelper;
2123

@@ -64,7 +66,7 @@ public int hashCode() {
6466
}
6567

6668
@Override
67-
public boolean equals(Object obj) {
69+
public boolean equals(@Nullable Object obj) {
6870
if (this == obj) {
6971
return true;
7072
}

core/src/main/java/com/linecorp/armeria/common/DefaultAggregatedHttpResponse.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@
1818

1919
import java.util.List;
2020

21+
import javax.annotation.Nullable;
22+
2123
import com.google.common.base.MoreObjects;
2224
import com.google.common.base.MoreObjects.ToStringHelper;
2325

@@ -59,7 +61,7 @@ public int hashCode() {
5961
}
6062

6163
@Override
62-
public boolean equals(Object obj) {
64+
public boolean equals(@Nullable Object obj) {
6365
if (this == obj) {
6466
return true;
6567
}

core/src/main/java/com/linecorp/armeria/common/DefaultHttpHeaders.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ public HttpHeadersBuilder toBuilder() {
7171
}
7272

7373
@Override
74-
public boolean equals(Object o) {
74+
public boolean equals(@Nullable Object o) {
7575
return o instanceof HttpHeaders && super.equals(o);
7676
}
7777
}

core/src/main/java/com/linecorp/armeria/common/DefaultRequestHeaders.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ public RequestHeadersBuilder toBuilder() {
6464
}
6565

6666
@Override
67-
public boolean equals(Object o) {
67+
public boolean equals(@Nullable Object o) {
6868
return o instanceof RequestHeaders && super.equals(o);
6969
}
7070
}

core/src/main/java/com/linecorp/armeria/common/DefaultResponseHeaders.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ public ResponseHeadersBuilder toBuilder() {
4747
}
4848

4949
@Override
50-
public boolean equals(Object o) {
50+
public boolean equals(@Nullable Object o) {
5151
return o instanceof ResponseHeaders && super.equals(o);
5252
}
5353
}

core/src/main/java/com/linecorp/armeria/common/DefaultRpcRequest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,7 @@ public int hashCode() {
115115
}
116116

117117
@Override
118-
public boolean equals(Object obj) {
118+
public boolean equals(@Nullable Object obj) {
119119
if (this == obj) {
120120
return true;
121121
}

core/src/main/java/com/linecorp/armeria/common/HttpHeadersBase.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -960,7 +960,7 @@ public final int hashCode() {
960960
}
961961

962962
@Override
963-
public boolean equals(Object o) {
963+
public boolean equals(@Nullable Object o) {
964964
if (this == o) {
965965
return true;
966966
}
@@ -1142,7 +1142,7 @@ public int hashCode() {
11421142
}
11431143

11441144
@Override
1145-
public boolean equals(Object o) {
1145+
public boolean equals(@Nullable Object o) {
11461146
if (this == o) {
11471147
return true;
11481148
}

core/src/main/java/com/linecorp/armeria/common/ImmutableHttpParameters.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,8 @@
2323
import java.util.Map.Entry;
2424
import java.util.Set;
2525

26+
import javax.annotation.Nullable;
27+
2628
import io.netty.handler.codec.Headers;
2729

2830
final class ImmutableHttpParameters implements HttpParameters {
@@ -510,7 +512,7 @@ public int hashCode() {
510512

511513
@Override
512514
@SuppressWarnings("EqualsWhichDoesntCheckParameterClass")
513-
public boolean equals(Object obj) {
515+
public boolean equals(@Nullable Object obj) {
514516
return delegate.equals(obj);
515517
}
516518

core/src/main/java/com/linecorp/armeria/common/Scheme.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -145,7 +145,7 @@ public int hashCode() {
145145
}
146146

147147
@Override
148-
public boolean equals(Object obj) {
148+
public boolean equals(@Nullable Object obj) {
149149
return this == obj;
150150
}
151151

core/src/main/java/com/linecorp/armeria/common/SerializationFormat.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -324,7 +324,7 @@ public int hashCode() {
324324
}
325325

326326
@Override
327-
public boolean equals(Object obj) {
327+
public boolean equals(@Nullable Object obj) {
328328
return this == obj;
329329
}
330330

core/src/main/java/com/linecorp/armeria/common/SerializationFormatProvider.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,8 @@
2020

2121
import java.util.Set;
2222

23+
import javax.annotation.Nullable;
24+
2325
import com.google.common.base.Ascii;
2426
import com.google.common.base.MoreObjects;
2527
import com.google.common.collect.ImmutableList;
@@ -55,7 +57,7 @@ public Entry(String uriText, MediaType primaryMediaType, MediaType... alternativ
5557
}
5658

5759
@Override
58-
public boolean equals(Object obj) {
60+
public boolean equals(@Nullable Object obj) {
5961
if (this == obj) {
6062
return true;
6163
}

core/src/main/java/com/linecorp/armeria/common/ServerCacheControl.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -226,7 +226,7 @@ public String asHeaderValue() {
226226
}
227227

228228
@Override
229-
public boolean equals(Object o) {
229+
public boolean equals(@Nullable Object o) {
230230
if (!super.equals(o)) {
231231
return false;
232232
}

core/src/main/java/com/linecorp/armeria/common/logging/RequestLogAvailabilitySet.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,8 @@
2323
import java.util.List;
2424
import java.util.Set;
2525

26+
import javax.annotation.Nullable;
27+
2628
import com.google.common.collect.Iterators;
2729
import com.google.common.math.IntMath;
2830

@@ -103,7 +105,7 @@ public boolean contains(Object e) {
103105
}
104106

105107
@Override
106-
public boolean equals(Object o) {
108+
public boolean equals(@Nullable Object o) {
107109
return this == o;
108110
}
109111

core/src/main/java/com/linecorp/armeria/common/metric/MeterIdPrefix.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,8 @@
2424
import java.util.Collection;
2525
import java.util.List;
2626

27+
import javax.annotation.Nullable;
28+
2729
import com.google.common.collect.ImmutableList;
2830
import com.google.common.collect.Lists;
2931

@@ -207,7 +209,7 @@ public int hashCode() {
207209
}
208210

209211
@Override
210-
public boolean equals(Object obj) {
212+
public boolean equals(@Nullable Object obj) {
211213
if (this == obj) {
212214
return true;
213215
}

core/src/main/java/com/linecorp/armeria/common/sse/DefaultServerSentEvent.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@ public int hashCode() {
9191
}
9292

9393
@Override
94-
public boolean equals(Object obj) {
94+
public boolean equals(@Nullable Object obj) {
9595
if (this == obj) {
9696
return true;
9797
}

core/src/main/java/com/linecorp/armeria/internal/PathAndQuery.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -157,7 +157,7 @@ public String query() {
157157
}
158158

159159
@Override
160-
public boolean equals(Object o) {
160+
public boolean equals(@Nullable Object o) {
161161
if (this == o) {
162162
return true;
163163
}

core/src/main/java/com/linecorp/armeria/internal/annotation/AnnotatedBeanFactoryRegistry.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -300,7 +300,7 @@ Class<?> type() {
300300
}
301301

302302
@Override
303-
public boolean equals(Object o) {
303+
public boolean equals(@Nullable Object o) {
304304
if (this == o) {
305305
return true;
306306
}

core/src/main/java/com/linecorp/armeria/server/ClientAddressSource.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,8 @@
2020

2121
import java.util.List;
2222

23+
import javax.annotation.Nullable;
24+
2325
import com.google.common.base.MoreObjects;
2426
import com.google.common.collect.ImmutableList;
2527

@@ -89,7 +91,7 @@ boolean isProxyProtocol() {
8991
}
9092

9193
@Override
92-
public boolean equals(Object o) {
94+
public boolean equals(@Nullable Object o) {
9395
if (this == o) {
9496
return true;
9597
}

0 commit comments

Comments
 (0)