apple / servicetalk
Duplication

Places in code with 6 or more lines that are exactly the same.

Intro
  • For duplication, we look at places in code where there are 6 or more lines of code that are exactly the same.
  • Before duplication is calculated, the code is cleaned to remove empty lines, comments, and frequently duplicated constructs such as imports.
  • You should aim at having as little as possible (<5%) of duplicated code as high-level of duplication can lead to maintenance difficulties, poor factoring, and logical contradictions.
Learn more...
Duplication Overall
  • 13% duplication:
    • 68,240 cleaned lines of cleaned code (without empty lines, comments, and frequently duplicated constructs such as imports)
    • 9,471 duplicated lines
  • 1,834 duplicates
system13% (9,471 lines)
Duplication per Extension
java13% (9,217 lines)
proto71% (254 lines)
Duplication per Component (primary)
servicetalk-concurrent-api19% (3,108 lines)
servicetalk-http-api16% (1,940 lines)
servicetalk-buffer-netty46% (981 lines)
servicetalk-grpc-api18% (556 lines)
servicetalk-http-netty6% (482 lines)
servicetalk-http-utils24% (302 lines)
servicetalk-examples71% (254 lines)
servicetalk-buffer-api10% (207 lines)
servicetalk-http-router-jersey4% (205 lines)
servicetalk-grpc-utils66% (186 lines)
servicetalk-transport-api11% (151 lines)
servicetalk-transport-netty-internal3% (124 lines)
servicetalk-data-jackson22% (116 lines)
servicetalk-client-api-internal18% (107 lines)
servicetalk-grpc-protoc6% (96 lines)
servicetalk-concurrent-internal7% (74 lines)
servicetalk-encoding-netty12% (72 lines)
servicetalk-benchmarks6% (53 lines)
servicetalk-dns-discovery-netty5% (51 lines)
servicetalk-concurrent-reactivestreams45% (36 lines)
servicetalk-serializer-utils12% (36 lines)
servicetalk-logging-slf4j-internal17% (36 lines)
servicetalk-concurrent-jdkflow47% (34 lines)
servicetalk-opentracing-zipkin-publisher9% (34 lines)
servicetalk-client-api6% (30 lines)
servicetalk-grpc-protobuf8% (25 lines)
servicetalk-grpc-netty6% (25 lines)
servicetalk-serialization-api5% (23 lines)
servicetalk-loadbalancer3% (19 lines)
servicetalk-concurrent-api-internal6% (19 lines)
servicetalk-http-router-jersey-internal12% (16 lines)
servicetalk-log4j2-mdc-utils6% (14 lines)
servicetalk-opentracing-http5% (12 lines)
servicetalk-data-protobuf7% (10 lines)
servicetalk-tcp-netty-internal1% (9 lines)
servicetalk-serializer-api12% (9 lines)
servicetalk-opentracing-inmemory<1% (7 lines)
servicetalk-http-security-jersey3% (6 lines)
servicetalk-http-router-predicate1% (6 lines)
ROOT0% (0 lines)
docker0% (0 lines)
servicetalk-annotations0% (0 lines)
servicetalk-concurrent0% (0 lines)
servicetalk-context-api0% (0 lines)
servicetalk-data-jackson-jersey0% (0 lines)
servicetalk-encoding-api-internal0% (0 lines)
servicetalk-encoding-api0% (0 lines)
servicetalk-gradle-plugin-internal0% (0 lines)
servicetalk-grpc-internal0% (0 lines)
servicetalk-log4j2-mdc0% (0 lines)
servicetalk-logging-api0% (0 lines)
servicetalk-oio-api-internal0% (0 lines)
servicetalk-oio-api0% (0 lines)
servicetalk-opentracing-asynccontext0% (0 lines)
servicetalk-opentracing-inmemory-api0% (0 lines)
servicetalk-opentracing-internal0% (0 lines)
servicetalk-opentracing-log4j20% (0 lines)
servicetalk-router-api0% (0 lines)
servicetalk-router-utils-internal0% (0 lines)
servicetalk-transport-netty0% (0 lines)
servicetalk-utils-internal0% (0 lines)

Duplication Between Components (50+ lines)

G servicetalk-http-api servicetalk-http-api servicetalk-http-netty servicetalk-http-netty servicetalk-http-api--servicetalk-http-netty 646 servicetalk-transport-api servicetalk-transport-api servicetalk-http-api--servicetalk-transport-api 233 servicetalk-http-utils servicetalk-http-utils servicetalk-http-api--servicetalk-http-utils 132 servicetalk-logging-slf4j-internal servicetalk-logging-slf4j-internal servicetalk-http-api--servicetalk-logging-slf4j-internal 84 servicetalk-http-security-jersey servicetalk-http-security-jersey servicetalk-http-api--servicetalk-http-security-jersey 84 servicetalk-http-router-jersey servicetalk-http-router-jersey servicetalk-http-api--servicetalk-http-router-jersey 52 servicetalk-serialization-api servicetalk-serialization-api servicetalk-http-api--servicetalk-serialization-api 50 servicetalk-http-netty--servicetalk-http-utils 170 servicetalk-http-netty--servicetalk-transport-api 103 servicetalk-opentracing-zipkin-publisher servicetalk-opentracing-zipkin-publisher servicetalk-http-netty--servicetalk-opentracing-zipkin-publisher 54 servicetalk-transport-netty-internal servicetalk-transport-netty-internal servicetalk-http-netty--servicetalk-transport-netty-internal 52 servicetalk-loadbalancer servicetalk-loadbalancer servicetalk-http-netty--servicetalk-loadbalancer 52 servicetalk-buffer-api servicetalk-buffer-api servicetalk-buffer-netty servicetalk-buffer-netty servicetalk-buffer-api--servicetalk-buffer-netty 375 servicetalk-grpc-utils servicetalk-grpc-utils servicetalk-grpc-utils--servicetalk-http-utils 370 servicetalk-grpc-api servicetalk-grpc-api servicetalk-grpc-api--servicetalk-http-api 350 servicetalk-grpc-api--servicetalk-http-netty 150 servicetalk-grpc-api--servicetalk-transport-api 112 servicetalk-grpc-api--servicetalk-http-utils 88 servicetalk-grpc-api--servicetalk-opentracing-zipkin-publisher 72 servicetalk-grpc-api--servicetalk-transport-netty-internal 60 servicetalk-grpc-api--servicetalk-loadbalancer 60 servicetalk-http-router-predicate servicetalk-http-router-predicate servicetalk-grpc-api--servicetalk-http-router-predicate 60 servicetalk-concurrent-api servicetalk-concurrent-api servicetalk-concurrent-api--servicetalk-http-api 301 servicetalk-concurrent-api--servicetalk-http-netty 81 servicetalk-concurrent-api--servicetalk-transport-api 78 servicetalk-concurrent-api--servicetalk-grpc-api 60 servicetalk-transport-api--servicetalk-transport-netty-internal 158 servicetalk-client-api servicetalk-client-api servicetalk-client-api--servicetalk-http-api 138 servicetalk-client-api--servicetalk-concurrent-api 78 servicetalk-concurrent-internal servicetalk-concurrent-internal servicetalk-concurrent-internal--servicetalk-http-api 84 servicetalk-concurrent-jdkflow servicetalk-concurrent-jdkflow servicetalk-concurrent-reactivestreams servicetalk-concurrent-reactivestreams servicetalk-concurrent-jdkflow--servicetalk-concurrent-reactivestreams 69

Download: SVG DOT (open online Graphviz editor)

Open 3D force graph...

