Skip to content

Instantly share code, notes, and snippets.

@rednaxelafx
Created October 12, 2016 08:20
Show Gist options
  • Star 5 You must be signed in to star a gist
  • Fork 3 You must be signed in to fork a gist
  • Save rednaxelafx/c254a0545952915fb1292d6721211b54 to your computer and use it in GitHub Desktop.
Save rednaxelafx/c254a0545952915fb1292d6721211b54 to your computer and use it in GitHub Desktop.
Java 8 serializable lambda pitfall example, https://www.zhihu.com/question/51491241
$ java -version
java version "1.8.0_101"
Java(TM) SE Runtime Environment (build 1.8.0_101-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.101-b13, mixed mode)
$ javac -cp .:/tmp/spark-2.0.1-bin-hadoop2.7/jars/spark-core_2.11-2.0.1.jar -g Demo.java
$ java -Djdk.internal.lambda.dumpProxyClasses=. -cp .:/tmp/spark-2.0.1-bin-hadoop2.7/jars/spark-core_2.11-2.0.1.jar Demo
true
true
true
c1 serialization succeeded
c2 serialization failed
java.io.NotSerializableException: java.io.PrintStream
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1184)
at java.io.ObjectOutputStream.writeArray(ObjectOutputStream.java:1378)
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1174)
at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1548)
at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1509)
at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1432)
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1178)
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:348)
at Demo.main(Demo.java:34)
c3 serialization failed
java.io.NotSerializableException: java.io.PrintStream
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1184)
at java.io.ObjectOutputStream.writeArray(ObjectOutputStream.java:1378)
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1174)
at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1548)
at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1509)
at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1432)
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1178)
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:348)
at Demo.main(Demo.java:46)
$ javap -verbose -c -s -l -private Demo\$\$Lambda\$1
Classfile /private/tmp/Demo$$Lambda$1.class
Last modified Oct 12, 2016; size 754 bytes
MD5 checksum 81ce9dafbca34417b2dfa94f596a85a1
final class Demo$$Lambda$1 implements org.apache.spark.api.java.function.VoidFunction
minor version: 0
major version: 52
flags: ACC_FINAL, ACC_SUPER, ACC_SYNTHETIC
Constant pool:
#1 = Utf8 Demo$$Lambda$1
#2 = Class #1 // Demo$$Lambda$1
#3 = Utf8 java/lang/Object
#4 = Class #3 // java/lang/Object
#5 = Utf8 org/apache/spark/api/java/function/VoidFunction
#6 = Class #5 // org/apache/spark/api/java/function/VoidFunction
#7 = Utf8 <init>
#8 = Utf8 ()V
#9 = NameAndType #7:#8 // "<init>":()V
#10 = Methodref #4.#9 // java/lang/Object."<init>":()V
#11 = Utf8 call
#12 = Utf8 (Ljava/lang/Object;)V
#13 = Utf8 Ljava/lang/invoke/LambdaForm$Hidden;
#14 = Utf8 java/lang/String
#15 = Class #14 // java/lang/String
#16 = Utf8 Demo
#17 = Class #16 // Demo
#18 = Utf8 lambda$main$28d50090$1
#19 = Utf8 (Ljava/lang/String;)V
#20 = NameAndType #18:#19 // lambda$main$28d50090$1:(Ljava/lang/String;)V
#21 = Methodref #17.#20 // Demo.lambda$main$28d50090$1:(Ljava/lang/String;)V
#22 = Utf8 writeReplace
#23 = Utf8 ()Ljava/lang/Object;
#24 = Utf8 java/lang/invoke/SerializedLambda
#25 = Class #24 // java/lang/invoke/SerializedLambda
#26 = String #5 // org/apache/spark/api/java/function/VoidFunction
#27 = String #11 // call
#28 = String #12 // (Ljava/lang/Object;)V
#29 = Integer 6
#30 = String #16 // Demo
#31 = String #18 // lambda$main$28d50090$1
#32 = String #19 // (Ljava/lang/String;)V
#33 = Utf8 (Ljava/lang/Class;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;)V
#34 = NameAndType #7:#33 // "<init>":(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;)V
#35 = Methodref #25.#34 // java/lang/invoke/SerializedLambda."<init>":(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;)V
#36 = Utf8 Code
#37 = Utf8 RuntimeVisibleAnnotations
{
private Demo$$Lambda$1();
descriptor: ()V
flags: ACC_PRIVATE
Code:
stack=1, locals=1, args_size=1
0: aload_0
1: invokespecial #10 // Method java/lang/Object."<init>":()V
4: return
public void call(java.lang.Object);
descriptor: (Ljava/lang/Object;)V
flags: ACC_PUBLIC
Code:
stack=1, locals=2, args_size=2
0: aload_1
1: checkcast #15 // class java/lang/String
4: invokestatic #21 // Method Demo.lambda$main$28d50090$1:(Ljava/lang/String;)V
7: return
RuntimeVisibleAnnotations:
0: #13()
private final java.lang.Object writeReplace();
descriptor: ()Ljava/lang/Object;
flags: ACC_PRIVATE, ACC_FINAL
Code:
stack=12, locals=1, args_size=1
0: new #25 // class java/lang/invoke/SerializedLambda
3: dup
4: ldc #17 // class Demo
6: ldc #26 // String org/apache/spark/api/java/function/VoidFunction
8: ldc #27 // String call
10: ldc #28 // String (Ljava/lang/Object;)V
12: ldc #29 // int 6
14: ldc #30 // String Demo
16: ldc #31 // String lambda$main$28d50090$1
18: ldc #32 // String (Ljava/lang/String;)V
20: ldc #32 // String (Ljava/lang/String;)V
22: iconst_0
23: anewarray #4 // class java/lang/Object
26: invokespecial #35 // Method java/lang/invoke/SerializedLambda."<init>":(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;)V
29: areturn
}
$ javap -verbose -c -s -l -private Demo\$\$Lambda\$2
Classfile /private/tmp/Demo$$Lambda$2.class
Last modified Oct 12, 2016; size 990 bytes
MD5 checksum 90fc2d221dc8ad3cf6e8f6287a6180cd
final class Demo$$Lambda$2 implements org.apache.spark.api.java.function.VoidFunction
minor version: 0
major version: 52
flags: ACC_FINAL, ACC_SUPER, ACC_SYNTHETIC
Constant pool:
#1 = Utf8 Demo$$Lambda$2
#2 = Class #1 // Demo$$Lambda$2
#3 = Utf8 java/lang/Object
#4 = Class #3 // java/lang/Object
#5 = Utf8 org/apache/spark/api/java/function/VoidFunction
#6 = Class #5 // org/apache/spark/api/java/function/VoidFunction
#7 = Utf8 arg$1
#8 = Utf8 Ljava/io/PrintStream;
#9 = Utf8 <init>
#10 = Utf8 (Ljava/io/PrintStream;)V
#11 = Utf8 ()V
#12 = NameAndType #9:#11 // "<init>":()V
#13 = Methodref #4.#12 // java/lang/Object."<init>":()V
#14 = NameAndType #7:#8 // arg$1:Ljava/io/PrintStream;
#15 = Fieldref #2.#14 // Demo$$Lambda$2.arg$1:Ljava/io/PrintStream;
#16 = Utf8 get$Lambda
#17 = Utf8 (Ljava/io/PrintStream;)Lorg/apache/spark/api/java/function/VoidFunction;
#18 = NameAndType #9:#10 // "<init>":(Ljava/io/PrintStream;)V
#19 = Methodref #2.#18 // Demo$$Lambda$2."<init>":(Ljava/io/PrintStream;)V
#20 = Utf8 call
#21 = Utf8 (Ljava/lang/Object;)V
#22 = Utf8 Ljava/lang/invoke/LambdaForm$Hidden;
#23 = Utf8 java/lang/String
#24 = Class #23 // java/lang/String
#25 = Utf8 java/io/PrintStream
#26 = Class #25 // java/io/PrintStream
#27 = Utf8 println
#28 = Utf8 (Ljava/lang/String;)V
#29 = NameAndType #27:#28 // println:(Ljava/lang/String;)V
#30 = Methodref #26.#29 // java/io/PrintStream.println:(Ljava/lang/String;)V
#31 = Utf8 writeReplace
#32 = Utf8 ()Ljava/lang/Object;
#33 = Utf8 java/lang/invoke/SerializedLambda
#34 = Class #33 // java/lang/invoke/SerializedLambda
#35 = Utf8 Demo
#36 = Class #35 // Demo
#37 = String #5 // org/apache/spark/api/java/function/VoidFunction
#38 = String #20 // call
#39 = String #21 // (Ljava/lang/Object;)V
#40 = Integer 5
#41 = String #25 // java/io/PrintStream
#42 = String #27 // println
#43 = String #28 // (Ljava/lang/String;)V
#44 = Utf8 (Ljava/lang/Class;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;)V
#45 = NameAndType #9:#44 // "<init>":(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;)V
#46 = Methodref #34.#45 // java/lang/invoke/SerializedLambda."<init>":(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;)V
#47 = Utf8 Code
#48 = Utf8 RuntimeVisibleAnnotations
{
private final java.io.PrintStream arg$1;
descriptor: Ljava/io/PrintStream;
flags: ACC_PRIVATE, ACC_FINAL
private Demo$$Lambda$2(java.io.PrintStream);
descriptor: (Ljava/io/PrintStream;)V
flags: ACC_PRIVATE
Code:
stack=2, locals=2, args_size=2
0: aload_0
1: invokespecial #13 // Method java/lang/Object."<init>":()V
4: aload_0
5: aload_1
6: putfield #15 // Field arg$1:Ljava/io/PrintStream;
9: return
private static org.apache.spark.api.java.function.VoidFunction get$Lambda(java.io.PrintStream);
descriptor: (Ljava/io/PrintStream;)Lorg/apache/spark/api/java/function/VoidFunction;
flags: ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=1, args_size=1
0: new #2 // class Demo$$Lambda$2
3: dup
4: aload_0
5: invokespecial #19 // Method "<init>":(Ljava/io/PrintStream;)V
8: areturn
public void call(java.lang.Object);
descriptor: (Ljava/lang/Object;)V
flags: ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
0: aload_0
1: getfield #15 // Field arg$1:Ljava/io/PrintStream;
4: aload_1
5: checkcast #24 // class java/lang/String
8: invokevirtual #30 // Method java/io/PrintStream.println:(Ljava/lang/String;)V
11: return
RuntimeVisibleAnnotations:
0: #22()
private final java.lang.Object writeReplace();
descriptor: ()Ljava/lang/Object;
flags: ACC_PRIVATE, ACC_FINAL
Code:
stack=15, locals=1, args_size=1
0: new #34 // class java/lang/invoke/SerializedLambda
3: dup
4: ldc #36 // class Demo
6: ldc #37 // String org/apache/spark/api/java/function/VoidFunction
8: ldc #38 // String call
10: ldc #39 // String (Ljava/lang/Object;)V
12: ldc #40 // int 5
14: ldc #41 // String java/io/PrintStream
16: ldc #42 // String println
18: ldc #43 // String (Ljava/lang/String;)V
20: ldc #43 // String (Ljava/lang/String;)V
22: iconst_1
23: anewarray #4 // class java/lang/Object
26: dup
27: iconst_0
28: aload_0
29: getfield #15 // Field arg$1:Ljava/io/PrintStream;
32: aastore
33: invokespecial #46 // Method java/lang/invoke/SerializedLambda."<init>":(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;)V
36: areturn
}
$ javap -verbose -c -s -l -private Demo\$\$Lambda\$3
Classfile /private/tmp/Demo$$Lambda$3.class
Last modified Oct 12, 2016; size 1028 bytes
MD5 checksum 64356872527a0a3849cc8cf1ceff217a
final class Demo$$Lambda$3 implements org.apache.spark.api.java.function.VoidFunction
minor version: 0
major version: 52
flags: ACC_FINAL, ACC_SUPER, ACC_SYNTHETIC
Constant pool:
#1 = Utf8 Demo$$Lambda$3
#2 = Class #1 // Demo$$Lambda$3
#3 = Utf8 java/lang/Object
#4 = Class #3 // java/lang/Object
#5 = Utf8 org/apache/spark/api/java/function/VoidFunction
#6 = Class #5 // org/apache/spark/api/java/function/VoidFunction
#7 = Utf8 arg$1
#8 = Utf8 Ljava/io/PrintStream;
#9 = Utf8 <init>
#10 = Utf8 (Ljava/io/PrintStream;)V
#11 = Utf8 ()V
#12 = NameAndType #9:#11 // "<init>":()V
#13 = Methodref #4.#12 // java/lang/Object."<init>":()V
#14 = NameAndType #7:#8 // arg$1:Ljava/io/PrintStream;
#15 = Fieldref #2.#14 // Demo$$Lambda$3.arg$1:Ljava/io/PrintStream;
#16 = Utf8 get$Lambda
#17 = Utf8 (Ljava/io/PrintStream;)Lorg/apache/spark/api/java/function/VoidFunction;
#18 = NameAndType #9:#10 // "<init>":(Ljava/io/PrintStream;)V
#19 = Methodref #2.#18 // Demo$$Lambda$3."<init>":(Ljava/io/PrintStream;)V
#20 = Utf8 call
#21 = Utf8 (Ljava/lang/Object;)V
#22 = Utf8 Ljava/lang/invoke/LambdaForm$Hidden;
#23 = Utf8 java/lang/String
#24 = Class #23 // java/lang/String
#25 = Utf8 Demo
#26 = Class #25 // Demo
#27 = Utf8 lambda$main$871ceed3$1
#28 = Utf8 (Ljava/io/PrintStream;Ljava/lang/String;)V
#29 = NameAndType #27:#28 // lambda$main$871ceed3$1:(Ljava/io/PrintStream;Ljava/lang/String;)V
#30 = Methodref #26.#29 // Demo.lambda$main$871ceed3$1:(Ljava/io/PrintStream;Ljava/lang/String;)V
#31 = Utf8 writeReplace
#32 = Utf8 ()Ljava/lang/Object;
#33 = Utf8 java/lang/invoke/SerializedLambda
#34 = Class #33 // java/lang/invoke/SerializedLambda
#35 = String #5 // org/apache/spark/api/java/function/VoidFunction
#36 = String #20 // call
#37 = String #21 // (Ljava/lang/Object;)V
#38 = Integer 6
#39 = String #25 // Demo
#40 = String #27 // lambda$main$871ceed3$1
#41 = String #28 // (Ljava/io/PrintStream;Ljava/lang/String;)V
#42 = Utf8 (Ljava/lang/String;)V
#43 = String #42 // (Ljava/lang/String;)V
#44 = Utf8 (Ljava/lang/Class;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;)V
#45 = NameAndType #9:#44 // "<init>":(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;)V
#46 = Methodref #34.#45 // java/lang/invoke/SerializedLambda."<init>":(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;)V
#47 = Utf8 Code
#48 = Utf8 RuntimeVisibleAnnotations
{
private final java.io.PrintStream arg$1;
descriptor: Ljava/io/PrintStream;
flags: ACC_PRIVATE, ACC_FINAL
private Demo$$Lambda$3(java.io.PrintStream);
descriptor: (Ljava/io/PrintStream;)V
flags: ACC_PRIVATE
Code:
stack=2, locals=2, args_size=2
0: aload_0
1: invokespecial #13 // Method java/lang/Object."<init>":()V
4: aload_0
5: aload_1
6: putfield #15 // Field arg$1:Ljava/io/PrintStream;
9: return
private static org.apache.spark.api.java.function.VoidFunction get$Lambda(java.io.PrintStream);
descriptor: (Ljava/io/PrintStream;)Lorg/apache/spark/api/java/function/VoidFunction;
flags: ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=1, args_size=1
0: new #2 // class Demo$$Lambda$3
3: dup
4: aload_0
5: invokespecial #19 // Method "<init>":(Ljava/io/PrintStream;)V
8: areturn
public void call(java.lang.Object);
descriptor: (Ljava/lang/Object;)V
flags: ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
0: aload_0
1: getfield #15 // Field arg$1:Ljava/io/PrintStream;
4: aload_1
5: checkcast #24 // class java/lang/String
8: invokestatic #30 // Method Demo.lambda$main$871ceed3$1:(Ljava/io/PrintStream;Ljava/lang/String;)V
11: return
RuntimeVisibleAnnotations:
0: #22()
private final java.lang.Object writeReplace();
descriptor: ()Ljava/lang/Object;
flags: ACC_PRIVATE, ACC_FINAL
Code:
stack=15, locals=1, args_size=1
0: new #34 // class java/lang/invoke/SerializedLambda
3: dup
4: ldc #26 // class Demo
6: ldc #35 // String org/apache/spark/api/java/function/VoidFunction
8: ldc #36 // String call
10: ldc #37 // String (Ljava/lang/Object;)V
12: ldc #38 // int 6
14: ldc #39 // String Demo
16: ldc #40 // String lambda$main$871ceed3$1
18: ldc #41 // String (Ljava/io/PrintStream;Ljava/lang/String;)V
20: ldc #43 // String (Ljava/lang/String;)V
22: iconst_1
23: anewarray #4 // class java/lang/Object
26: dup
27: iconst_0
28: aload_0
29: getfield #15 // Field arg$1:Ljava/io/PrintStream;
32: aastore
33: invokespecial #46 // Method java/lang/invoke/SerializedLambda."<init>":(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;)V
36: areturn
}
import java.io.*;
import org.apache.spark.api.java.function.VoidFunction;
public class Demo {
public static void main(String[] args) throws Exception {
VoidFunction<String> c1 = s -> System.out.println(s); // non-capturing lambda
VoidFunction<String> c2 = System.out::println; // instance method reference
PrintStream sysout = System.out; // PrintStream doesn't implement Serializable
VoidFunction<String> c3 = s -> sysout.println(s); // capturing lambda
// all print true because VoidFunction extends Serializable
System.out.println(c1 instanceof Serializable);
System.out.println(c2 instanceof Serializable);
System.out.println(c3 instanceof Serializable);
ByteArrayOutputStream bos = new ByteArrayOutputStream();
// try serializing the non-capturing lambda
boolean success = false;
try {
ObjectOutputStream out = new ObjectOutputStream(bos);
out.writeObject(c1); // succeed
success = true;
} catch (Exception e) {
System.out.println("c1 serialization failed");
e.printStackTrace(System.out);
}
if (success) System.out.println("c1 serialization succeeded");
// try serializing the instance method reference
success = false;
try {
ObjectOutputStream out = new ObjectOutputStream(bos);
out.writeObject(c2); // fail
success = true;
} catch (Exception e) {
System.out.println("c2 serialization failed");
e.printStackTrace(System.out);
}
if (success) System.out.println("c2 serialization succeeded");
// try serializing the capturing lambda
success = false;
try {
ObjectOutputStream out = new ObjectOutputStream(bos);
out.writeObject(c3); // fail
success = true;
} catch (Exception e) {
System.out.println("c3 serialization failed");
e.printStackTrace(System.out);
}
if (success) System.out.println("c3 serialization succeeded");
}
}
$ javap -verbose -c -s -l -private Demo
Classfile /private/tmp/Demo.class
Last modified Oct 12, 2016; size 4038 bytes
MD5 checksum 7152bad1cf7efc23680b2b45f1535f6a
Compiled from "Demo.java"
public class Demo
minor version: 0
major version: 52
flags: ACC_PUBLIC, ACC_SUPER
Constant pool:
#1 = Methodref #49.#97 // java/lang/Object."<init>":()V
#2 = InvokeDynamic #0:#105 // #0:call:()Lorg/apache/spark/api/java/function/VoidFunction;
#3 = Fieldref #106.#107 // java/lang/System.out:Ljava/io/PrintStream;
#4 = Methodref #49.#108 // java/lang/Object.getClass:()Ljava/lang/Class;
#5 = InvokeDynamic #1:#110 // #1:call:(Ljava/io/PrintStream;)Lorg/apache/spark/api/java/function/VoidFunction;
#6 = InvokeDynamic #2:#110 // #2:call:(Ljava/io/PrintStream;)Lorg/apache/spark/api/java/function/VoidFunction;
#7 = Class #112 // java/io/Serializable
#8 = Methodref #42.#113 // java/io/PrintStream.println:(Z)V
#9 = Class #114 // java/io/ByteArrayOutputStream
#10 = Methodref #9.#97 // java/io/ByteArrayOutputStream."<init>":()V
#11 = Class #115 // java/io/ObjectOutputStream
#12 = Methodref #11.#116 // java/io/ObjectOutputStream."<init>":(Ljava/io/OutputStream;)V
#13 = Methodref #11.#117 // java/io/ObjectOutputStream.writeObject:(Ljava/lang/Object;)V
#14 = Class #118 // java/lang/Exception
#15 = String #119 // c1 serialization failed
#16 = Methodref #42.#120 // java/io/PrintStream.println:(Ljava/lang/String;)V
#17 = Methodref #14.#121 // java/lang/Exception.printStackTrace:(Ljava/io/PrintStream;)V
#18 = String #122 // c1 serialization succeeded
#19 = String #123 // c2 serialization failed
#20 = String #124 // c2 serialization succeeded
#21 = String #125 // c3 serialization failed
#22 = String #126 // c3 serialization succeeded
#23 = Methodref #127.#128 // java/lang/invoke/SerializedLambda.getImplMethodName:()Ljava/lang/String;
#24 = Methodref #129.#130 // java/lang/String.hashCode:()I
#25 = String #131 // println
#26 = Methodref #129.#132 // java/lang/String.equals:(Ljava/lang/Object;)Z
#27 = String #89 // lambda$main$871ceed3$1
#28 = String #93 // lambda$main$28d50090$1
#29 = Methodref #127.#133 // java/lang/invoke/SerializedLambda.getImplMethodKind:()I
#30 = Methodref #127.#134 // java/lang/invoke/SerializedLambda.getFunctionalInterfaceClass:()Ljava/lang/String;
#31 = String #135 // org/apache/spark/api/java/function/VoidFunction
#32 = Methodref #49.#132 // java/lang/Object.equals:(Ljava/lang/Object;)Z
#33 = Methodref #127.#136 // java/lang/invoke/SerializedLambda.getFunctionalInterfaceMethodName:()Ljava/lang/String;
#34 = String #137 // call
#35 = Methodref #127.#138 // java/lang/invoke/SerializedLambda.getFunctionalInterfaceMethodSignature:()Ljava/lang/String;
#36 = String #139 // (Ljava/lang/Object;)V
#37 = Methodref #127.#140 // java/lang/invoke/SerializedLambda.getImplClass:()Ljava/lang/String;
#38 = String #141 // java/io/PrintStream
#39 = Methodref #127.#142 // java/lang/invoke/SerializedLambda.getImplMethodSignature:()Ljava/lang/String;
#40 = String #94 // (Ljava/lang/String;)V
#41 = Methodref #127.#143 // java/lang/invoke/SerializedLambda.getCapturedArg:(I)Ljava/lang/Object;
#42 = Class #141 // java/io/PrintStream
#43 = String #144 // Demo
#44 = String #90 // (Ljava/io/PrintStream;Ljava/lang/String;)V
#45 = Class #145 // java/lang/IllegalArgumentException
#46 = String #146 // Invalid lambda deserialization
#47 = Methodref #45.#147 // java/lang/IllegalArgumentException."<init>":(Ljava/lang/String;)V
#48 = Class #144 // Demo
#49 = Class #148 // java/lang/Object
#50 = Utf8 <init>
#51 = Utf8 ()V
#52 = Utf8 Code
#53 = Utf8 LineNumberTable
#54 = Utf8 LocalVariableTable
#55 = Utf8 this
#56 = Utf8 LDemo;
#57 = Utf8 main
#58 = Utf8 ([Ljava/lang/String;)V
#59 = Utf8 out
#60 = Utf8 Ljava/io/ObjectOutputStream;
#61 = Utf8 e
#62 = Utf8 Ljava/lang/Exception;
#63 = Utf8 args
#64 = Utf8 [Ljava/lang/String;
#65 = Utf8 c1
#66 = Utf8 Lorg/apache/spark/api/java/function/VoidFunction;
#67 = Utf8 c2
#68 = Utf8 sysout
#69 = Utf8 Ljava/io/PrintStream;
#70 = Utf8 c3
#71 = Utf8 bos
#72 = Utf8 Ljava/io/ByteArrayOutputStream;
#73 = Utf8 success
#74 = Utf8 Z
#75 = Utf8 LocalVariableTypeTable
#76 = Utf8 Lorg/apache/spark/api/java/function/VoidFunction<Ljava/lang/String;>;
#77 = Utf8 StackMapTable
#78 = Class #64 // "[Ljava/lang/String;"
#79 = Class #135 // org/apache/spark/api/java/function/VoidFunction
#80 = Class #141 // java/io/PrintStream
#81 = Class #114 // java/io/ByteArrayOutputStream
#82 = Class #118 // java/lang/Exception
#83 = Utf8 Exceptions
#84 = Utf8 $deserializeLambda$
#85 = Utf8 (Ljava/lang/invoke/SerializedLambda;)Ljava/lang/Object;
#86 = Utf8 lambda
#87 = Utf8 Ljava/lang/invoke/SerializedLambda;
#88 = Class #149 // java/lang/String
#89 = Utf8 lambda$main$871ceed3$1
#90 = Utf8 (Ljava/io/PrintStream;Ljava/lang/String;)V
#91 = Utf8 s
#92 = Utf8 Ljava/lang/String;
#93 = Utf8 lambda$main$28d50090$1
#94 = Utf8 (Ljava/lang/String;)V
#95 = Utf8 SourceFile
#96 = Utf8 Demo.java
#97 = NameAndType #50:#51 // "<init>":()V
#98 = Utf8 BootstrapMethods
#99 = MethodHandle #6:#150 // invokestatic java/lang/invoke/LambdaMetafactory.altMetafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;[Ljava/lang/Object;)Ljava/lang/invoke/CallSite;
#100 = MethodType #139 // (Ljava/lang/Object;)V
#101 = MethodHandle #6:#151 // invokestatic Demo.lambda$main$28d50090$1:(Ljava/lang/String;)V
#102 = MethodType #94 // (Ljava/lang/String;)V
#103 = Integer 5
#104 = Integer 0
#105 = NameAndType #137:#152 // call:()Lorg/apache/spark/api/java/function/VoidFunction;
#106 = Class #153 // java/lang/System
#107 = NameAndType #59:#69 // out:Ljava/io/PrintStream;
#108 = NameAndType #154:#155 // getClass:()Ljava/lang/Class;
#109 = MethodHandle #5:#16 // invokevirtual java/io/PrintStream.println:(Ljava/lang/String;)V
#110 = NameAndType #137:#156 // call:(Ljava/io/PrintStream;)Lorg/apache/spark/api/java/function/VoidFunction;
#111 = MethodHandle #6:#157 // invokestatic Demo.lambda$main$871ceed3$1:(Ljava/io/PrintStream;Ljava/lang/String;)V
#112 = Utf8 java/io/Serializable
#113 = NameAndType #131:#158 // println:(Z)V
#114 = Utf8 java/io/ByteArrayOutputStream
#115 = Utf8 java/io/ObjectOutputStream
#116 = NameAndType #50:#159 // "<init>":(Ljava/io/OutputStream;)V
#117 = NameAndType #160:#139 // writeObject:(Ljava/lang/Object;)V
#118 = Utf8 java/lang/Exception
#119 = Utf8 c1 serialization failed
#120 = NameAndType #131:#94 // println:(Ljava/lang/String;)V
#121 = NameAndType #161:#162 // printStackTrace:(Ljava/io/PrintStream;)V
#122 = Utf8 c1 serialization succeeded
#123 = Utf8 c2 serialization failed
#124 = Utf8 c2 serialization succeeded
#125 = Utf8 c3 serialization failed
#126 = Utf8 c3 serialization succeeded
#127 = Class #163 // java/lang/invoke/SerializedLambda
#128 = NameAndType #164:#165 // getImplMethodName:()Ljava/lang/String;
#129 = Class #149 // java/lang/String
#130 = NameAndType #166:#167 // hashCode:()I
#131 = Utf8 println
#132 = NameAndType #168:#169 // equals:(Ljava/lang/Object;)Z
#133 = NameAndType #170:#167 // getImplMethodKind:()I
#134 = NameAndType #171:#165 // getFunctionalInterfaceClass:()Ljava/lang/String;
#135 = Utf8 org/apache/spark/api/java/function/VoidFunction
#136 = NameAndType #172:#165 // getFunctionalInterfaceMethodName:()Ljava/lang/String;
#137 = Utf8 call
#138 = NameAndType #173:#165 // getFunctionalInterfaceMethodSignature:()Ljava/lang/String;
#139 = Utf8 (Ljava/lang/Object;)V
#140 = NameAndType #174:#165 // getImplClass:()Ljava/lang/String;
#141 = Utf8 java/io/PrintStream
#142 = NameAndType #175:#165 // getImplMethodSignature:()Ljava/lang/String;
#143 = NameAndType #176:#177 // getCapturedArg:(I)Ljava/lang/Object;
#144 = Utf8 Demo
#145 = Utf8 java/lang/IllegalArgumentException
#146 = Utf8 Invalid lambda deserialization
#147 = NameAndType #50:#94 // "<init>":(Ljava/lang/String;)V
#148 = Utf8 java/lang/Object
#149 = Utf8 java/lang/String
#150 = Methodref #178.#179 // java/lang/invoke/LambdaMetafactory.altMetafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;[Ljava/lang/Object;)Ljava/lang/invoke/CallSite;
#151 = Methodref #48.#180 // Demo.lambda$main$28d50090$1:(Ljava/lang/String;)V
#152 = Utf8 ()Lorg/apache/spark/api/java/function/VoidFunction;
#153 = Utf8 java/lang/System
#154 = Utf8 getClass
#155 = Utf8 ()Ljava/lang/Class;
#156 = Utf8 (Ljava/io/PrintStream;)Lorg/apache/spark/api/java/function/VoidFunction;
#157 = Methodref #48.#181 // Demo.lambda$main$871ceed3$1:(Ljava/io/PrintStream;Ljava/lang/String;)V
#158 = Utf8 (Z)V
#159 = Utf8 (Ljava/io/OutputStream;)V
#160 = Utf8 writeObject
#161 = Utf8 printStackTrace
#162 = Utf8 (Ljava/io/PrintStream;)V
#163 = Utf8 java/lang/invoke/SerializedLambda
#164 = Utf8 getImplMethodName
#165 = Utf8 ()Ljava/lang/String;
#166 = Utf8 hashCode
#167 = Utf8 ()I
#168 = Utf8 equals
#169 = Utf8 (Ljava/lang/Object;)Z
#170 = Utf8 getImplMethodKind
#171 = Utf8 getFunctionalInterfaceClass
#172 = Utf8 getFunctionalInterfaceMethodName
#173 = Utf8 getFunctionalInterfaceMethodSignature
#174 = Utf8 getImplClass
#175 = Utf8 getImplMethodSignature
#176 = Utf8 getCapturedArg
#177 = Utf8 (I)Ljava/lang/Object;
#178 = Class #182 // java/lang/invoke/LambdaMetafactory
#179 = NameAndType #183:#187 // altMetafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;[Ljava/lang/Object;)Ljava/lang/invoke/CallSite;
#180 = NameAndType #93:#94 // lambda$main$28d50090$1:(Ljava/lang/String;)V
#181 = NameAndType #89:#90 // lambda$main$871ceed3$1:(Ljava/io/PrintStream;Ljava/lang/String;)V
#182 = Utf8 java/lang/invoke/LambdaMetafactory
#183 = Utf8 altMetafactory
#184 = Class #189 // java/lang/invoke/MethodHandles$Lookup
#185 = Utf8 Lookup
#186 = Utf8 InnerClasses
#187 = Utf8 (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;[Ljava/lang/Object;)Ljava/lang/invoke/CallSite;
#188 = Class #190 // java/lang/invoke/MethodHandles
#189 = Utf8 java/lang/invoke/MethodHandles$Lookup
#190 = Utf8 java/lang/invoke/MethodHandles
{
public Demo();
descriptor: ()V
flags: ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
0: aload_0
1: invokespecial #1 // Method java/lang/Object."<init>":()V
4: return
LineNumberTable:
line 4: 0
LocalVariableTable:
Start Length Slot Name Signature
0 5 0 this LDemo;
public static void main(java.lang.String[]) throws java.lang.Exception;
descriptor: ([Ljava/lang/String;)V
flags: ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=8, args_size=1
0: invokedynamic #2, 0 // InvokeDynamic #0:call:()Lorg/apache/spark/api/java/function/VoidFunction;
5: astore_1
6: getstatic #3 // Field java/lang/System.out:Ljava/io/PrintStream;
9: dup
10: invokevirtual #4 // Method java/lang/Object.getClass:()Ljava/lang/Class;
13: pop
14: invokedynamic #5, 0 // InvokeDynamic #1:call:(Ljava/io/PrintStream;)Lorg/apache/spark/api/java/function/VoidFunction;
19: astore_2
20: getstatic #3 // Field java/lang/System.out:Ljava/io/PrintStream;
23: astore_3
24: aload_3
25: invokedynamic #6, 0 // InvokeDynamic #2:call:(Ljava/io/PrintStream;)Lorg/apache/spark/api/java/function/VoidFunction;
30: astore 4
32: getstatic #3 // Field java/lang/System.out:Ljava/io/PrintStream;
35: aload_1
36: instanceof #7 // class java/io/Serializable
39: invokevirtual #8 // Method java/io/PrintStream.println:(Z)V
42: getstatic #3 // Field java/lang/System.out:Ljava/io/PrintStream;
45: aload_2
46: instanceof #7 // class java/io/Serializable
49: invokevirtual #8 // Method java/io/PrintStream.println:(Z)V
52: getstatic #3 // Field java/lang/System.out:Ljava/io/PrintStream;
55: aload 4
57: instanceof #7 // class java/io/Serializable
60: invokevirtual #8 // Method java/io/PrintStream.println:(Z)V
63: new #9 // class java/io/ByteArrayOutputStream
66: dup
67: invokespecial #10 // Method java/io/ByteArrayOutputStream."<init>":()V
70: astore 5
72: iconst_0
73: istore 6
75: new #11 // class java/io/ObjectOutputStream
78: dup
79: aload 5
81: invokespecial #12 // Method java/io/ObjectOutputStream."<init>":(Ljava/io/OutputStream;)V
84: astore 7
86: aload 7
88: aload_1
89: invokevirtual #13 // Method java/io/ObjectOutputStream.writeObject:(Ljava/lang/Object;)V
92: iconst_1
93: istore 6
95: goto 116
98: astore 7
100: getstatic #3 // Field java/lang/System.out:Ljava/io/PrintStream;
103: ldc #15 // String c1 serialization failed
105: invokevirtual #16 // Method java/io/PrintStream.println:(Ljava/lang/String;)V
108: aload 7
110: getstatic #3 // Field java/lang/System.out:Ljava/io/PrintStream;
113: invokevirtual #17 // Method java/lang/Exception.printStackTrace:(Ljava/io/PrintStream;)V
116: iload 6
118: ifeq 129
121: getstatic #3 // Field java/lang/System.out:Ljava/io/PrintStream;
124: ldc #18 // String c1 serialization succeeded
126: invokevirtual #16 // Method java/io/PrintStream.println:(Ljava/lang/String;)V
129: iconst_0
130: istore 6
132: new #11 // class java/io/ObjectOutputStream
135: dup
136: aload 5
138: invokespecial #12 // Method java/io/ObjectOutputStream."<init>":(Ljava/io/OutputStream;)V
141: astore 7
143: aload 7
145: aload_2
146: invokevirtual #13 // Method java/io/ObjectOutputStream.writeObject:(Ljava/lang/Object;)V
149: iconst_1
150: istore 6
152: goto 173
155: astore 7
157: getstatic #3 // Field java/lang/System.out:Ljava/io/PrintStream;
160: ldc #19 // String c2 serialization failed
162: invokevirtual #16 // Method java/io/PrintStream.println:(Ljava/lang/String;)V
165: aload 7
167: getstatic #3 // Field java/lang/System.out:Ljava/io/PrintStream;
170: invokevirtual #17 // Method java/lang/Exception.printStackTrace:(Ljava/io/PrintStream;)V
173: iload 6
175: ifeq 186
178: getstatic #3 // Field java/lang/System.out:Ljava/io/PrintStream;
181: ldc #20 // String c2 serialization succeeded
183: invokevirtual #16 // Method java/io/PrintStream.println:(Ljava/lang/String;)V
186: iconst_0
187: istore 6
189: new #11 // class java/io/ObjectOutputStream
192: dup
193: aload 5
195: invokespecial #12 // Method java/io/ObjectOutputStream."<init>":(Ljava/io/OutputStream;)V
198: astore 7
200: aload 7
202: aload 4
204: invokevirtual #13 // Method java/io/ObjectOutputStream.writeObject:(Ljava/lang/Object;)V
207: iconst_1
208: istore 6
210: goto 231
213: astore 7
215: getstatic #3 // Field java/lang/System.out:Ljava/io/PrintStream;
218: ldc #21 // String c3 serialization failed
220: invokevirtual #16 // Method java/io/PrintStream.println:(Ljava/lang/String;)V
223: aload 7
225: getstatic #3 // Field java/lang/System.out:Ljava/io/PrintStream;
228: invokevirtual #17 // Method java/lang/Exception.printStackTrace:(Ljava/io/PrintStream;)V
231: iload 6
233: ifeq 244
236: getstatic #3 // Field java/lang/System.out:Ljava/io/PrintStream;
239: ldc #22 // String c3 serialization succeeded
241: invokevirtual #16 // Method java/io/PrintStream.println:(Ljava/lang/String;)V
244: return
Exception table:
from to target type
75 95 98 Class java/lang/Exception
132 152 155 Class java/lang/Exception
189 210 213 Class java/lang/Exception
LineNumberTable:
line 6: 0
line 7: 6
line 8: 20
line 9: 24
line 12: 32
line 13: 42
line 14: 52
line 16: 63
line 19: 72
line 21: 75
line 22: 86
line 23: 92
line 27: 95
line 24: 98
line 25: 100
line 26: 108
line 28: 116
line 31: 129
line 33: 132
line 34: 143
line 35: 149
line 39: 152
line 36: 155
line 37: 157
line 38: 165
line 40: 173
line 43: 186
line 45: 189
line 46: 200
line 47: 207
line 51: 210
line 48: 213
line 49: 215
line 50: 223
line 52: 231
line 53: 244
LocalVariableTable:
Start Length Slot Name Signature
86 9 7 out Ljava/io/ObjectOutputStream;
100 16 7 e Ljava/lang/Exception;
143 9 7 out Ljava/io/ObjectOutputStream;
157 16 7 e Ljava/lang/Exception;
200 10 7 out Ljava/io/ObjectOutputStream;
215 16 7 e Ljava/lang/Exception;
0 245 0 args [Ljava/lang/String;
6 239 1 c1 Lorg/apache/spark/api/java/function/VoidFunction;
20 225 2 c2 Lorg/apache/spark/api/java/function/VoidFunction;
24 221 3 sysout Ljava/io/PrintStream;
32 213 4 c3 Lorg/apache/spark/api/java/function/VoidFunction;
72 173 5 bos Ljava/io/ByteArrayOutputStream;
75 170 6 success Z
LocalVariableTypeTable:
Start Length Slot Name Signature
6 239 1 c1 Lorg/apache/spark/api/java/function/VoidFunction<Ljava/lang/String;>;
20 225 2 c2 Lorg/apache/spark/api/java/function/VoidFunction<Ljava/lang/String;>;
32 213 4 c3 Lorg/apache/spark/api/java/function/VoidFunction<Ljava/lang/String;>;
StackMapTable: number_of_entries = 9
frame_type = 255 /* full_frame */
offset_delta = 98
locals = [ class "[Ljava/lang/String;", class org/apache/spark/api/java/function/VoidFunction, class org/apache/spark/api/java/function/VoidFunction, class java/io/PrintStream, class org/apache/spark/api/java/function/VoidFunction, class java/io/ByteArrayOutputStream, int ]
stack = [ class java/lang/Exception ]
frame_type = 17 /* same */
frame_type = 12 /* same */
frame_type = 89 /* same_locals_1_stack_item */
stack = [ class java/lang/Exception ]
frame_type = 17 /* same */
frame_type = 12 /* same */
frame_type = 90 /* same_locals_1_stack_item */
stack = [ class java/lang/Exception ]
frame_type = 17 /* same */
frame_type = 12 /* same */
Exceptions:
throws java.lang.Exception
private static java.lang.Object $deserializeLambda$(java.lang.invoke.SerializedLambda);
descriptor: (Ljava/lang/invoke/SerializedLambda;)Ljava/lang/Object;
flags: ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=3, locals=3, args_size=1
0: aload_0
1: invokevirtual #23 // Method java/lang/invoke/SerializedLambda.getImplMethodName:()Ljava/lang/String;
4: astore_1
5: iconst_m1
6: istore_2
7: aload_1
8: invokevirtual #24 // Method java/lang/String.hashCode:()I
11: lookupswitch { // 3
-559453015: 72
-314717969: 44
822978427: 58
default: 83
}
44: aload_1
45: ldc #25 // String println
47: invokevirtual #26 // Method java/lang/String.equals:(Ljava/lang/Object;)Z
50: ifeq 83
53: iconst_0
54: istore_2
55: goto 83
58: aload_1
59: ldc #27 // String lambda$main$871ceed3$1
61: invokevirtual #26 // Method java/lang/String.equals:(Ljava/lang/Object;)Z
64: ifeq 83
67: iconst_1
68: istore_2
69: goto 83
72: aload_1
73: ldc #28 // String lambda$main$28d50090$1
75: invokevirtual #26 // Method java/lang/String.equals:(Ljava/lang/Object;)Z
78: ifeq 83
81: iconst_2
82: istore_2
83: iload_2
84: tableswitch { // 0 to 2
0: 112
1: 194
2: 277
default: 352
}
112: aload_0
113: invokevirtual #29 // Method java/lang/invoke/SerializedLambda.getImplMethodKind:()I
116: iconst_5
117: if_icmpne 352
120: aload_0
121: invokevirtual #30 // Method java/lang/invoke/SerializedLambda.getFunctionalInterfaceClass:()Ljava/lang/String;
124: ldc #31 // String org/apache/spark/api/java/function/VoidFunction
126: invokevirtual #32 // Method java/lang/Object.equals:(Ljava/lang/Object;)Z
129: ifeq 352
132: aload_0
133: invokevirtual #33 // Method java/lang/invoke/SerializedLambda.getFunctionalInterfaceMethodName:()Ljava/lang/String;
136: ldc #34 // String call
138: invokevirtual #32 // Method java/lang/Object.equals:(Ljava/lang/Object;)Z
141: ifeq 352
144: aload_0
145: invokevirtual #35 // Method java/lang/invoke/SerializedLambda.getFunctionalInterfaceMethodSignature:()Ljava/lang/String;
148: ldc #36 // String (Ljava/lang/Object;)V
150: invokevirtual #32 // Method java/lang/Object.equals:(Ljava/lang/Object;)Z
153: ifeq 352
156: aload_0
157: invokevirtual #37 // Method java/lang/invoke/SerializedLambda.getImplClass:()Ljava/lang/String;
160: ldc #38 // String java/io/PrintStream
162: invokevirtual #32 // Method java/lang/Object.equals:(Ljava/lang/Object;)Z
165: ifeq 352
168: aload_0
169: invokevirtual #39 // Method java/lang/invoke/SerializedLambda.getImplMethodSignature:()Ljava/lang/String;
172: ldc #40 // String (Ljava/lang/String;)V
174: invokevirtual #32 // Method java/lang/Object.equals:(Ljava/lang/Object;)Z
177: ifeq 352
180: aload_0
181: iconst_0
182: invokevirtual #41 // Method java/lang/invoke/SerializedLambda.getCapturedArg:(I)Ljava/lang/Object;
185: checkcast #42 // class java/io/PrintStream
188: invokedynamic #5, 0 // InvokeDynamic #1:call:(Ljava/io/PrintStream;)Lorg/apache/spark/api/java/function/VoidFunction;
193: areturn
194: aload_0
195: invokevirtual #29 // Method java/lang/invoke/SerializedLambda.getImplMethodKind:()I
198: bipush 6
200: if_icmpne 352
203: aload_0
204: invokevirtual #30 // Method java/lang/invoke/SerializedLambda.getFunctionalInterfaceClass:()Ljava/lang/String;
207: ldc #31 // String org/apache/spark/api/java/function/VoidFunction
209: invokevirtual #32 // Method java/lang/Object.equals:(Ljava/lang/Object;)Z
212: ifeq 352
215: aload_0
216: invokevirtual #33 // Method java/lang/invoke/SerializedLambda.getFunctionalInterfaceMethodName:()Ljava/lang/String;
219: ldc #34 // String call
221: invokevirtual #32 // Method java/lang/Object.equals:(Ljava/lang/Object;)Z
224: ifeq 352
227: aload_0
228: invokevirtual #35 // Method java/lang/invoke/SerializedLambda.getFunctionalInterfaceMethodSignature:()Ljava/lang/String;
231: ldc #36 // String (Ljava/lang/Object;)V
233: invokevirtual #32 // Method java/lang/Object.equals:(Ljava/lang/Object;)Z
236: ifeq 352
239: aload_0
240: invokevirtual #37 // Method java/lang/invoke/SerializedLambda.getImplClass:()Ljava/lang/String;
243: ldc #43 // String Demo
245: invokevirtual #32 // Method java/lang/Object.equals:(Ljava/lang/Object;)Z
248: ifeq 352
251: aload_0
252: invokevirtual #39 // Method java/lang/invoke/SerializedLambda.getImplMethodSignature:()Ljava/lang/String;
255: ldc #44 // String (Ljava/io/PrintStream;Ljava/lang/String;)V
257: invokevirtual #32 // Method java/lang/Object.equals:(Ljava/lang/Object;)Z
260: ifeq 352
263: aload_0
264: iconst_0
265: invokevirtual #41 // Method java/lang/invoke/SerializedLambda.getCapturedArg:(I)Ljava/lang/Object;
268: checkcast #42 // class java/io/PrintStream
271: invokedynamic #6, 0 // InvokeDynamic #2:call:(Ljava/io/PrintStream;)Lorg/apache/spark/api/java/function/VoidFunction;
276: areturn
277: aload_0
278: invokevirtual #29 // Method java/lang/invoke/SerializedLambda.getImplMethodKind:()I
281: bipush 6
283: if_icmpne 352
286: aload_0
287: invokevirtual #30 // Method java/lang/invoke/SerializedLambda.getFunctionalInterfaceClass:()Ljava/lang/String;
290: ldc #31 // String org/apache/spark/api/java/function/VoidFunction
292: invokevirtual #32 // Method java/lang/Object.equals:(Ljava/lang/Object;)Z
295: ifeq 352
298: aload_0
299: invokevirtual #33 // Method java/lang/invoke/SerializedLambda.getFunctionalInterfaceMethodName:()Ljava/lang/String;
302: ldc #34 // String call
304: invokevirtual #32 // Method java/lang/Object.equals:(Ljava/lang/Object;)Z
307: ifeq 352
310: aload_0
311: invokevirtual #35 // Method java/lang/invoke/SerializedLambda.getFunctionalInterfaceMethodSignature:()Ljava/lang/String;
314: ldc #36 // String (Ljava/lang/Object;)V
316: invokevirtual #32 // Method java/lang/Object.equals:(Ljava/lang/Object;)Z
319: ifeq 352
322: aload_0
323: invokevirtual #37 // Method java/lang/invoke/SerializedLambda.getImplClass:()Ljava/lang/String;
326: ldc #43 // String Demo
328: invokevirtual #32 // Method java/lang/Object.equals:(Ljava/lang/Object;)Z
331: ifeq 352
334: aload_0
335: invokevirtual #39 // Method java/lang/invoke/SerializedLambda.getImplMethodSignature:()Ljava/lang/String;
338: ldc #40 // String (Ljava/lang/String;)V
340: invokevirtual #32 // Method java/lang/Object.equals:(Ljava/lang/Object;)Z
343: ifeq 352
346: invokedynamic #2, 0 // InvokeDynamic #0:call:()Lorg/apache/spark/api/java/function/VoidFunction;
351: areturn
352: new #45 // class java/lang/IllegalArgumentException
355: dup
356: ldc #46 // String Invalid lambda deserialization
358: invokespecial #47 // Method java/lang/IllegalArgumentException."<init>":(Ljava/lang/String;)V
361: athrow
LineNumberTable:
line 4: 0
LocalVariableTable:
Start Length Slot Name Signature
0 362 0 lambda Ljava/lang/invoke/SerializedLambda;
StackMapTable: number_of_entries = 8
frame_type = 253 /* append */
offset_delta = 44
locals = [ class java/lang/String, int ]
frame_type = 13 /* same */
frame_type = 13 /* same */
frame_type = 10 /* same */
frame_type = 28 /* same */
frame_type = 251 /* same_frame_extended */
offset_delta = 81
frame_type = 251 /* same_frame_extended */
offset_delta = 82
frame_type = 249 /* chop */
offset_delta = 74
private static void lambda$main$871ceed3$1(java.io.PrintStream, java.lang.String) throws java.lang.Exception;
descriptor: (Ljava/io/PrintStream;Ljava/lang/String;)V
flags: ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=2, locals=2, args_size=2
0: aload_0
1: aload_1
2: invokevirtual #16 // Method java/io/PrintStream.println:(Ljava/lang/String;)V
5: return
LineNumberTable:
line 9: 0
LocalVariableTable:
Start Length Slot Name Signature
0 6 0 sysout Ljava/io/PrintStream;
0 6 1 s Ljava/lang/String;
Exceptions:
throws java.lang.Exception
private static void lambda$main$28d50090$1(java.lang.String) throws java.lang.Exception;
descriptor: (Ljava/lang/String;)V
flags: ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=2, locals=1, args_size=1
0: getstatic #3 // Field java/lang/System.out:Ljava/io/PrintStream;
3: aload_0
4: invokevirtual #16 // Method java/io/PrintStream.println:(Ljava/lang/String;)V
7: return
LineNumberTable:
line 6: 0
LocalVariableTable:
Start Length Slot Name Signature
0 8 0 s Ljava/lang/String;
Exceptions:
throws java.lang.Exception
}
SourceFile: "Demo.java"
InnerClasses:
public static final #185= #184 of #188; //Lookup=class java/lang/invoke/MethodHandles$Lookup of class java/lang/invoke/MethodHandles
BootstrapMethods:
0: #99 invokestatic java/lang/invoke/LambdaMetafactory.altMetafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;[Ljava/lang/Object;)Ljava/lang/invoke/CallSite;
Method arguments:
#100 (Ljava/lang/Object;)V
#101 invokestatic Demo.lambda$main$28d50090$1:(Ljava/lang/String;)V
#102 (Ljava/lang/String;)V
#103 5
#104 0
1: #99 invokestatic java/lang/invoke/LambdaMetafactory.altMetafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;[Ljava/lang/Object;)Ljava/lang/invoke/CallSite;
Method arguments:
#100 (Ljava/lang/Object;)V
#109 invokevirtual java/io/PrintStream.println:(Ljava/lang/String;)V
#102 (Ljava/lang/String;)V
#103 5
#104 0
2: #99 invokestatic java/lang/invoke/LambdaMetafactory.altMetafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;[Ljava/lang/Object;)Ljava/lang/invoke/CallSite;
Method arguments:
#100 (Ljava/lang/Object;)V
#111 invokestatic Demo.lambda$main$871ceed3$1:(Ljava/io/PrintStream;Ljava/lang/String;)V
#102 (Ljava/lang/String;)V
#103 5
#104 0
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment