@Override
 public byte[] handle(byte[] requestBa) {
   ClassLoadingCodeRunnerClient.RemoteCodeRequest request =
       (ClassLoadingCodeRunnerClient.RemoteCodeRequest)
           SerializationHelper.toObject(requestBa, getClass().getClassLoader());
   ClassLoadingCodeRunnerClient.log.debug("handling {}", request);
   try {
     return SerializationHelper.toByteArray(handle(request));
   } catch (Exception e) {
     return SerializationHelper.toByteArray(new FailureResponse(e));
   } finally {
     ClassLoadingCodeRunnerClient.log.debug(
         "handling " + request.getClass().getSimpleName() + " done");
   }
 }
 @Override
 public void sendToClient(TMessage msg) {
   toClient.add(new CustomMessageWrapper(SerializationHelper.toByteArray(msg)));
 }
 public ClassLoadingServerCode(MessageHandlingServerCode<TMessage> codeDelegate) {
   this.codeDelegate = SerializationHelper.toByteArray(codeDelegate);
 }