@@ -32,9 +32,11 @@ import org.apache.kafka.common.resource.ResourceType
32
32
import org .apache .kafka .security .authorizer .AuthorizerUtils
33
33
import org .apache .kafka .server .ProcessRole
34
34
import org .apache .kafka .server .authorizer ._
35
+ import org .apache .kafka .server .purgatory .DelayedFuturePurgatory
35
36
36
37
import java .util
37
38
import java .util .concurrent .CompletableFuture
39
+ import java .util .stream .Collectors
38
40
import scala .collection .mutable .ArrayBuffer
39
41
import scala .collection .mutable
40
42
import scala .jdk .CollectionConverters ._
@@ -50,7 +52,7 @@ class AclApis(authHelper: AuthHelper,
50
52
config : KafkaConfig ) extends Logging {
51
53
this .logIdent = " [AclApis-%s-%s] " .format(role, config.nodeId)
52
54
private val alterAclsPurgatory =
53
- new DelayedFuturePurgatory (purgatoryName = " AlterAcls" , brokerId = config.nodeId)
55
+ new DelayedFuturePurgatory (" AlterAcls" , config.nodeId)
54
56
55
57
def isClosed : Boolean = alterAclsPurgatory.isShutdown
56
58
@@ -107,11 +109,11 @@ class AclApis(authHelper: AuthHelper,
107
109
}
108
110
109
111
val future = new CompletableFuture [util.List [AclCreationResult ]]()
110
- val createResults = auth.createAcls(request.context, validBindings.asJava).asScala .map(_.toCompletableFuture)
112
+ val createResults = auth.createAcls(request.context, validBindings.asJava).stream() .map(_.toCompletableFuture).toList
111
113
112
114
def sendResponseCallback (): Unit = {
113
115
val aclCreationResults = allBindings.map { acl =>
114
- val result = errorResults.getOrElse(acl, createResults(validBindings.indexOf(acl)).get)
116
+ val result = errorResults.getOrElse(acl, createResults.get (validBindings.indexOf(acl)).get)
115
117
val creationResult = new AclCreationResult ()
116
118
result.exception.toScala.foreach { throwable =>
117
119
val apiError = ApiError .fromThrowable(throwable)
@@ -123,7 +125,7 @@ class AclApis(authHelper: AuthHelper,
123
125
}
124
126
future.complete(aclCreationResults.asJava)
125
127
}
126
- alterAclsPurgatory.tryCompleteElseWatch(config.connectionsMaxIdleMs, createResults, sendResponseCallback)
128
+ alterAclsPurgatory.tryCompleteElseWatch(config.connectionsMaxIdleMs, createResults, () => sendResponseCallback() )
127
129
128
130
future.thenApply[Unit ] { aclCreationResults =>
129
131
requestHelper.sendResponseMaybeThrottle(request, requestThrottleMs =>
@@ -147,14 +149,15 @@ class AclApis(authHelper: AuthHelper,
147
149
148
150
val future = new CompletableFuture [util.List [DeleteAclsFilterResult ]]()
149
151
val deleteResults = auth.deleteAcls(request.context, deleteAclsRequest.filters)
150
- .asScala .map(_.toCompletableFuture).toList
152
+ .stream() .map(_.toCompletableFuture).toList
151
153
152
154
def sendResponseCallback (): Unit = {
153
- val filterResults = deleteResults.map(_.get).map(DeleteAclsResponse .filterResult).asJava
155
+ val filterResults : util.List [DeleteAclsFilterResult ] = deleteResults.stream().map(_.get)
156
+ .map(DeleteAclsResponse .filterResult).collect(Collectors .toList())
154
157
future.complete(filterResults)
155
158
}
156
159
157
- alterAclsPurgatory.tryCompleteElseWatch(config.connectionsMaxIdleMs, deleteResults, sendResponseCallback)
160
+ alterAclsPurgatory.tryCompleteElseWatch(config.connectionsMaxIdleMs, deleteResults, () => sendResponseCallback() )
158
161
future.thenApply[Unit ] { filterResults =>
159
162
requestHelper.sendResponseMaybeThrottle(request, requestThrottleMs =>
160
163
new DeleteAclsResponse (
0 commit comments