Show more details on duplication between components...
Longest Duplicates
The list of 20 longest duplicates.
See data for all 1,834 duplicates...
Size#FoldersFilesLinesCode
140 x 2 servicetalk-buffer-api/s.../servicetalk/buffer/api
servicetalk-buffer-netty...ervicetalk/buffer/netty
ReadOnlyByteBuffer.java
ReadOnlyBuffer.java
153:384 (50%)
81:312 (69%)
view
106 x 2 servicetalk-buffer-netty...ervicetalk/buffer/netty
servicetalk-buffer-netty...ervicetalk/buffer/netty
NettyBuffer.java
WrappedBuffer.java
44:215 (19%)
36:207 (21%)
view
66 x 2 servicetalk-buffer-netty...ervicetalk/buffer/netty
servicetalk-buffer-netty...ervicetalk/buffer/netty
NettyBuffer.java
WrappedBuffer.java
542:639 (12%)
501:598 (13%)
view
62 x 2 servicetalk-buffer-netty...ervicetalk/buffer/netty
servicetalk-buffer-netty...ervicetalk/buffer/netty
NettyBuffer.java
WrappedBuffer.java
401:502 (11%)
367:468 (12%)
view
62 x 2 servicetalk-buffer-netty...ervicetalk/buffer/netty
servicetalk-buffer-netty...ervicetalk/buffer/netty
NettyBuffer.java
WrappedBuffer.java
245:336 (11%)
231:322 (12%)
view
59 x 2 servicetalk-concurrent-a...vicetalk/concurrent/api
servicetalk-concurrent-a...vicetalk/concurrent/api
CopyOnWriteContextMap.java
CopyOnWriteContextMap.java
1675:1760 (2%)
2177:2262 (2%)
view
41 x 2 servicetalk-data-jackson...ervicetalk/data/jackson
servicetalk-data-jackson...ervicetalk/data/jackson
AbstractJacksonDeserializer.java
JacksonStreamingSerializer.java
176:236 (31%)
313:373 (17%)
view
32 x 2 servicetalk-http-api/src...io/servicetalk/http/api
servicetalk-http-api/src...io/servicetalk/http/api
DefaultHttpStreamingSerializer.java
DefaultHttpStreamingSerializerDeseria...
48:98 (74%)
45:95 (61%)
view
32 x 2 servicetalk-examples/grp...lloworld/src/main/proto
servicetalk-examples/grp...-options/src/main/proto
proto
helloworld.proto
helloworld.proto
1:37 (100%)
1:37 (100%)
view
32 x 2 servicetalk-grpc-utils/s.../servicetalk/grpc/utils
servicetalk-http-utils/s.../servicetalk/http/utils
BiGrpcLifecycleObserver.java
BiHttpLifecycleObserver.java
127:172 (22%)
126:171 (23%)
view
28 x 2 servicetalk-concurrent-a...vicetalk/concurrent/api
servicetalk-concurrent-a...vicetalk/concurrent/api
CopyOnWriteContextMap.java
CopyOnWriteContextMap.java
1278:1318 (1%)
1676:1716 (1%)
view
28 x 2 servicetalk-concurrent-a...vicetalk/concurrent/api
servicetalk-concurrent-a...vicetalk/concurrent/api
CopyOnWriteContextMap.java
CopyOnWriteContextMap.java
1278:1318 (1%)
2178:2218 (1%)
view
27 x 2 servicetalk-concurrent-a...vicetalk/concurrent/api
servicetalk-concurrent-a...vicetalk/concurrent/api
CollectingCompletableSubscriber.java
CollectingPublisherSubscriber.java
49:90 (56%)
56:97 (44%)
view
27 x 2 servicetalk-http-api/src...io/servicetalk/http/api
servicetalk-http-api/src...io/servicetalk/http/api
DefaultSizeAwareClassHttpSerializer.java
DefaultSizeAwareTypeHttpSerializer.java
47:82 (75%)
47:82 (77%)
view
27 x 2 servicetalk-concurrent-a...vicetalk/concurrent/api
servicetalk-concurrent-a...vicetalk/concurrent/api
CancelPropagatingCompletableFuture.java
ContextPreservingCompletableFuture.java
296:336 (11%)
276:316 (12%)
view
27 x 2 servicetalk-http-api/src...io/servicetalk/http/api
servicetalk-http-api/src...io/servicetalk/http/api
DefaultClassHttpSerializer.java
DefaultTypeHttpSerializer.java
42:77 (81%)
43:78 (81%)
view
25 x 2 servicetalk-concurrent-a...vicetalk/concurrent/api
servicetalk-concurrent-a...vicetalk/concurrent/api
ContextPreservingCompletableSubscribe...
ContextPreservingSingleSubscriber.java
88:122 (35%)
91:125 (35%)
view
24 x 2 servicetalk-concurrent-a...vicetalk/concurrent/api
servicetalk-concurrent-a...vicetalk/concurrent/api
CopyOnWriteContextMap.java
NoopAsyncContextProvider.java
245:282 (1%)
165:202 (16%)
view
24 x 2 servicetalk-grpc-utils/s.../servicetalk/grpc/utils
servicetalk-http-utils/s.../servicetalk/http/utils
LoggingGrpcLifecycleObserver.java
LoggingHttpLifecycleObserver.java
150:181 (19%)
140:171 (20%)
view
23 x 2 servicetalk-concurrent-a...vicetalk/concurrent/api
servicetalk-concurrent-a...vicetalk/concurrent/api
ContextPreservingCompletableSubscribe...
ContextPreservingSubscriber.java
61:93 (32%)
115:147 (25%)
view
Duplicated Units
The list of top 20 duplicated units.
See data for all 86 unit duplicates...
Size#FoldersFilesLinesCode
26 x 2 servicetalk-http-api/src...io/servicetalk/http/api
servicetalk-http-api/src...io/servicetalk/http/api
DefaultHttpStreamingSerializer.java
DefaultHttpStreamingSerializerDeseria...
67:99 
64:96 
view
20 x 3 servicetalk-concurrent-a...vicetalk/concurrent/api
servicetalk-concurrent-a...vicetalk/concurrent/api
servicetalk-concurrent-a...vicetalk/concurrent/api
OnErrorMapCompletable.java
OnErrorMapPublisher.java
OnErrorMapSingle.java
59:80 
58:79 
60:81 
view
18 x 2 servicetalk-concurrent-a...vicetalk/concurrent/api
servicetalk-concurrent-a...vicetalk/concurrent/api
TestPublisher.java
TestSingle.java
92:110 
91:109 
view
14 x 2 servicetalk-client-api-i...alk/client/api/internal
servicetalk-client-api-i...alk/client/api/internal
RequestConcurrencyControllerMulti.java
ReservableRequestConcurrencyControlle...
37:51 
37:51 
view
14 x 2 servicetalk-concurrent-a...vicetalk/concurrent/api
servicetalk-concurrent-a...vicetalk/concurrent/api
ContextPreservingCompletableSubscribe...
ContextPreservingSingleSubscriber.java
40:54 
43:57 
view
14 x 2 servicetalk-concurrent-a...vicetalk/concurrent/api
servicetalk-concurrent-a...vicetalk/concurrent/api
ContextPreservingCompletableSubscribe...
ContextPreservingSubscriber.java
67:81 
121:135 
view
14 x 3 servicetalk-concurrent-a...vicetalk/concurrent/api
servicetalk-concurrent-a...vicetalk/concurrent/api
servicetalk-concurrent-a...vicetalk/concurrent/api
ContextPreservingCompletableSubscribe...
ContextPreservingSingleSubscriber.java
ContextPreservingSubscriber.java
94:108 
97:111 
94:108 
view
14 x 2 servicetalk-concurrent-a...vicetalk/concurrent/api
servicetalk-concurrent-a...vicetalk/concurrent/api
TimeoutCompletable.java
TimeoutSingle.java
93:114 
95:116 
view
13 x 2 servicetalk-concurrent-a...vicetalk/concurrent/api
servicetalk-concurrent-a...vicetalk/concurrent/api
OnErrorCompleteCompletable.java
OnErrorCompletePublisher.java
57:71 
57:71 
view
13 x 2 servicetalk-concurrent-a...vicetalk/concurrent/api
servicetalk-concurrent-a...vicetalk/concurrent/api
TaskBasedAsyncCompletableOperator.java
TaskBasedAsyncPublisherOperator.java
100:114 
133:147 
view
12 x 2 servicetalk-concurrent-a...vicetalk/concurrent/api
servicetalk-concurrent-a...vicetalk/concurrent/api
PublisherFlatMapMerge.java
PublisherFlatMapSingle.java
471:483 
216:228 
view
11 x 2 servicetalk-concurrent-a...vicetalk/concurrent/api
servicetalk-concurrent-a...vicetalk/concurrent/api
BeforeFinallyPublisher.java
BeforeFinallySingle.java
90:101 
76:87 
view
11 x 2 servicetalk-concurrent-a...vicetalk/concurrent/api
servicetalk-concurrent-a...vicetalk/concurrent/api
CopyOnWriteContextMap.java
CopyOnWriteContextMap.java
111:122 
125:136 
view
11 x 2 servicetalk-concurrent-j...talk/concurrent/jdkflow
servicetalk-concurrent-r...current/reactivestreams
JdkFlowAdapters.java
ReactiveStreamsAdapters.java
99:111 
152:164 
view
10 x 2 servicetalk-concurrent-a...vicetalk/concurrent/api
servicetalk-concurrent-a...vicetalk/concurrent/api
TimeoutCompletable.java
TimeoutSingle.java
117:130 
119:132 
view
10 x 3 servicetalk-concurrent-a...vicetalk/concurrent/api
servicetalk-concurrent-a...vicetalk/concurrent/api
servicetalk-concurrent-a...vicetalk/concurrent/api
TestCompletable.java
TestPublisher.java
TestSingle.java
148:158 
173:183 
151:161 
view
10 x 2 servicetalk-http-api/src...io/servicetalk/http/api
servicetalk-http-api/src...io/servicetalk/http/api
AbstractHttpRequesterFilterTest.java
AbstractHttpServiceFilterTest.java
92:102 
61:71 
view
9 x 3 servicetalk-concurrent-a...vicetalk/concurrent/api
servicetalk-concurrent-a...vicetalk/concurrent/api
servicetalk-concurrent-a...vicetalk/concurrent/api
BeforeSubscriberCompletable.java
BeforeSubscriberPublisher.java
BeforeSubscriberSingle.java
66:75 
69:78 
65:74 
view
9 x 2 servicetalk-concurrent-a...vicetalk/concurrent/api
servicetalk-concurrent-a...vicetalk/concurrent/api
Completable.java
Single.java
2104:2115 
2454:2465 
view
9 x 2 servicetalk-concurrent-a...vicetalk/concurrent/api
servicetalk-concurrent-a...vicetalk/concurrent/api
TimeoutCompletable.java
TimeoutSingle.java
155:166 
157:168 
view