private static byte[] serializeClosure(Object data) { ByteArrayOutputStream bos = new ByteArrayOutputStream(); try (ObjectOutputStream oos = new ObjectOutputStream(bos)) { oos.writeObject(data); oos.close(); return bos.toByteArray(); } catch (NotSerializableException nse) { throw new LambdaSerializationException("Closure not serializable", nse); } catch (IOException e) { throw new PlatformException("Failed to write closure", e); } }
private APIModel.Blob serializeJava(FlowId flowId, Object code) { try { ByteArrayOutputStream bos = new ByteArrayOutputStream(); ObjectOutputStream oos = new ObjectOutputStream(bos); oos.writeObject(code); oos.close(); BlobResponse blobResponse = writeBlob(flowId.getId(), bos.toByteArray(), RemoteFlowApiClient.CONTENT_TYPE_JAVA_OBJECT); return APIModel.Blob.fromBlobResponse(blobResponse); } catch (Exception e) { e.printStackTrace(); throw new LambdaSerializationException("Error serializing closure"); } }