@Override
public Future<RpcResult<SetConfigOutput>> setConfig(final SetConfigInput input) {
- final RequestContext requestContext = rpcContext.createRequestContext();
- final SettableFuture<RpcResult<SetConfigOutput>> result = rpcContext.storeOrFail(requestContext);
+ final RequestContext requestContext = requestContextStack.createRequestContext();
+ final SettableFuture<RpcResult<SetConfigOutput>> result = requestContextStack.storeOrFail(requestContext);
if (!result.isDone()) {
SetConfigInputBuilder builder = new SetConfigInputBuilder();
SwitchConfigFlag flag = SwitchConfigFlag.valueOf(input.getFlag());
builder.setMissSendLen(input.getMissSearchLength());
builder.setVersion(version);
ListenableFuture<RpcResult<Void>> futureResultFromOfLib = JdkFutureAdapters.listenInPoolThread(deviceContext.getPrimaryConnectionContext().getConnectionAdapter().setConfig(builder.build()));
- RpcResultConvertor<SetConfigOutput> rpcResultConvertor = new RpcResultConvertor<>(requestContext);
- rpcResultConvertor.processResultFromOfJava(futureResultFromOfLib, provideWaitTime());
+ OFJResult2RequestCtxFuture<SetConfigOutput> OFJResult2RequestCtxFuture = new OFJResult2RequestCtxFuture<>(requestContext, deviceContext);
+ OFJResult2RequestCtxFuture.processResultFromOfJava(futureResultFromOfLib);
} else {
RequestContextUtil.closeRequstContext(requestContext);
}