public final class org.hibernate.type.descriptor.java.DataHelper
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: org.hibernate.type.descriptor.java.DataHelper
super_class: java.lang.Object
{
private static final int BUFFER_SIZE;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 4096
private static final org.hibernate.internal.CoreMessageLogger LOG;
descriptor: Lorg/hibernate/internal/CoreMessageLogger;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=0, args_size=0
0: ldc Lorg/hibernate/internal/CoreMessageLogger;
ldc Lorg/hibernate/type/descriptor/java/DataHelper;
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
invokestatic org.jboss.logging.Logger.getMessageLogger:(Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/Object;
checkcast org.hibernate.internal.CoreMessageLogger
putstatic org.hibernate.type.descriptor.java.DataHelper.LOG:Lorg/hibernate/internal/CoreMessageLogger;
return
LocalVariableTable:
Start End Slot Name Signature
private void <init>();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/hibernate/type/descriptor/java/DataHelper;
public static boolean isNClob(java.lang.Class);
descriptor: (Ljava/lang/Class;)Z
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: ldc Ljava/sql/NClob;
aload 0
invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 type Ljava/lang/Class;
MethodParameters:
Name Flags
type final
public static java.lang.String (java.io.Reader);
descriptor: (Ljava/io/Reader;)Ljava/lang/String;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
sipush 4096
invokestatic org.hibernate.type.descriptor.java.DataHelper.extractString:(Ljava/io/Reader;I)Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 reader Ljava/io/Reader;
MethodParameters:
Name Flags
reader
public static java.lang.String (java.io.Reader, int);
descriptor: (Ljava/io/Reader;I)Ljava/lang/String;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=8, args_size=2
start local 0 start local 1 0: iload 1
invokestatic org.hibernate.type.descriptor.java.DataHelper.getSuggestedBufferSize:(I)I
istore 2
start local 2 1: new java.lang.StringBuilder
dup
iload 2
invokespecial java.lang.StringBuilder.<init>:(I)V
astore 3
start local 3 2: iload 2
newarray 5
astore 4
start local 4 3: StackMap locals: int java.lang.StringBuilder char[]
StackMap stack:
aload 0
aload 4
iconst_0
iload 2
invokevirtual java.io.Reader.read:([CII)I
istore 5
start local 5 4: iload 5
iconst_m1
if_icmpne 6
5: goto 16
6: StackMap locals: int
StackMap stack:
aload 3
aload 4
iconst_0
iload 5
invokevirtual java.lang.StringBuilder.append:([CII)Ljava/lang/StringBuilder;
pop
end local 5 7: goto 3
end local 4 8: StackMap locals: java.io.Reader int int java.lang.StringBuilder
StackMap stack: java.io.IOException
astore 4
start local 4 9: new org.hibernate.HibernateException
dup
ldc "IOException occurred reading text"
aload 4
invokespecial org.hibernate.HibernateException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 4 10: StackMap locals:
StackMap stack: java.lang.Throwable
astore 6
11: aload 0
invokevirtual java.io.Reader.close:()V
12: goto 15
13: StackMap locals: java.io.Reader int int java.lang.StringBuilder top top java.lang.Throwable
StackMap stack: java.io.IOException
astore 7
start local 7 14: getstatic org.hibernate.type.descriptor.java.DataHelper.LOG:Lorg/hibernate/internal/CoreMessageLogger;
aload 7
invokeinterface org.hibernate.internal.CoreMessageLogger.unableToCloseStream:(Ljava/io/IOException;)V
end local 7 15: StackMap locals:
StackMap stack:
aload 6
athrow
16: StackMap locals: java.io.Reader int int java.lang.StringBuilder
StackMap stack:
aload 0
invokevirtual java.io.Reader.close:()V
17: goto 20
18: StackMap locals:
StackMap stack: java.io.IOException
astore 7
start local 7 19: getstatic org.hibernate.type.descriptor.java.DataHelper.LOG:Lorg/hibernate/internal/CoreMessageLogger;
aload 7
invokeinterface org.hibernate.internal.CoreMessageLogger.unableToCloseStream:(Ljava/io/IOException;)V
end local 7 20: StackMap locals:
StackMap stack:
aload 3
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 21 0 reader Ljava/io/Reader;
0 21 1 lengthHint I
1 21 2 bufferSize I
2 21 3 stringBuilder Ljava/lang/StringBuilder;
3 8 4 buffer [C
4 7 5 amountRead I
9 10 4 ioe Ljava/io/IOException;
14 15 7 e Ljava/io/IOException;
19 20 7 e Ljava/io/IOException;
Exception table:
from to target type
2 8 8 Class java.io.IOException
2 10 10 any
11 12 13 Class java.io.IOException
16 17 18 Class java.io.IOException
MethodParameters:
Name Flags
reader
lengthHint
private static java.lang.String (java.io.Reader, long, int);
descriptor: (Ljava/io/Reader;JI)Ljava/lang/String;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=11, args_size=3
start local 0 start local 1 start local 3 0: iload 3
ifne 2
1: ldc ""
areturn
2: StackMap locals:
StackMap stack:
new java.lang.StringBuilder
dup
iload 3
invokespecial java.lang.StringBuilder.<init>:(I)V
astore 4
start local 4 3: aload 0
lload 1
invokevirtual java.io.Reader.skip:(J)J
lstore 5
start local 5 4: lload 5
lload 1
lcmp
ifeq 6
5: new org.hibernate.HibernateException
dup
ldc "Unable to skip needed bytes"
invokespecial org.hibernate.HibernateException.<init>:(Ljava/lang/String;)V
athrow
6: StackMap locals: java.lang.StringBuilder long
StackMap stack:
iload 3
invokestatic org.hibernate.type.descriptor.java.DataHelper.getSuggestedBufferSize:(I)I
istore 7
start local 7 7: iload 7
newarray 5
astore 8
start local 8 8: iconst_0
istore 9
start local 9 9: StackMap locals: int char[] int
StackMap stack:
aload 0
aload 8
iconst_0
iload 7
invokevirtual java.io.Reader.read:([CII)I
istore 10
start local 10 10: iload 10
iconst_m1
if_icmpne 12
11: goto 20
12: StackMap locals: int
StackMap stack:
aload 4
aload 8
iconst_0
iload 10
invokevirtual java.lang.StringBuilder.append:([CII)Ljava/lang/StringBuilder;
pop
13: iload 10
iload 7
if_icmpge 15
14: goto 20
15: StackMap locals:
StackMap stack:
iload 9
iload 10
iadd
istore 9
16: iload 9
iload 3
if_icmplt 9
end local 10 end local 9 end local 8 end local 7 end local 5 17: goto 20
18: StackMap locals: java.io.Reader long int java.lang.StringBuilder
StackMap stack: java.io.IOException
astore 5
start local 5 19: new org.hibernate.HibernateException
dup
ldc "IOException occurred reading a binary value"
aload 5
invokespecial org.hibernate.HibernateException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 5 20: StackMap locals:
StackMap stack:
aload 4
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
end local 4 end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 21 0 characterStream Ljava/io/Reader;
0 21 1 start J
0 21 3 length I
3 21 4 stringBuilder Ljava/lang/StringBuilder;
4 17 5 skipped J
7 17 7 bufferSize I
8 17 8 buffer [C
9 17 9 charsRead I
10 17 10 amountRead I
19 20 5 ioe Ljava/io/IOException;
Exception table:
from to target type
3 17 18 Class java.io.IOException
MethodParameters:
Name Flags
characterStream
start
length
public static java.lang.Object subStream(java.io.Reader, long, int);
descriptor: (Ljava/io/Reader;JI)Ljava/lang/Object;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=6, locals=4, args_size=3
start local 0 start local 1 start local 3 0: new java.io.StringReader
dup
aload 0
lload 1
iload 3
invokestatic org.hibernate.type.descriptor.java.DataHelper.extractString:(Ljava/io/Reader;JI)Ljava/lang/String;
invokespecial java.io.StringReader.<init>:(Ljava/lang/String;)V
areturn
end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 characterStream Ljava/io/Reader;
0 1 1 start J
0 1 3 length I
MethodParameters:
Name Flags
characterStream
start
length
public static byte[] (java.io.InputStream);
descriptor: (Ljava/io/InputStream;)[B
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=6, args_size=1
start local 0 0: ldc Lorg/hibernate/engine/jdbc/BinaryStream;
aload 0
invokevirtual java.lang.Class.isInstance:(Ljava/lang/Object;)Z
ifeq 2
1: aload 0
checkcast org.hibernate.engine.jdbc.BinaryStream
invokeinterface org.hibernate.engine.jdbc.BinaryStream.getBytes:()[B
areturn
2: StackMap locals:
StackMap stack:
new java.io.ByteArrayOutputStream
dup
sipush 4096
invokespecial java.io.ByteArrayOutputStream.<init>:(I)V
astore 1
start local 1 3: sipush 4096
newarray 8
astore 2
start local 2 4: StackMap locals: java.io.ByteArrayOutputStream byte[]
StackMap stack:
aload 0
aload 2
invokevirtual java.io.InputStream.read:([B)I
istore 3
start local 3 5: iload 3
iconst_m1
if_icmpne 7
6: goto 21
7: StackMap locals: int
StackMap stack:
aload 1
aload 2
iconst_0
iload 3
invokevirtual java.io.ByteArrayOutputStream.write:([BII)V
end local 3 8: goto 4
end local 2 9: StackMap locals: java.io.InputStream java.io.ByteArrayOutputStream
StackMap stack: java.io.IOException
astore 2
start local 2 10: new org.hibernate.HibernateException
dup
ldc "IOException occurred reading a binary value"
aload 2
invokespecial org.hibernate.HibernateException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 2 11: StackMap locals:
StackMap stack: java.lang.Throwable
astore 4
12: aload 0
invokevirtual java.io.InputStream.close:()V
13: goto 16
14: StackMap locals: java.io.InputStream java.io.ByteArrayOutputStream top top java.lang.Throwable
StackMap stack: java.io.IOException
astore 5
start local 5 15: getstatic org.hibernate.type.descriptor.java.DataHelper.LOG:Lorg/hibernate/internal/CoreMessageLogger;
aload 5
invokeinterface org.hibernate.internal.CoreMessageLogger.unableToCloseInputStream:(Ljava/io/IOException;)V
end local 5 16: StackMap locals:
StackMap stack:
aload 1
invokevirtual java.io.ByteArrayOutputStream.close:()V
17: goto 20
18: StackMap locals:
StackMap stack: java.io.IOException
astore 5
start local 5 19: getstatic org.hibernate.type.descriptor.java.DataHelper.LOG:Lorg/hibernate/internal/CoreMessageLogger;
aload 5
invokeinterface org.hibernate.internal.CoreMessageLogger.unableToCloseOutputStream:(Ljava/io/IOException;)V
end local 5 20: StackMap locals:
StackMap stack:
aload 4
athrow
21: StackMap locals: java.io.InputStream java.io.ByteArrayOutputStream
StackMap stack:
aload 0
invokevirtual java.io.InputStream.close:()V
22: goto 25
23: StackMap locals:
StackMap stack: java.io.IOException
astore 5
start local 5 24: getstatic org.hibernate.type.descriptor.java.DataHelper.LOG:Lorg/hibernate/internal/CoreMessageLogger;
aload 5
invokeinterface org.hibernate.internal.CoreMessageLogger.unableToCloseInputStream:(Ljava/io/IOException;)V
end local 5 25: StackMap locals:
StackMap stack:
aload 1
invokevirtual java.io.ByteArrayOutputStream.close:()V
26: goto 29
27: StackMap locals:
StackMap stack: java.io.IOException
astore 5
start local 5 28: getstatic org.hibernate.type.descriptor.java.DataHelper.LOG:Lorg/hibernate/internal/CoreMessageLogger;
aload 5
invokeinterface org.hibernate.internal.CoreMessageLogger.unableToCloseOutputStream:(Ljava/io/IOException;)V
end local 5 29: StackMap locals:
StackMap stack:
aload 1
invokevirtual java.io.ByteArrayOutputStream.toByteArray:()[B
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 30 0 inputStream Ljava/io/InputStream;
3 30 1 outputStream Ljava/io/ByteArrayOutputStream;
4 9 2 buffer [B
5 8 3 amountRead I
10 11 2 ioe Ljava/io/IOException;
15 16 5 e Ljava/io/IOException;
24 25 5 e Ljava/io/IOException;
19 20 5 e Ljava/io/IOException;
28 29 5 e Ljava/io/IOException;
Exception table:
from to target type
3 9 9 Class java.io.IOException
3 11 11 any
12 13 14 Class java.io.IOException
16 17 18 Class java.io.IOException
21 22 23 Class java.io.IOException
25 26 27 Class java.io.IOException
MethodParameters:
Name Flags
inputStream
public static byte[] (java.io.InputStream, long, int);
descriptor: (Ljava/io/InputStream;JI)[B
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=5, locals=10, args_size=3
start local 0 start local 1 start local 3 0: ldc Lorg/hibernate/engine/jdbc/BinaryStream;
aload 0
invokevirtual java.lang.Class.isInstance:(Ljava/lang/Object;)Z
ifeq 6
ldc 2147483647
lload 1
lcmp
ifle 6
1: aload 0
checkcast org.hibernate.engine.jdbc.BinaryStream
invokeinterface org.hibernate.engine.jdbc.BinaryStream.getBytes:()[B
astore 4
start local 4 2: iload 3
aload 4
arraylength
invokestatic java.lang.Math.min:(II)I
istore 5
start local 5 3: iload 5
newarray 8
astore 6
start local 6 4: aload 4
lload 1
l2i
aload 6
iconst_0
iload 5
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
5: aload 6
areturn
end local 6 end local 5 end local 4 6: StackMap locals:
StackMap stack:
new java.io.ByteArrayOutputStream
dup
iload 3
invokespecial java.io.ByteArrayOutputStream.<init>:(I)V
astore 4
start local 4 7: aload 0
lload 1
invokevirtual java.io.InputStream.skip:(J)J
lstore 5
start local 5 8: lload 5
lload 1
lcmp
ifeq 10
9: new org.hibernate.HibernateException
dup
ldc "Unable to skip needed bytes"
invokespecial org.hibernate.HibernateException.<init>:(Ljava/lang/String;)V
athrow
10: StackMap locals: java.io.ByteArrayOutputStream long
StackMap stack:
sipush 4096
newarray 8
astore 7
start local 7 11: iconst_0
istore 8
start local 8 12: StackMap locals: byte[] int
StackMap stack:
aload 0
aload 7
invokevirtual java.io.InputStream.read:([B)I
istore 9
start local 9 13: iload 9
iconst_m1
if_icmpne 15
14: goto 23
15: StackMap locals: int
StackMap stack:
aload 4
aload 7
iconst_0
iload 9
invokevirtual java.io.ByteArrayOutputStream.write:([BII)V
16: iload 9
aload 7
arraylength
if_icmpge 18
17: goto 23
18: StackMap locals:
StackMap stack:
iload 8
iload 9
iadd
istore 8
19: iload 8
iload 3
if_icmplt 12
end local 9 end local 8 end local 7 end local 5 20: goto 23
21: StackMap locals: java.io.InputStream long int java.io.ByteArrayOutputStream
StackMap stack: java.io.IOException
astore 5
start local 5 22: new org.hibernate.HibernateException
dup
ldc "IOException occurred reading a binary value"
aload 5
invokespecial org.hibernate.HibernateException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 5 23: StackMap locals:
StackMap stack:
aload 4
invokevirtual java.io.ByteArrayOutputStream.toByteArray:()[B
areturn
end local 4 end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 24 0 inputStream Ljava/io/InputStream;
0 24 1 start J
0 24 3 length I
2 6 4 data [B
3 6 5 size I
4 6 6 result [B
7 24 4 outputStream Ljava/io/ByteArrayOutputStream;
8 20 5 skipped J
11 20 7 buffer [B
12 20 8 bytesRead I
13 20 9 amountRead I
22 23 5 ioe Ljava/io/IOException;
Exception table:
from to target type
7 20 21 Class java.io.IOException
MethodParameters:
Name Flags
inputStream
start
length
public static java.io.InputStream subStream(java.io.InputStream, long, int);
descriptor: (Ljava/io/InputStream;JI)Ljava/io/InputStream;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=6, locals=4, args_size=3
start local 0 start local 1 start local 3 0: new org.hibernate.engine.jdbc.internal.BinaryStreamImpl
dup
aload 0
lload 1
iload 3
invokestatic org.hibernate.type.descriptor.java.DataHelper.extractBytes:(Ljava/io/InputStream;JI)[B
invokespecial org.hibernate.engine.jdbc.internal.BinaryStreamImpl.<init>:([B)V
areturn
end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 inputStream Ljava/io/InputStream;
0 1 1 start J
0 1 3 length I
MethodParameters:
Name Flags
inputStream
start
length
public static java.lang.String (java.sql.Clob);
descriptor: (Ljava/sql/Clob;)Ljava/lang/String;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=4, args_size=1
start local 0 0: aload 0
invokeinterface java.sql.Clob.getCharacterStream:()Ljava/io/Reader;
astore 1
start local 1 1: aload 0
invokestatic org.hibernate.type.descriptor.java.DataHelper.determineLengthForBufferSizing:(Ljava/sql/Clob;)J
lstore 2
start local 2 2: lload 2
ldc 2147483647
lcmp
ifle 4
3: aload 1
ldc 2147483647
invokestatic org.hibernate.type.descriptor.java.DataHelper.extractString:(Ljava/io/Reader;I)Ljava/lang/String;
goto 5
4: StackMap locals: java.io.Reader long
StackMap stack:
aload 1
lload 2
l2i
invokestatic org.hibernate.type.descriptor.java.DataHelper.extractString:(Ljava/io/Reader;I)Ljava/lang/String;
5: StackMap locals:
StackMap stack: java.lang.String
areturn
end local 2 end local 1 6: StackMap locals: java.sql.Clob
StackMap stack: java.sql.SQLException
astore 1
start local 1 7: new org.hibernate.HibernateException
dup
ldc "Unable to access lob stream"
aload 1
invokespecial org.hibernate.HibernateException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 value Ljava/sql/Clob;
1 6 1 characterStream Ljava/io/Reader;
2 6 2 length J
7 8 1 e Ljava/sql/SQLException;
Exception table:
from to target type
0 5 6 Class java.sql.SQLException
MethodParameters:
Name Flags
value final
private static long determineLengthForBufferSizing(java.sql.Clob);
descriptor: (Ljava/sql/Clob;)J
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokeinterface java.sql.Clob.length:()J
1: lreturn
2: StackMap locals:
StackMap stack: java.sql.SQLFeatureNotSupportedException
pop
3: ldc 4096
lreturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 value Ljava/sql/Clob;
Exception table:
from to target type
0 1 2 Class java.sql.SQLFeatureNotSupportedException
Exceptions:
throws java.sql.SQLException
MethodParameters:
Name Flags
value
private static int getSuggestedBufferSize(int);
descriptor: (I)I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: iconst_1
iload 0
sipush 4096
invokestatic java.lang.Math.min:(II)I
invokestatic java.lang.Math.max:(II)I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 lengthHint I
MethodParameters:
Name Flags
lengthHint final
}
SourceFile: "DataHelper.java"