public class com.sun.media.jfxmedia.locator.Locator
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: com.sun.media.jfxmedia.locator.Locator
super_class: java.lang.Object
{
public static final java.lang.String DEFAULT_CONTENT_TYPE;
descriptor: Ljava/lang/String;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: "application/octet-stream"
private static final int MAX_CONNECTION_ATTEMPTS;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 5
private static final long CONNECTION_RETRY_INTERVAL;
descriptor: J
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 1000
private static final int CONNECTION_TIMEOUT;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 300000
protected java.lang.String contentType;
descriptor: Ljava/lang/String;
flags: (0x0004) ACC_PROTECTED
protected long contentLength;
descriptor: J
flags: (0x0004) ACC_PROTECTED
protected java.net.URI uri;
descriptor: Ljava/net/URI;
flags: (0x0004) ACC_PROTECTED
private java.util.Map<java.lang.String, java.lang.Object> connectionProperties;
descriptor: Ljava/util/Map;
flags: (0x0002) ACC_PRIVATE
Signature: Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;
private final java.lang.Object propertyLock;
descriptor: Ljava/lang/Object;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private java.lang.String uriString;
descriptor: Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
private java.lang.String scheme;
descriptor: Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
private java.lang.String protocol;
descriptor: Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
private com.sun.media.jfxmedia.locator.LocatorCache$CacheReference cacheEntry;
descriptor: Lcom/sun/media/jfxmedia/locator/LocatorCache$CacheReference;
flags: (0x0002) ACC_PRIVATE
private boolean canBlock;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private java.util.concurrent.CountDownLatch readySignal;
descriptor: Ljava/util/concurrent/CountDownLatch;
flags: (0x0002) ACC_PRIVATE
private boolean isIpod;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private com.sun.media.jfxmedia.locator.Locator$LocatorConnection getConnection(java.net.URI, java.lang.String);
descriptor: (Ljava/net/URI;Ljava/lang/String;)Lcom/sun/media/jfxmedia/locator/Locator$LocatorConnection;
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=9, args_size=3
start local 0 start local 1 start local 2 0: new com.sun.media.jfxmedia.locator.Locator$LocatorConnection
dup
invokespecial com.sun.media.jfxmedia.locator.Locator$LocatorConnection.<init>:()V
astore 3
start local 3 1: aload 1
invokevirtual java.net.URI.toURL:()Ljava/net/URL;
invokevirtual java.net.URL.openConnection:()Ljava/net/URLConnection;
checkcast java.net.HttpURLConnection
astore 4
start local 4 2: aload 4
aload 2
invokevirtual java.net.HttpURLConnection.setRequestMethod:(Ljava/lang/String;)V
3: aload 4
ldc 300000
invokevirtual java.net.HttpURLConnection.setConnectTimeout:(I)V
4: aload 4
ldc 300000
invokevirtual java.net.HttpURLConnection.setReadTimeout:(I)V
5: aload 0
getfield com.sun.media.jfxmedia.locator.Locator.propertyLock:Ljava/lang/Object;
dup
astore 5
monitorenter
6: aload 0
getfield com.sun.media.jfxmedia.locator.Locator.connectionProperties:Ljava/util/Map;
ifnull 13
7: aload 0
getfield com.sun.media.jfxmedia.locator.Locator.connectionProperties:Ljava/util/Map;
invokeinterface java.util.Map.keySet:()Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 7
goto 12
StackMap locals: com.sun.media.jfxmedia.locator.Locator java.net.URI java.lang.String com.sun.media.jfxmedia.locator.Locator$LocatorConnection java.net.HttpURLConnection java.lang.Object top java.util.Iterator
StackMap stack:
8: aload 7
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.String
astore 6
start local 6 9: aload 0
getfield com.sun.media.jfxmedia.locator.Locator.connectionProperties:Ljava/util/Map;
aload 6
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
astore 8
start local 8 10: aload 8
instanceof java.lang.String
ifeq 12
11: aload 4
aload 6
aload 8
checkcast java.lang.String
invokevirtual java.net.HttpURLConnection.setRequestProperty:(Ljava/lang/String;Ljava/lang/String;)V
end local 8 end local 6 12: StackMap locals:
StackMap stack:
aload 7
invokeinterface java.util.Iterator.hasNext:()Z
ifne 8
13: StackMap locals: com.sun.media.jfxmedia.locator.Locator java.net.URI java.lang.String com.sun.media.jfxmedia.locator.Locator$LocatorConnection java.net.HttpURLConnection java.lang.Object
StackMap stack:
aload 5
monitorexit
14: goto 17
StackMap locals:
StackMap stack: java.lang.Throwable
15: aload 5
monitorexit
16: athrow
17: StackMap locals:
StackMap stack:
aload 3
aload 4
invokevirtual java.net.HttpURLConnection.getResponseCode:()I
putfield com.sun.media.jfxmedia.locator.Locator$LocatorConnection.responseCode:I
18: aload 4
invokevirtual java.net.HttpURLConnection.getResponseCode:()I
sipush 200
if_icmpne 21
19: aload 3
aload 4
putfield com.sun.media.jfxmedia.locator.Locator$LocatorConnection.connection:Ljava/net/HttpURLConnection;
20: goto 23
21: StackMap locals:
StackMap stack:
aload 4
invokestatic com.sun.media.jfxmedia.locator.Locator.closeConnection:(Ljava/net/URLConnection;)V
22: aload 3
aconst_null
putfield com.sun.media.jfxmedia.locator.Locator$LocatorConnection.connection:Ljava/net/HttpURLConnection;
23: StackMap locals:
StackMap stack:
aload 3
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 24 0 this Lcom/sun/media/jfxmedia/locator/Locator;
0 24 1 uri Ljava/net/URI;
0 24 2 requestMethod Ljava/lang/String;
1 24 3 locatorConnection Lcom/sun/media/jfxmedia/locator/Locator$LocatorConnection;
2 24 4 connection Ljava/net/HttpURLConnection;
9 12 6 key Ljava/lang/String;
10 12 8 value Ljava/lang/Object;
Exception table:
from to target type
6 14 15 any
15 16 15 any
Exceptions:
throws java.net.MalformedURLException, java.io.IOException
MethodParameters:
Name Flags
uri
requestMethod
private static long getContentLengthLong(java.net.URLConnection);
descriptor: (Ljava/net/URLConnection;)J
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=2, args_size=1
start local 0 0: invokedynamic run()Ljava/security/PrivilegedAction;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
()Ljava/lang/Object;
com/sun/media/jfxmedia/locator/Locator.lambda$0()Ljava/lang/reflect/Method; (6)
()Ljava/lang/reflect/Method;
invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;)Ljava/lang/Object;
checkcast java.lang.reflect.Method
astore 1
start local 1 1: aload 1
ifnull 4
2: aload 1
aload 0
iconst_0
anewarray java.lang.Object
invokevirtual java.lang.reflect.Method.invoke:(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.Long
invokevirtual java.lang.Long.longValue:()J
3: lreturn
4: StackMap locals: java.lang.reflect.Method
StackMap stack:
aload 0
invokevirtual java.net.URLConnection.getContentLength:()I
i2l
5: lreturn
6: StackMap locals:
StackMap stack: java.lang.Exception
pop
7: ldc -1
lreturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 connection Ljava/net/URLConnection;
1 8 1 method Ljava/lang/reflect/Method;
Exception table:
from to target type
1 3 6 Class java.lang.IllegalAccessException
4 5 6 Class java.lang.IllegalAccessException
1 3 6 Class java.lang.IllegalArgumentException
4 5 6 Class java.lang.IllegalArgumentException
1 3 6 Class java.lang.reflect.InvocationTargetException
4 5 6 Class java.lang.reflect.InvocationTargetException
MethodParameters:
Name Flags
connection
public void <init>(java.net.URI);
descriptor: (Ljava/net/URI;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=3, args_size=2
start local 0 start local 1 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
ldc "application/octet-stream"
putfield com.sun.media.jfxmedia.locator.Locator.contentType:Ljava/lang/String;
2: aload 0
ldc -1
putfield com.sun.media.jfxmedia.locator.Locator.contentLength:J
3: aload 0
new java.lang.Object
dup
invokespecial java.lang.Object.<init>:()V
putfield com.sun.media.jfxmedia.locator.Locator.propertyLock:Ljava/lang/Object;
4: aload 0
aconst_null
putfield com.sun.media.jfxmedia.locator.Locator.uriString:Ljava/lang/String;
5: aload 0
aconst_null
putfield com.sun.media.jfxmedia.locator.Locator.scheme:Ljava/lang/String;
6: aload 0
aconst_null
putfield com.sun.media.jfxmedia.locator.Locator.protocol:Ljava/lang/String;
7: aload 0
aconst_null
putfield com.sun.media.jfxmedia.locator.Locator.cacheEntry:Lcom/sun/media/jfxmedia/locator/LocatorCache$CacheReference;
8: aload 0
iconst_0
putfield com.sun.media.jfxmedia.locator.Locator.canBlock:Z
9: aload 0
new java.util.concurrent.CountDownLatch
dup
iconst_1
invokespecial java.util.concurrent.CountDownLatch.<init>:(I)V
putfield com.sun.media.jfxmedia.locator.Locator.readySignal:Ljava/util/concurrent/CountDownLatch;
10: aload 1
ifnonnull 12
11: new java.lang.NullPointerException
dup
ldc "uri == null!"
invokespecial java.lang.NullPointerException.<init>:(Ljava/lang/String;)V
athrow
12: StackMap locals: com.sun.media.jfxmedia.locator.Locator java.net.URI
StackMap stack:
aload 0
aload 1
invokevirtual java.net.URI.toASCIIString:()Ljava/lang/String;
putfield com.sun.media.jfxmedia.locator.Locator.uriString:Ljava/lang/String;
13: aload 0
aload 1
invokevirtual java.net.URI.getScheme:()Ljava/lang/String;
putfield com.sun.media.jfxmedia.locator.Locator.scheme:Ljava/lang/String;
14: aload 0
getfield com.sun.media.jfxmedia.locator.Locator.scheme:Ljava/lang/String;
ifnonnull 16
15: new java.lang.IllegalArgumentException
dup
new java.lang.StringBuilder
dup
ldc "uri.getScheme() == null! uri == '"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc "'"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
16: StackMap locals:
StackMap stack:
aload 0
aload 0
getfield com.sun.media.jfxmedia.locator.Locator.scheme:Ljava/lang/String;
invokevirtual java.lang.String.toLowerCase:()Ljava/lang/String;
putfield com.sun.media.jfxmedia.locator.Locator.scheme:Ljava/lang/String;
17: aload 0
getfield com.sun.media.jfxmedia.locator.Locator.scheme:Ljava/lang/String;
ldc "jar"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 24
18: new java.net.URI
dup
aload 0
getfield com.sun.media.jfxmedia.locator.Locator.uriString:Ljava/lang/String;
iconst_4
invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
invokespecial java.net.URI.<init>:(Ljava/lang/String;)V
astore 2
start local 2 19: aload 0
aload 2
invokevirtual java.net.URI.getScheme:()Ljava/lang/String;
putfield com.sun.media.jfxmedia.locator.Locator.protocol:Ljava/lang/String;
20: aload 0
getfield com.sun.media.jfxmedia.locator.Locator.protocol:Ljava/lang/String;
ifnonnull 22
21: new java.lang.IllegalArgumentException
dup
new java.lang.StringBuilder
dup
ldc "uri.getScheme() == null! subURI == '"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc "'"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
22: StackMap locals: java.net.URI
StackMap stack:
aload 0
aload 0
getfield com.sun.media.jfxmedia.locator.Locator.protocol:Ljava/lang/String;
invokevirtual java.lang.String.toLowerCase:()Ljava/lang/String;
putfield com.sun.media.jfxmedia.locator.Locator.protocol:Ljava/lang/String;
end local 2 23: goto 25
24: StackMap locals:
StackMap stack:
aload 0
aload 0
getfield com.sun.media.jfxmedia.locator.Locator.scheme:Ljava/lang/String;
putfield com.sun.media.jfxmedia.locator.Locator.protocol:Ljava/lang/String;
25: StackMap locals:
StackMap stack:
invokestatic com.sun.media.jfxmediaimpl.HostUtils.isIOS:()Z
ifeq 27
aload 0
getfield com.sun.media.jfxmedia.locator.Locator.protocol:Ljava/lang/String;
ldc "ipod-library"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 27
26: aload 0
iconst_1
putfield com.sun.media.jfxmedia.locator.Locator.isIpod:Z
27: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.media.jfxmedia.locator.Locator.isIpod:Z
ifne 29
aload 0
getfield com.sun.media.jfxmedia.locator.Locator.protocol:Ljava/lang/String;
invokestatic com.sun.media.jfxmedia.MediaManager.canPlayProtocol:(Ljava/lang/String;)Z
ifne 29
28: new java.lang.UnsupportedOperationException
dup
new java.lang.StringBuilder
dup
ldc "Unsupported protocol \""
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield com.sun.media.jfxmedia.locator.Locator.protocol:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "\""
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.UnsupportedOperationException.<init>:(Ljava/lang/String;)V
athrow
29: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.media.jfxmedia.locator.Locator.protocol:Ljava/lang/String;
ldc "http"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 30
aload 0
getfield com.sun.media.jfxmedia.locator.Locator.protocol:Ljava/lang/String;
ldc "https"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 31
30: StackMap locals:
StackMap stack:
aload 0
iconst_1
putfield com.sun.media.jfxmedia.locator.Locator.canBlock:Z
31: StackMap locals:
StackMap stack:
aload 0
aload 1
putfield com.sun.media.jfxmedia.locator.Locator.uri:Ljava/net/URI;
32: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 33 0 this Lcom/sun/media/jfxmedia/locator/Locator;
0 33 1 uri Ljava/net/URI;
19 23 2 subURI Ljava/net/URI;
Exceptions:
throws java.net.URISyntaxException
MethodParameters:
Name Flags
uri
private java.io.InputStream getInputStream(java.net.URI);
descriptor: (Ljava/net/URI;)Ljava/io/InputStream;
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=8, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual java.net.URI.toURL:()Ljava/net/URL;
astore 2
start local 2 1: aload 2
invokevirtual java.net.URL.openConnection:()Ljava/net/URLConnection;
astore 3
start local 3 2: aload 0
getfield com.sun.media.jfxmedia.locator.Locator.propertyLock:Ljava/lang/Object;
dup
astore 4
monitorenter
3: aload 0
getfield com.sun.media.jfxmedia.locator.Locator.connectionProperties:Ljava/util/Map;
ifnull 10
4: aload 0
getfield com.sun.media.jfxmedia.locator.Locator.connectionProperties:Ljava/util/Map;
invokeinterface java.util.Map.keySet:()Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 6
goto 9
StackMap locals: com.sun.media.jfxmedia.locator.Locator java.net.URI java.net.URL java.net.URLConnection java.lang.Object top java.util.Iterator
StackMap stack:
5: aload 6
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.String
astore 5
start local 5 6: aload 0
getfield com.sun.media.jfxmedia.locator.Locator.connectionProperties:Ljava/util/Map;
aload 5
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
astore 7
start local 7 7: aload 7
instanceof java.lang.String
ifeq 9
8: aload 3
aload 5
aload 7
checkcast java.lang.String
invokevirtual java.net.URLConnection.setRequestProperty:(Ljava/lang/String;Ljava/lang/String;)V
end local 7 end local 5 9: StackMap locals:
StackMap stack:
aload 6
invokeinterface java.util.Iterator.hasNext:()Z
ifne 5
10: StackMap locals: com.sun.media.jfxmedia.locator.Locator java.net.URI java.net.URL java.net.URLConnection java.lang.Object
StackMap stack:
aload 4
monitorexit
11: goto 14
StackMap locals:
StackMap stack: java.lang.Throwable
12: aload 4
monitorexit
13: athrow
14: StackMap locals:
StackMap stack:
aload 2
invokevirtual java.net.URL.openStream:()Ljava/io/InputStream;
astore 4
start local 4 15: aload 0
aload 3
invokestatic com.sun.media.jfxmedia.locator.Locator.getContentLengthLong:(Ljava/net/URLConnection;)J
putfield com.sun.media.jfxmedia.locator.Locator.contentLength:J
16: aload 4
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Lcom/sun/media/jfxmedia/locator/Locator;
0 17 1 uri Ljava/net/URI;
1 17 2 url Ljava/net/URL;
2 17 3 connection Ljava/net/URLConnection;
6 9 5 key Ljava/lang/String;
7 9 7 value Ljava/lang/Object;
15 17 4 inputStream Ljava/io/InputStream;
Exception table:
from to target type
3 11 12 any
12 13 12 any
Exceptions:
throws java.net.MalformedURLException, java.io.IOException
MethodParameters:
Name Flags
uri
public void cacheMedia();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=8, args_size=1
start local 0 0: invokestatic com.sun.media.jfxmedia.locator.LocatorCache.locatorCache:()Lcom/sun/media/jfxmedia/locator/LocatorCache;
aload 0
getfield com.sun.media.jfxmedia.locator.Locator.uri:Ljava/net/URI;
invokevirtual com.sun.media.jfxmedia.locator.LocatorCache.fetchURICache:(Ljava/net/URI;)Lcom/sun/media/jfxmedia/locator/LocatorCache$CacheReference;
astore 1
start local 1 1: aload 1
ifnonnull 28
2: aload 0
aload 0
getfield com.sun.media.jfxmedia.locator.Locator.uri:Ljava/net/URI;
invokevirtual com.sun.media.jfxmedia.locator.Locator.getInputStream:(Ljava/net/URI;)Ljava/io/InputStream;
astore 3
start local 3 3: goto 6
end local 3 StackMap locals: com.sun.media.jfxmedia.locator.Locator com.sun.media.jfxmedia.locator.LocatorCache$CacheReference
StackMap stack: java.lang.Throwable
4: pop
5: return
start local 3 6: StackMap locals: com.sun.media.jfxmedia.locator.Locator com.sun.media.jfxmedia.locator.LocatorCache$CacheReference top java.io.InputStream
StackMap stack:
aload 0
getfield com.sun.media.jfxmedia.locator.Locator.contentLength:J
l2i
invokestatic java.nio.ByteBuffer.allocateDirect:(I)Ljava/nio/ByteBuffer;
astore 2
start local 2 7: sipush 8192
newarray 8
astore 4
start local 4 8: iconst_0
istore 5
start local 5 9: goto 22
10: StackMap locals: com.sun.media.jfxmedia.locator.Locator com.sun.media.jfxmedia.locator.LocatorCache$CacheReference java.nio.ByteBuffer java.io.InputStream byte[] int
StackMap stack:
aload 3
aload 4
invokevirtual java.io.InputStream.read:([B)I
istore 6
start local 6 11: goto 19
end local 6 StackMap locals:
StackMap stack: java.io.IOException
12: astore 7
start local 7 13: aload 3
invokevirtual java.io.InputStream.close:()V
14: goto 16
StackMap locals: com.sun.media.jfxmedia.locator.Locator com.sun.media.jfxmedia.locator.LocatorCache$CacheReference java.nio.ByteBuffer java.io.InputStream byte[] int top java.io.IOException
StackMap stack: java.lang.Throwable
15: pop
16: StackMap locals:
StackMap stack:
iconst_1
invokestatic com.sun.media.jfxmedia.logging.Logger.canLog:(I)Z
ifeq 18
17: iconst_1
new java.lang.StringBuilder
dup
ldc "IOException trying to preload media: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 7
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokestatic com.sun.media.jfxmedia.logging.Logger.logMsg:(ILjava/lang/String;)V
18: StackMap locals:
StackMap stack:
return
end local 7 start local 6 19: StackMap locals: com.sun.media.jfxmedia.locator.Locator com.sun.media.jfxmedia.locator.LocatorCache$CacheReference java.nio.ByteBuffer java.io.InputStream byte[] int int
StackMap stack:
iload 6
iconst_m1
if_icmpne 21
20: goto 23
21: StackMap locals:
StackMap stack:
aload 2
aload 4
iconst_0
iload 6
invokevirtual java.nio.ByteBuffer.put:([BII)Ljava/nio/ByteBuffer;
pop
end local 6 22: StackMap locals:
StackMap stack:
iload 5
i2l
aload 0
getfield com.sun.media.jfxmedia.locator.Locator.contentLength:J
lcmp
iflt 10
23: StackMap locals:
StackMap stack:
aload 3
invokevirtual java.io.InputStream.close:()V
24: goto 26
StackMap locals:
StackMap stack: java.lang.Throwable
25: pop
26: StackMap locals:
StackMap stack:
aload 0
invokestatic com.sun.media.jfxmedia.locator.LocatorCache.locatorCache:()Lcom/sun/media/jfxmedia/locator/LocatorCache;
aload 0
getfield com.sun.media.jfxmedia.locator.Locator.uri:Ljava/net/URI;
aload 2
aload 0
getfield com.sun.media.jfxmedia.locator.Locator.contentType:Ljava/lang/String;
invokevirtual com.sun.media.jfxmedia.locator.LocatorCache.registerURICache:(Ljava/net/URI;Ljava/nio/ByteBuffer;Ljava/lang/String;)Lcom/sun/media/jfxmedia/locator/LocatorCache$CacheReference;
putfield com.sun.media.jfxmedia.locator.Locator.cacheEntry:Lcom/sun/media/jfxmedia/locator/LocatorCache$CacheReference;
27: aload 0
iconst_0
putfield com.sun.media.jfxmedia.locator.Locator.canBlock:Z
end local 5 end local 4 end local 3 end local 2 28: StackMap locals: com.sun.media.jfxmedia.locator.Locator com.sun.media.jfxmedia.locator.LocatorCache$CacheReference
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 29 0 this Lcom/sun/media/jfxmedia/locator/Locator;
1 29 1 ref Lcom/sun/media/jfxmedia/locator/LocatorCache$CacheReference;
7 28 2 cacheBuffer Ljava/nio/ByteBuffer;
3 4 3 is Ljava/io/InputStream;
6 28 3 is Ljava/io/InputStream;
8 28 4 readBuf [B
9 28 5 total I
11 12 6 count I
19 22 6 count I
13 19 7 ioe Ljava/io/IOException;
Exception table:
from to target type
2 3 4 Class java.lang.Throwable
10 11 12 Class java.io.IOException
13 14 15 Class java.lang.Throwable
23 24 25 Class java.lang.Throwable
public boolean canBlock();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.sun.media.jfxmedia.locator.Locator.canBlock:Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/sun/media/jfxmedia/locator/Locator;
public void init();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=8, args_size=1
start local 0 0: aload 0
getfield com.sun.media.jfxmedia.locator.Locator.uriString:Ljava/lang/String;
ldc "/"
invokevirtual java.lang.String.indexOf:(Ljava/lang/String;)I
istore 1
start local 1 1: iload 1
iconst_m1
if_icmpeq 7
aload 0
getfield com.sun.media.jfxmedia.locator.Locator.uriString:Ljava/lang/String;
iload 1
iconst_1
iadd
invokevirtual java.lang.String.charAt:(I)C
bipush 47
if_icmpeq 7
2: aload 0
getfield com.sun.media.jfxmedia.locator.Locator.protocol:Ljava/lang/String;
ldc "file"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 5
3: aload 0
aload 0
getfield com.sun.media.jfxmedia.locator.Locator.uriString:Ljava/lang/String;
ldc "/"
ldc "///"
invokevirtual java.lang.String.replaceFirst:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
putfield com.sun.media.jfxmedia.locator.Locator.uriString:Ljava/lang/String;
4: goto 7
StackMap locals: int
StackMap stack:
5: aload 0
getfield com.sun.media.jfxmedia.locator.Locator.protocol:Ljava/lang/String;
ldc "http"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 6
aload 0
getfield com.sun.media.jfxmedia.locator.Locator.protocol:Ljava/lang/String;
ldc "https"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 7
6: StackMap locals:
StackMap stack:
aload 0
aload 0
getfield com.sun.media.jfxmedia.locator.Locator.uriString:Ljava/lang/String;
ldc "/"
ldc "//"
invokevirtual java.lang.String.replaceFirst:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
putfield com.sun.media.jfxmedia.locator.Locator.uriString:Ljava/lang/String;
7: StackMap locals:
StackMap stack:
ldc "os.name"
invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
invokevirtual java.lang.String.toLowerCase:()Ljava/lang/String;
ldc "win"
invokevirtual java.lang.String.indexOf:(Ljava/lang/String;)I
iconst_m1
if_icmpne 15
8: aload 0
getfield com.sun.media.jfxmedia.locator.Locator.protocol:Ljava/lang/String;
ldc "file"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 15
9: aload 0
getfield com.sun.media.jfxmedia.locator.Locator.uriString:Ljava/lang/String;
ldc "/~/"
invokevirtual java.lang.String.indexOf:(Ljava/lang/String;)I
istore 2
start local 2 10: iload 2
iconst_m1
if_icmpeq 15
11: aload 0
new java.lang.StringBuilder
dup
aload 0
getfield com.sun.media.jfxmedia.locator.Locator.uriString:Ljava/lang/String;
iconst_0
iload 2
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
12: ldc "user.home"
invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
13: aload 0
getfield com.sun.media.jfxmedia.locator.Locator.uriString:Ljava/lang/String;
iload 2
iconst_2
iadd
invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
14: putfield com.sun.media.jfxmedia.locator.Locator.uriString:Ljava/lang/String;
end local 2 15: StackMap locals:
StackMap stack:
aload 0
new java.net.URI
dup
aload 0
getfield com.sun.media.jfxmedia.locator.Locator.uriString:Ljava/lang/String;
invokespecial java.net.URI.<init>:(Ljava/lang/String;)V
putfield com.sun.media.jfxmedia.locator.Locator.uri:Ljava/net/URI;
16: aload 0
invokestatic com.sun.media.jfxmedia.locator.LocatorCache.locatorCache:()Lcom/sun/media/jfxmedia/locator/LocatorCache;
aload 0
getfield com.sun.media.jfxmedia.locator.Locator.uri:Ljava/net/URI;
invokevirtual com.sun.media.jfxmedia.locator.LocatorCache.fetchURICache:(Ljava/net/URI;)Lcom/sun/media/jfxmedia/locator/LocatorCache$CacheReference;
putfield com.sun.media.jfxmedia.locator.Locator.cacheEntry:Lcom/sun/media/jfxmedia/locator/LocatorCache$CacheReference;
17: aload 0
getfield com.sun.media.jfxmedia.locator.Locator.cacheEntry:Lcom/sun/media/jfxmedia/locator/LocatorCache$CacheReference;
ifnull 28
18: aload 0
aload 0
getfield com.sun.media.jfxmedia.locator.Locator.cacheEntry:Lcom/sun/media/jfxmedia/locator/LocatorCache$CacheReference;
invokevirtual com.sun.media.jfxmedia.locator.LocatorCache$CacheReference.getMIMEType:()Ljava/lang/String;
putfield com.sun.media.jfxmedia.locator.Locator.contentType:Ljava/lang/String;
19: aload 0
aload 0
getfield com.sun.media.jfxmedia.locator.Locator.cacheEntry:Lcom/sun/media/jfxmedia/locator/LocatorCache$CacheReference;
invokevirtual com.sun.media.jfxmedia.locator.LocatorCache$CacheReference.getBuffer:()Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.capacity:()I
i2l
putfield com.sun.media.jfxmedia.locator.Locator.contentLength:J
20: iconst_1
invokestatic com.sun.media.jfxmedia.logging.Logger.canLog:(I)Z
ifeq 26
21: iconst_1
new java.lang.StringBuilder
dup
ldc "Locator init cache hit:\n uri "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
22: aload 0
getfield com.sun.media.jfxmedia.locator.Locator.uri:Ljava/net/URI;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
23: ldc "\n type "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
getfield com.sun.media.jfxmedia.locator.Locator.contentType:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
24: ldc "\n length "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
getfield com.sun.media.jfxmedia.locator.Locator.contentLength:J
invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
25: invokestatic com.sun.media.jfxmedia.logging.Logger.logMsg:(ILjava/lang/String;)V
26: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.media.jfxmedia.locator.Locator.readySignal:Ljava/util/concurrent/CountDownLatch;
invokevirtual java.util.concurrent.CountDownLatch.countDown:()V
27: return
28: StackMap locals:
StackMap stack:
iconst_0
istore 2
start local 2 29: iconst_0
istore 3
start local 3 30: iconst_1
istore 4
start local 4 31: aload 0
getfield com.sun.media.jfxmedia.locator.Locator.isIpod:Z
ifne 76
32: iconst_0
istore 5
start local 5 33: goto 74
34: StackMap locals: com.sun.media.jfxmedia.locator.Locator int int int int int
StackMap stack:
aload 0
getfield com.sun.media.jfxmedia.locator.Locator.scheme:Ljava/lang/String;
ldc "http"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 35
aload 0
getfield com.sun.media.jfxmedia.locator.Locator.scheme:Ljava/lang/String;
ldc "https"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 49
35: StackMap locals:
StackMap stack:
aload 0
aload 0
getfield com.sun.media.jfxmedia.locator.Locator.uri:Ljava/net/URI;
ldc "HEAD"
invokevirtual com.sun.media.jfxmedia.locator.Locator.getConnection:(Ljava/net/URI;Ljava/lang/String;)Lcom/sun/media/jfxmedia/locator/Locator$LocatorConnection;
astore 6
start local 6 36: aload 6
ifnull 37
aload 6
getfield com.sun.media.jfxmedia.locator.Locator$LocatorConnection.connection:Ljava/net/HttpURLConnection;
ifnonnull 38
37: StackMap locals: com.sun.media.jfxmedia.locator.Locator$LocatorConnection
StackMap stack:
aload 0
aload 0
getfield com.sun.media.jfxmedia.locator.Locator.uri:Ljava/net/URI;
ldc "GET"
invokevirtual com.sun.media.jfxmedia.locator.Locator.getConnection:(Ljava/net/URI;Ljava/lang/String;)Lcom/sun/media/jfxmedia/locator/Locator$LocatorConnection;
astore 6
38: StackMap locals:
StackMap stack:
aload 6
ifnull 45
aload 6
getfield com.sun.media.jfxmedia.locator.Locator$LocatorConnection.connection:Ljava/net/HttpURLConnection;
ifnull 45
39: iconst_1
istore 2
40: aload 0
aload 6
getfield com.sun.media.jfxmedia.locator.Locator$LocatorConnection.connection:Ljava/net/HttpURLConnection;
invokevirtual java.net.HttpURLConnection.getContentType:()Ljava/lang/String;
putfield com.sun.media.jfxmedia.locator.Locator.contentType:Ljava/lang/String;
41: aload 0
aload 6
getfield com.sun.media.jfxmedia.locator.Locator$LocatorConnection.connection:Ljava/net/HttpURLConnection;
invokestatic com.sun.media.jfxmedia.locator.Locator.getContentLengthLong:(Ljava/net/URLConnection;)J
putfield com.sun.media.jfxmedia.locator.Locator.contentLength:J
42: aload 6
getfield com.sun.media.jfxmedia.locator.Locator$LocatorConnection.connection:Ljava/net/HttpURLConnection;
invokestatic com.sun.media.jfxmedia.locator.Locator.closeConnection:(Ljava/net/URLConnection;)V
43: aload 6
aconst_null
putfield com.sun.media.jfxmedia.locator.Locator$LocatorConnection.connection:Ljava/net/HttpURLConnection;
44: goto 54
StackMap locals:
StackMap stack:
45: aload 6
ifnull 54
46: aload 6
getfield com.sun.media.jfxmedia.locator.Locator$LocatorConnection.responseCode:I
sipush 404
if_icmpne 54
47: iconst_1
istore 3
end local 6 48: goto 54
StackMap locals:
StackMap stack:
49: aload 0
getfield com.sun.media.jfxmedia.locator.Locator.scheme:Ljava/lang/String;
ldc "file"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 50
aload 0
getfield com.sun.media.jfxmedia.locator.Locator.scheme:Ljava/lang/String;
ldc "jar"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 50
aload 0
getfield com.sun.media.jfxmedia.locator.Locator.scheme:Ljava/lang/String;
ldc "jrt"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 50
aload 0
getfield com.sun.media.jfxmedia.locator.Locator.scheme:Ljava/lang/String;
ldc "resource"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 54
50: StackMap locals:
StackMap stack:
aload 0
aload 0
getfield com.sun.media.jfxmedia.locator.Locator.uri:Ljava/net/URI;
invokevirtual com.sun.media.jfxmedia.locator.Locator.getInputStream:(Ljava/net/URI;)Ljava/io/InputStream;
astore 6
start local 6 51: aload 6
invokevirtual java.io.InputStream.close:()V
52: iconst_1
istore 2
53: aload 0
aload 0
getfield com.sun.media.jfxmedia.locator.Locator.uriString:Ljava/lang/String;
invokestatic com.sun.media.jfxmediaimpl.MediaUtils.filenameToContentType:(Ljava/lang/String;)Ljava/lang/String;
putfield com.sun.media.jfxmedia.locator.Locator.contentType:Ljava/lang/String;
end local 6 54: StackMap locals:
StackMap stack:
iload 2
ifeq 70
55: ldc "audio/x-wav"
aload 0
getfield com.sun.media.jfxmedia.locator.Locator.contentType:Ljava/lang/String;
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 60
56: aload 0
aload 0
aload 0
getfield com.sun.media.jfxmedia.locator.Locator.uri:Ljava/net/URI;
invokevirtual com.sun.media.jfxmedia.locator.Locator.getContentTypeFromFileSignature:(Ljava/net/URI;)Ljava/lang/String;
putfield com.sun.media.jfxmedia.locator.Locator.contentType:Ljava/lang/String;
57: aload 0
getfield com.sun.media.jfxmedia.locator.Locator.contentType:Ljava/lang/String;
invokestatic com.sun.media.jfxmedia.MediaManager.canPlayContentType:(Ljava/lang/String;)Z
ifne 77
58: iconst_0
istore 4
59: goto 77
60: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.media.jfxmedia.locator.Locator.contentType:Ljava/lang/String;
ifnull 61
aload 0
getfield com.sun.media.jfxmedia.locator.Locator.contentType:Ljava/lang/String;
invokestatic com.sun.media.jfxmedia.MediaManager.canPlayContentType:(Ljava/lang/String;)Z
ifne 77
61: StackMap locals:
StackMap stack:
aload 0
aload 0
getfield com.sun.media.jfxmedia.locator.Locator.uriString:Ljava/lang/String;
invokestatic com.sun.media.jfxmediaimpl.MediaUtils.filenameToContentType:(Ljava/lang/String;)Ljava/lang/String;
putfield com.sun.media.jfxmedia.locator.Locator.contentType:Ljava/lang/String;
62: ldc "application/octet-stream"
aload 0
getfield com.sun.media.jfxmedia.locator.Locator.contentType:Ljava/lang/String;
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 64
63: aload 0
aload 0
aload 0
getfield com.sun.media.jfxmedia.locator.Locator.uri:Ljava/net/URI;
invokevirtual com.sun.media.jfxmedia.locator.Locator.getContentTypeFromFileSignature:(Ljava/net/URI;)Ljava/lang/String;
putfield com.sun.media.jfxmedia.locator.Locator.contentType:Ljava/lang/String;
64: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.media.jfxmedia.locator.Locator.contentType:Ljava/lang/String;
invokestatic com.sun.media.jfxmedia.MediaManager.canPlayContentType:(Ljava/lang/String;)Z
ifne 77
65: iconst_0
istore 4
66: goto 77
67: StackMap locals:
StackMap stack: java.io.IOException
astore 6
start local 6 68: iload 5
iconst_1
iadd
iconst_5
if_icmplt 70
69: aload 6
athrow
end local 6 70: StackMap locals:
StackMap stack:
ldc 1000
invokestatic java.lang.Thread.sleep:(J)V
71: goto 73
StackMap locals:
StackMap stack: java.lang.InterruptedException
72: pop
73: StackMap locals:
StackMap stack:
iinc 5 1
StackMap locals:
StackMap stack:
74: iload 5
iconst_5
if_icmplt 34
end local 5 75: goto 77
76: StackMap locals:
StackMap stack:
aload 0
aload 0
getfield com.sun.media.jfxmedia.locator.Locator.uriString:Ljava/lang/String;
invokestatic com.sun.media.jfxmediaimpl.MediaUtils.filenameToContentType:(Ljava/lang/String;)Ljava/lang/String;
putfield com.sun.media.jfxmedia.locator.Locator.contentType:Ljava/lang/String;
77: StackMap locals:
StackMap stack:
iconst_3
invokestatic com.sun.media.jfxmedia.logging.Logger.canLog:(I)Z
ifeq 84
78: aload 0
getfield com.sun.media.jfxmedia.locator.Locator.contentType:Ljava/lang/String;
ldc "video/x-flv"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 81
79: iconst_3
ldc "Support for FLV container and VP6 video is removed."
invokestatic com.sun.media.jfxmedia.logging.Logger.logMsg:(ILjava/lang/String;)V
80: new com.sun.media.jfxmedia.MediaException
dup
new java.lang.StringBuilder
dup
ldc "media type not supported ("
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield com.sun.media.jfxmedia.locator.Locator.uri:Ljava/net/URI;
invokevirtual java.net.URI.toString:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc ")"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial com.sun.media.jfxmedia.MediaException.<init>:(Ljava/lang/String;)V
athrow
81: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.media.jfxmedia.locator.Locator.contentType:Ljava/lang/String;
ldc "video/x-javafx"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 84
82: iconst_3
ldc "Support for FXM container and VP6 video is removed."
invokestatic com.sun.media.jfxmedia.logging.Logger.logMsg:(ILjava/lang/String;)V
83: new com.sun.media.jfxmedia.MediaException
dup
new java.lang.StringBuilder
dup
ldc "media type not supported ("
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield com.sun.media.jfxmedia.locator.Locator.uri:Ljava/net/URI;
invokevirtual java.net.URI.toString:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc ")"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial com.sun.media.jfxmedia.MediaException.<init>:(Ljava/lang/String;)V
athrow
84: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.media.jfxmedia.locator.Locator.isIpod:Z
ifne 88
iload 2
ifne 88
85: iload 3
ifeq 87
86: new java.io.FileNotFoundException
dup
new java.lang.StringBuilder
dup
ldc "media is unavailable ("
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield com.sun.media.jfxmedia.locator.Locator.uri:Ljava/net/URI;
invokevirtual java.net.URI.toString:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc ")"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.io.FileNotFoundException.<init>:(Ljava/lang/String;)V
athrow
87: StackMap locals:
StackMap stack:
new java.io.IOException
dup
new java.lang.StringBuilder
dup
ldc "could not connect to media ("
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield com.sun.media.jfxmedia.locator.Locator.uri:Ljava/net/URI;
invokevirtual java.net.URI.toString:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc ")"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
88: StackMap locals:
StackMap stack:
iload 4
ifne 99
89: new com.sun.media.jfxmedia.MediaException
dup
new java.lang.StringBuilder
dup
ldc "media type not supported ("
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield com.sun.media.jfxmedia.locator.Locator.uri:Ljava/net/URI;
invokevirtual java.net.URI.toString:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc ")"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial com.sun.media.jfxmedia.MediaException.<init>:(Ljava/lang/String;)V
athrow
end local 4 end local 3 end local 2 end local 1 90: StackMap locals: com.sun.media.jfxmedia.locator.Locator
StackMap stack: java.io.FileNotFoundException
astore 1
start local 1 91: aload 1
athrow
end local 1 92: StackMap locals:
StackMap stack: java.io.IOException
astore 1
start local 1 93: aload 1
athrow
end local 1 94: StackMap locals:
StackMap stack: com.sun.media.jfxmedia.MediaException
astore 1
start local 1 95: aload 1
athrow
end local 1 96: StackMap locals:
StackMap stack: java.lang.Throwable
astore 7
97: aload 0
getfield com.sun.media.jfxmedia.locator.Locator.readySignal:Ljava/util/concurrent/CountDownLatch;
invokevirtual java.util.concurrent.CountDownLatch.countDown:()V
98: aload 7
athrow
99: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.media.jfxmedia.locator.Locator.readySignal:Ljava/util/concurrent/CountDownLatch;
invokevirtual java.util.concurrent.CountDownLatch.countDown:()V
100: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 101 0 this Lcom/sun/media/jfxmedia/locator/Locator;
1 90 1 firstSlash I
10 15 2 index I
29 90 2 isConnected Z
30 90 3 isMediaUnAvailable Z
31 90 4 isMediaSupported Z
33 75 5 numConnectionAttempts I
36 48 6 locatorConnection Lcom/sun/media/jfxmedia/locator/Locator$LocatorConnection;
51 54 6 stream Ljava/io/InputStream;
68 70 6 ioe Ljava/io/IOException;
91 92 1 e Ljava/io/FileNotFoundException;
93 94 1 e Ljava/io/IOException;
95 96 1 e Lcom/sun/media/jfxmedia/MediaException;
Exception table:
from to target type
34 66 67 Class java.io.IOException
70 71 72 Class java.lang.InterruptedException
0 26 90 Class java.io.FileNotFoundException
28 90 90 Class java.io.FileNotFoundException
0 26 92 Class java.io.IOException
28 90 92 Class java.io.IOException
0 26 94 Class com.sun.media.jfxmedia.MediaException
28 90 94 Class com.sun.media.jfxmedia.MediaException
0 26 96 any
28 96 96 any
Exceptions:
throws java.net.URISyntaxException, java.io.IOException, java.io.FileNotFoundException
public java.lang.String getContentType();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.sun.media.jfxmedia.locator.Locator.readySignal:Ljava/util/concurrent/CountDownLatch;
invokevirtual java.util.concurrent.CountDownLatch.await:()V
1: goto 3
StackMap locals:
StackMap stack: java.lang.Exception
2: pop
3: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.media.jfxmedia.locator.Locator.contentType:Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/sun/media/jfxmedia/locator/Locator;
Exception table:
from to target type
0 1 2 Class java.lang.Exception
public java.lang.String getProtocol();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.sun.media.jfxmedia.locator.Locator.protocol:Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/sun/media/jfxmedia/locator/Locator;
public long getContentLength();
descriptor: ()J
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield com.sun.media.jfxmedia.locator.Locator.readySignal:Ljava/util/concurrent/CountDownLatch;
invokevirtual java.util.concurrent.CountDownLatch.await:()V
1: goto 3
StackMap locals:
StackMap stack: java.lang.Exception
2: pop
3: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.media.jfxmedia.locator.Locator.contentLength:J
lreturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/sun/media/jfxmedia/locator/Locator;
Exception table:
from to target type
0 1 2 Class java.lang.Exception
public void waitForReadySignal();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.sun.media.jfxmedia.locator.Locator.readySignal:Ljava/util/concurrent/CountDownLatch;
invokevirtual java.util.concurrent.CountDownLatch.await:()V
1: goto 3
StackMap locals:
StackMap stack: java.lang.Exception
2: pop
3: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/sun/media/jfxmedia/locator/Locator;
Exception table:
from to target type
0 1 2 Class java.lang.Exception
public java.net.URI getURI();
descriptor: ()Ljava/net/URI;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.sun.media.jfxmedia.locator.Locator.uri:Ljava/net/URI;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/sun/media/jfxmedia/locator/Locator;
public java.lang.String toString();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: invokestatic com.sun.media.jfxmedia.locator.LocatorCache.locatorCache:()Lcom/sun/media/jfxmedia/locator/LocatorCache;
aload 0
getfield com.sun.media.jfxmedia.locator.Locator.uri:Ljava/net/URI;
invokevirtual com.sun.media.jfxmedia.locator.LocatorCache.isCached:(Ljava/net/URI;)Z
ifeq 2
1: new java.lang.StringBuilder
dup
ldc "{LocatorURI uri: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield com.sun.media.jfxmedia.locator.Locator.uri:Ljava/net/URI;
invokevirtual java.net.URI.toString:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc " (media cached)}"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
2: StackMap locals:
StackMap stack:
new java.lang.StringBuilder
dup
ldc "{LocatorURI uri: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield com.sun.media.jfxmedia.locator.Locator.uri:Ljava/net/URI;
invokevirtual java.net.URI.toString:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "}"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/sun/media/jfxmedia/locator/Locator;
public java.lang.String getStringLocation();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.sun.media.jfxmedia.locator.Locator.uri:Ljava/net/URI;
invokevirtual java.net.URI.toString:()Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/sun/media/jfxmedia/locator/Locator;
public void setConnectionProperty(java.lang.String, java.lang.Object);
descriptor: (Ljava/lang/String;Ljava/lang/Object;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield com.sun.media.jfxmedia.locator.Locator.propertyLock:Ljava/lang/Object;
dup
astore 3
monitorenter
1: aload 0
getfield com.sun.media.jfxmedia.locator.Locator.connectionProperties:Ljava/util/Map;
ifnonnull 3
2: aload 0
new java.util.TreeMap
dup
invokespecial java.util.TreeMap.<init>:()V
putfield com.sun.media.jfxmedia.locator.Locator.connectionProperties:Ljava/util/Map;
3: StackMap locals: java.lang.Object
StackMap stack:
aload 0
getfield com.sun.media.jfxmedia.locator.Locator.connectionProperties:Ljava/util/Map;
aload 1
aload 2
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
4: aload 3
monitorexit
5: goto 8
StackMap locals:
StackMap stack: java.lang.Throwable
6: aload 3
monitorexit
7: athrow
8: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lcom/sun/media/jfxmedia/locator/Locator;
0 9 1 property Ljava/lang/String;
0 9 2 value Ljava/lang/Object;
Exception table:
from to target type
1 5 6 any
6 7 6 any
MethodParameters:
Name Flags
property
value
public com.sun.media.jfxmedia.locator.ConnectionHolder createConnectionHolder();
descriptor: ()Lcom/sun/media/jfxmedia/locator/ConnectionHolder;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=1
start local 0 0: aload 0
getfield com.sun.media.jfxmedia.locator.Locator.cacheEntry:Lcom/sun/media/jfxmedia/locator/LocatorCache$CacheReference;
ifnull 4
1: iconst_1
invokestatic com.sun.media.jfxmedia.logging.Logger.canLog:(I)Z
ifeq 3
2: iconst_1
ldc "Locator.createConnectionHolder: media cached, creating memory connection holder"
invokestatic com.sun.media.jfxmedia.logging.Logger.logMsg:(ILjava/lang/String;)V
3: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.media.jfxmedia.locator.Locator.cacheEntry:Lcom/sun/media/jfxmedia/locator/LocatorCache$CacheReference;
invokevirtual com.sun.media.jfxmedia.locator.LocatorCache$CacheReference.getBuffer:()Ljava/nio/ByteBuffer;
invokestatic com.sun.media.jfxmedia.locator.ConnectionHolder.createMemoryConnectionHolder:(Ljava/nio/ByteBuffer;)Lcom/sun/media/jfxmedia/locator/ConnectionHolder;
areturn
4: StackMap locals:
StackMap stack:
ldc "file"
aload 0
getfield com.sun.media.jfxmedia.locator.Locator.scheme:Ljava/lang/String;
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 7
5: aload 0
getfield com.sun.media.jfxmedia.locator.Locator.uri:Ljava/net/URI;
invokestatic com.sun.media.jfxmedia.locator.ConnectionHolder.createFileConnectionHolder:(Ljava/net/URI;)Lcom/sun/media/jfxmedia/locator/ConnectionHolder;
astore 1
start local 1 6: goto 16
end local 1 StackMap locals:
StackMap stack:
7: aload 0
getfield com.sun.media.jfxmedia.locator.Locator.uri:Ljava/net/URI;
invokevirtual java.net.URI.toString:()Ljava/lang/String;
ldc ".m3u8"
invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
ifne 8
aload 0
getfield com.sun.media.jfxmedia.locator.Locator.uri:Ljava/net/URI;
invokevirtual java.net.URI.toString:()Ljava/lang/String;
ldc ".m3u"
invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
ifeq 10
8: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.media.jfxmedia.locator.Locator.uri:Ljava/net/URI;
invokestatic com.sun.media.jfxmedia.locator.ConnectionHolder.createHLSConnectionHolder:(Ljava/net/URI;)Lcom/sun/media/jfxmedia/locator/ConnectionHolder;
astore 1
start local 1 9: goto 16
end local 1 10: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.media.jfxmedia.locator.Locator.propertyLock:Ljava/lang/Object;
dup
astore 2
monitorenter
11: aload 0
getfield com.sun.media.jfxmedia.locator.Locator.uri:Ljava/net/URI;
aload 0
getfield com.sun.media.jfxmedia.locator.Locator.connectionProperties:Ljava/util/Map;
invokestatic com.sun.media.jfxmedia.locator.ConnectionHolder.createURIConnectionHolder:(Ljava/net/URI;Ljava/util/Map;)Lcom/sun/media/jfxmedia/locator/ConnectionHolder;
astore 1
start local 1 12: aload 2
monitorexit
13: goto 16
end local 1 StackMap locals: com.sun.media.jfxmedia.locator.Locator top java.lang.Object
StackMap stack: java.lang.Throwable
14: aload 2
monitorexit
15: athrow
start local 1 16: StackMap locals: com.sun.media.jfxmedia.locator.Locator com.sun.media.jfxmedia.locator.ConnectionHolder
StackMap stack:
aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Lcom/sun/media/jfxmedia/locator/Locator;
6 7 1 holder Lcom/sun/media/jfxmedia/locator/ConnectionHolder;
9 10 1 holder Lcom/sun/media/jfxmedia/locator/ConnectionHolder;
12 14 1 holder Lcom/sun/media/jfxmedia/locator/ConnectionHolder;
16 17 1 holder Lcom/sun/media/jfxmedia/locator/ConnectionHolder;
Exception table:
from to target type
11 13 14 any
14 15 14 any
Exceptions:
throws java.io.IOException
private java.lang.String getContentTypeFromFileSignature(java.net.URI);
descriptor: (Ljava/net/URI;)Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=5, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual com.sun.media.jfxmedia.locator.Locator.getInputStream:(Ljava/net/URI;)Ljava/io/InputStream;
astore 2
start local 2 1: bipush 22
newarray 8
astore 3
start local 3 2: aload 2
aload 3
invokevirtual java.io.InputStream.read:([B)I
istore 4
start local 4 3: aload 2
invokevirtual java.io.InputStream.close:()V
4: aload 3
iload 4
invokestatic com.sun.media.jfxmediaimpl.MediaUtils.fileSignatureToContentType:([BI)Ljava/lang/String;
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/sun/media/jfxmedia/locator/Locator;
0 5 1 uri Ljava/net/URI;
1 5 2 stream Ljava/io/InputStream;
2 5 3 signature [B
3 5 4 size I
Exceptions:
throws java.net.MalformedURLException, java.io.IOException
MethodParameters:
Name Flags
uri
static void closeConnection(java.net.URLConnection);
descriptor: (Ljava/net/URLConnection;)V
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
instanceof java.net.HttpURLConnection
ifeq 11
1: aload 0
checkcast java.net.HttpURLConnection
astore 1
start local 1 2: aload 1
invokevirtual java.net.HttpURLConnection.getResponseCode:()I
sipush 400
if_icmpge 11
3: aload 1
invokevirtual java.net.HttpURLConnection.getInputStream:()Ljava/io/InputStream;
ifnull 11
4: aload 1
invokevirtual java.net.HttpURLConnection.getInputStream:()Ljava/io/InputStream;
invokevirtual java.io.InputStream.close:()V
5: goto 11
StackMap locals: java.net.URLConnection java.net.HttpURLConnection
StackMap stack: java.io.IOException
6: pop
7: aload 1
invokevirtual java.net.HttpURLConnection.getErrorStream:()Ljava/io/InputStream;
ifnull 11
8: aload 1
invokevirtual java.net.HttpURLConnection.getErrorStream:()Ljava/io/InputStream;
invokevirtual java.io.InputStream.close:()V
9: goto 11
StackMap locals:
StackMap stack: java.io.IOException
10: pop
end local 1 11: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 connection Ljava/net/URLConnection;
2 11 1 httpConnection Ljava/net/HttpURLConnection;
Exception table:
from to target type
2 5 6 Class java.io.IOException
7 9 10 Class java.io.IOException
MethodParameters:
Name Flags
connection
private static java.lang.reflect.Method lambda$0();
descriptor: ()Ljava/lang/reflect/Method;
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=3, locals=0, args_size=0
0: ldc Ljava/net/URLConnection;
ldc "getContentLengthLong"
iconst_0
anewarray java.lang.Class
invokevirtual java.lang.Class.getMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
1: areturn
2: StackMap locals:
StackMap stack: java.lang.NoSuchMethodException
pop
3: aconst_null
areturn
LocalVariableTable:
Start End Slot Name Signature
Exception table:
from to target type
0 1 2 Class java.lang.NoSuchMethodException
}
SourceFile: "Locator.java"
NestMembers:
com.sun.media.jfxmedia.locator.Locator$LocatorConnection
InnerClasses:
private LocatorConnection = com.sun.media.jfxmedia.locator.Locator$LocatorConnection of com.sun.media.jfxmedia.locator.Locator
public CacheReference = com.sun.media.jfxmedia.locator.LocatorCache$CacheReference of com.sun.media.jfxmedia.locator.LocatorCache
public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles