001
014
015 package com.liferay.portal.fabric.netty.rpc;
016
017 import com.liferay.portal.kernel.concurrent.DefaultNoticeableFuture;
018 import com.liferay.portal.kernel.concurrent.NoticeableFuture;
019 import com.liferay.portal.kernel.process.ProcessCallable;
020
021 import java.io.Serializable;
022
023
026 public class SyncProcessRPCCallable<T extends Serializable>
027 implements RPCCallable<T> {
028
029 public SyncProcessRPCCallable(ProcessCallable<T> processCallable) {
030 _processCallable = processCallable;
031 }
032
033 @Override
034 public NoticeableFuture<T> call() {
035 DefaultNoticeableFuture<T> defaultNoticeableFuture =
036 new DefaultNoticeableFuture<>();
037
038 try {
039 defaultNoticeableFuture.set(_processCallable.call());
040 }
041 catch (Throwable t) {
042 defaultNoticeableFuture.setException(t);
043 }
044
045 return defaultNoticeableFuture;
046 }
047
048 private static final long serialVersionUID = 1L;
049
050 private final ProcessCallable<T> _processCallable;
051
052 }