From 49823d457cd1455b5c90bbf7a45dff3273ae13a7 Mon Sep 17 00:00:00 2001 From: redkale Date: Thu, 29 Jun 2023 15:43:12 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B8=B4=E6=97=B6=E6=97=A5=E5=BF=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/org/redkale/util/Utility.java | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/src/main/java/org/redkale/util/Utility.java b/src/main/java/org/redkale/util/Utility.java index 6ed597505..4d2eeec31 100644 --- a/src/main/java/org/redkale/util/Utility.java +++ b/src/main/java/org/redkale/util/Utility.java @@ -302,10 +302,12 @@ public final class Utility { private static String readLambdaFieldNameFromBytes(Serializable func) { try { Logger logger = Logger.getLogger(Utility.class.getSimpleName()); - ObjectWriteStream out = new ObjectWriteStream(); - logger.info("设置enableReplaceObject结果: + " + out.enableReplaceObject(true)); + ByteArrayOutputStream bytes = new ByteArrayOutputStream(); + ObjectWriteStream out = new ObjectWriteStream(bytes); + logger.info("enableReplaceObject-setting: " + out.enableReplaceObject(true)); out.writeObject(func); out.close(); + logger.info("out-content: " + binToHexString(bytes.toByteArray())); return readFieldName(out.methodNameReference.get()); } catch (IOException e) { throw new RedkaleException(e); @@ -334,14 +336,14 @@ public final class Utility { public final ObjectReference methodNameReference = new ObjectReference<>(); - public ObjectWriteStream() throws IOException { - super(new ByteArrayOutputStream()); + public ObjectWriteStream(OutputStream out) throws IOException { + super(out); } @Override protected Object replaceObject​(Object obj) throws IOException { Logger logger = Logger.getLogger(Utility.class.getSimpleName()); - logger.info("obj类: " + obj.getClass() + ", 内容: " + obj); + logger.info("obj-class: " + obj.getClass() + ", content: " + obj); if (obj instanceof java.lang.invoke.SerializedLambda) { methodNameReference.set(((java.lang.invoke.SerializedLambda) obj).getImplMethodName()); }