/* */ package NET.worlds.network; /* */ /* */ import NET.worlds.core.IniFile; /* */ import java.io.FileNotFoundException; /* */ import java.io.IOException; /* */ import java.io.PrintStream; /* */ import java.io.Serializable; /* */ import java.net.HttpURLConnection; /* */ import java.net.MalformedURLException; /* */ import java.net.URLConnection; /* */ import java.net.UnknownHostException; /* */ import java.util.Date; /* */ import java.util.Observer; /* */ import java.util.Vector; /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ public class CacheEntry /* */ implements Runnable, Serializable /* */ { /* */ private static final long serialVersionUID = 4845526825815464122L; /* 57 */ static boolean httpFaulted = (IniFile.override().getIniInt("Offline", 0) == 1) || /* 58 */ (IniFile.gamma().getIniInt("Offline", 0) == 1); /* */ /* 60 */ static boolean stopOnFault = IniFile.gamma().getIniInt("StopOnHttpFault", /* 61 */ 0) == 1; /* */ /* */ /* 64 */ static final int CACHE_MAX_ENTRIES = IniFile.gamma().getIniInt( /* 65 */ "NetCacheEntries", 1000); /* */ /* */ /* */ /* */ /* */ /* 71 */ static final int MAX_THREADS = IniFile.gamma().getIniInt("NetCacheThreads", /* 72 */ 2); /* */ /* */ /* */ /* */ /* 77 */ static final long CACHE_MOD_TIMEOUT = 3600000L * IniFile.gamma() /* 78 */ .getIniInt("NetCacheModifiedCheck", 8); /* */ /* */ /* */ /* */ /* 83 */ static final long CACHE_MOD_TIMEDELAY = 60000L * IniFile.gamma() /* 84 */ .getIniInt("NetCacheDelay", 5); /* */ /* 86 */ static final Date refreshStartDate = new Date(new Date().getTime() + CACHE_MOD_TIMEDELAY); /* */ /* 88 */ static Vector threadQueue = new Vector(); /* */ /* */ public static final int START = 0; /* */ /* */ public static final int REFRESHING = 2; /* */ /* */ public static final int LOADING = 3; /* */ /* */ public static final int DONE = 4; /* */ /* */ public static final int ERROR = 5; /* */ /* */ public static final int NOSUCHFILE = 6; /* */ /* */ public static final int LOADED = 7; /* */ /* */ public transient CacheEntry next; /* */ /* */ public transient CacheEntry prev; /* */ /* */ int state; /* */ /* */ private transient int count; /* */ /* */ URL url; /* */ /* */ transient int lastRefTime; /* */ transient String encoding; /* */ String localName; /* */ transient Vector observers; /* 118 */ public long remoteTime = 0L; /* */ public Date checkTime; /* 120 */ public int netSize = -1; /* */ /* */ public int bytes; /* */ /* */ private transient CacheEntry nextDec; /* */ /* 126 */ private static CacheEntry endDec = new CacheEntry(); /* 127 */ private static CacheEntry baseDec = endDec; /* */ /* */ /* 130 */ static int refTime = 0; /* 131 */ static int numActiveThreads = 0; /* */ /* */ public static int getConcurrentDownloads() { /* 134 */ return numActiveThreads; /* */ } /* */ /* */ public static synchronized void setOffline() { /* 138 */ stopOnFault = httpFaulted = 1; /* */ } /* */ /* */ public static boolean getOffline() { /* 142 */ return httpFaulted; /* */ } /* */ /* */ /* */ /* */ public boolean inUse() /* */ { /* 149 */ return (this.count > 0) || (this.state == 3) || (this.state == 2); /* */ } /* */ /* */ /* */ /* */ private synchronized void setState(int val) /* */ { /* 156 */ this.state = val; /* 157 */ if (val >= 4) { /* 158 */ notifyAll(); /* */ } /* */ } /* */ /* */ /* */ /* */ boolean done() /* */ { /* 166 */ return this.state >= 4; /* */ } /* */ /* */ /* */ /* */ /* */ CacheEntry() /* */ { /* 174 */ this.next = this; /* 175 */ this.prev = this; /* */ } /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ CacheEntry(URL u) /* */ { /* 189 */ this.url = u; /* */ /* 191 */ this.localName = Cache.assignLocalName(u); /* */ /* */ /* 194 */ setState(0); /* */ } /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ public void incRef() /* */ { /* 205 */ synchronized (finalizeSafeLock) { /* 206 */ this.count += 1; /* */ } /* 208 */ if (this.count == 1) { /* 209 */ load(); /* */ } /* */ } /* */ /* */ /* */ /* 215 */ private static Object finalizeSafeLock = new Object(); /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ void safeDecRef() /* */ { /* 242 */ synchronized (finalizeSafeLock) /* */ { /* */ /* */ /* 246 */ if (this.nextDec == null) /* */ { /* 248 */ this.nextDec = baseDec; /* 249 */ baseDec = this; /* */ } else { /* 251 */ this.count -= 1; /* 252 */ this.lastRefTime = (refTime++); /* */ } /* */ } /* */ } /* */ /* */ synchronized void fullDecRef() { /* 258 */ notifyAll(); /* 259 */ synchronized (Cache.cache) { /* 260 */ synchronized (finalizeSafeLock) { /* 261 */ this.count -= 1; /* 262 */ this.lastRefTime = (refTime++); /* */ } /* */ /* */ /* */ /* 267 */ if ((this.count == 0) && (this.remoteTime <= 0L) && (this.state == 7)) { /* 268 */ Cache.cache.remove(this); /* */ } /* */ } /* */ } /* */ /* */ /* */ /* */ /* */ void addObserver(Observer o) /* */ { /* 278 */ if (this.state >= 4) { /* 279 */ o.update(null, this.url); /* */ } else { /* 281 */ synchronized (this) { /* 282 */ if (this.observers == null) { /* 283 */ this.observers = new Vector(); /* */ } /* 285 */ this.observers.addElement(o); /* */ } /* */ } /* */ } /* */ /* */ /* */ /* */ /* */ /* */ void notifyObservers() /* */ { /* 296 */ synchronized (this) { /* 297 */ Vector v = this.observers; /* 298 */ this.observers = null; /* */ } /* */ Vector v; /* 301 */ if (v != null) { /* 302 */ int len = v.size(); /* 303 */ for (int i = 0; i < len; i++) { /* 304 */ ((Observer)v.elementAt(i)).update(null, this.url); /* */ } /* */ } /* */ } /* */ /* */ /* */ URLConnection openURL() /* */ throws Exception /* */ { /* 313 */ int retryCount = IniFile.gamma().getIniInt("NetCacheRetries", 8); /* 314 */ java.net.URL u = null; /* 315 */ URLConnection uc = null; /* */ /* 317 */ while (!httpFaulted) { /* */ try { /* 319 */ if (u == null) { /* 320 */ String us = this.url.unalias(); /* */ /* */ /* 323 */ if (us.endsWith("upgrades.lst")) { /* 324 */ us = us + "?" + (int)(Math.random() * 1000000.0D); /* */ } /* 326 */ u = DNSLookup.lookup(new java.net.URL(us)); /* */ } /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* 339 */ uc = u.openConnection(); /* */ /* */ /* 342 */ uc.setRequestProperty("Accept-Encoding", "gzip,deflate"); /* */ /* */ /* 345 */ if ((this.remoteTime > 0L) && (this.bytes > 0)) { /* 346 */ uc.setIfModifiedSince(this.remoteTime); /* */ } /* */ /* */ /* */ /* 351 */ uc.connect(); /* */ /* 353 */ this.encoding = uc.getContentEncoding(); /* 354 */ if (this.encoding == null) { /* 355 */ this.encoding = new String("none"); /* */ } /* */ /* */ /* 359 */ this.remoteTime = uc.getLastModified(); /* 360 */ this.netSize = uc.getContentLength(); /* */ /* 362 */ return uc; /* */ } catch (UnknownHostException uhe) { /* 364 */ if ((NetUpdate.isInternalVersion()) || (stopOnFault)) { /* 365 */ httpFaulted = true; /* */ } /* 367 */ throw uhe; /* */ } catch (IOException e) { /* 369 */ retryCount--; /* */ /* 371 */ if (wasHttpNoSuchFile(e, uc)) { /* 372 */ throw new FileNotFoundException("Http " + this.url); /* */ } /* */ /* 375 */ if ((retryCount <= 0) || ((e instanceof MalformedURLException))) /* 376 */ throw e; /* 377 */ if (this.state == 2) { /* 378 */ throw e; /* */ } /* 380 */ System.out.println("Exception " + e + " opening " + this.url + /* 381 */ ", retrying..."); /* */ } /* */ } /* */ /* 385 */ throw new FileNotFoundException("Http " + this.url); /* */ } /* */ /* */ private static boolean wasHttpNoSuchFile(Exception e, URLConnection uc) { /* */ try { /* 390 */ if (((HttpURLConnection)uc).getResponseCode() == 404) { /* 391 */ return true; /* */ } /* */ } /* */ catch (Exception localException) {} /* 395 */ return false; /* */ } /* */ /* */ /* */ /* */ public void forceRecheck() /* */ { /* 402 */ this.checkTime = null; /* */ } /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ public void load() /* */ { /* 413 */ if ((this.state == 2) || (this.state == 3)) { /* 414 */ return; /* */ } /* */ /* 417 */ Date now = new Date(); /* */ /* 419 */ if ((this.state == 5) || (this.state == 0)) { /* 420 */ setState(3); /* 421 */ } else if (this.localName != null) /* */ { /* */ /* 424 */ if ((this.checkTime != null) && (now.before(refreshStartDate))) /* */ { /* 426 */ notifyObservers(); /* 427 */ return; /* */ } /* */ /* 430 */ Date aWhileAgo = new Date(now.getTime() - CACHE_MOD_TIMEOUT); /* 431 */ if ((this.checkTime != null) && (this.checkTime.after(aWhileAgo))) /* */ { /* 433 */ if ((this.remoteTime > 0L) || (this.state == 6)) { /* 434 */ notifyObservers(); /* 435 */ return; /* */ } /* */ } /* 438 */ setState(2); /* */ } /* 440 */ this.checkTime = now; /* */ /* 442 */ synchronized (threadQueue) /* */ { /* 444 */ if (numActiveThreads < MAX_THREADS) { /* 445 */ startThread(); /* */ } /* */ else /* */ { /* 449 */ threadQueue.addElement(this); /* */ } /* */ } /* */ } /* */ /* 454 */ private static int nextDownloader = 0; /* */ /* */ /* */ /* */ /* */ private void startThread() /* */ { /* 461 */ numActiveThreads += 1; /* 462 */ Thread t = new Thread(this, "File Downloader " + ++nextDownloader); /* 463 */ t.setDaemon(true); /* 464 */ t.start(); /* */ } /* */ /* */ /* Error */ /* */ public void run() /* */ { /* */ // Byte code: /* */ // 0: aconst_null /* */ // 1: astore_1 /* */ // 2: aconst_null /* */ // 3: astore_2 /* */ // 4: aload_0 /* */ // 5: getfield 165 NET/worlds/network/CacheEntry:remoteTime J /* */ // 8: lstore_3 /* */ // 9: aload_0 /* */ // 10: getfield 167 NET/worlds/network/CacheEntry:netSize I /* */ // 13: istore 5 /* */ // 15: aload_0 /* */ // 16: getfield 307 NET/worlds/network/CacheEntry:bytes I /* */ // 19: istore 6 /* */ // 21: aload_0 /* */ // 22: getfield 155 NET/worlds/network/CacheEntry:state I /* */ // 25: iconst_2 /* */ // 26: if_icmpne +405 -> 431 /* */ // 29: invokestatic 418 NET/worlds/network/CacheEntry:getOffline ()Z /* */ // 32: ifeq +45 -> 77 /* */ // 35: aload_0 /* */ // 36: bipush 7 /* */ // 38: invokespecial 184 NET/worlds/network/CacheEntry:setState (I)V /* */ // 41: getstatic 199 NET/worlds/network/Cache:cache LNET/worlds/network/Cache; /* */ // 44: dup /* */ // 45: getfield 420 NET/worlds/network/Cache:totalBytes J /* */ // 48: aload_0 /* */ // 49: getfield 307 NET/worlds/network/CacheEntry:bytes I /* */ // 52: i2l /* */ // 53: ladd /* */ // 54: putfield 420 NET/worlds/network/Cache:totalBytes J /* */ // 57: aload_0 /* */ // 58: getfield 167 NET/worlds/network/CacheEntry:netSize I /* */ // 61: ifgt +11 -> 72 /* */ // 64: aload_0 /* */ // 65: aload_0 /* */ // 66: getfield 307 NET/worlds/network/CacheEntry:bytes I /* */ // 69: putfield 167 NET/worlds/network/CacheEntry:netSize I /* */ // 72: aload_0 /* */ // 73: invokespecial 423 NET/worlds/network/CacheEntry:finishedLoad ()V /* */ // 76: return /* */ // 77: aload_0 /* */ // 78: getfield 174 NET/worlds/network/CacheEntry:url LNET/worlds/network/URL; /* */ // 81: invokestatic 426 NET/worlds/network/DirTimeStamp:request (LNET/worlds/network/URL;)J /* */ // 84: lstore 7 /* */ // 86: lload 7 /* */ // 88: lconst_0 /* */ // 89: lcmp /* */ // 90: ifle +71 -> 161 /* */ // 93: lload 7 /* */ // 95: lload_3 /* */ // 96: lcmp /* */ // 97: ifgt +64 -> 161 /* */ // 100: new 111 java/util/Date /* */ // 103: dup /* */ // 104: invokespecial 113 java/util/Date: ()V /* */ // 107: invokevirtual 116 java/util/Date:getTime ()J /* */ // 110: lload_3 /* */ // 111: lcmp /* */ // 112: ifge +49 -> 161 /* */ // 115: aload_0 /* */ // 116: bipush 7 /* */ // 118: invokespecial 184 NET/worlds/network/CacheEntry:setState (I)V /* */ // 121: aload_0 /* */ // 122: invokespecial 423 NET/worlds/network/CacheEntry:finishedLoad ()V /* */ // 125: getstatic 199 NET/worlds/network/Cache:cache LNET/worlds/network/Cache; /* */ // 128: dup /* */ // 129: getfield 420 NET/worlds/network/Cache:totalBytes J /* */ // 132: aload_0 /* */ // 133: getfield 307 NET/worlds/network/CacheEntry:bytes I /* */ // 136: i2l /* */ // 137: ladd /* */ // 138: putfield 420 NET/worlds/network/Cache:totalBytes J /* */ // 141: aload_0 /* */ // 142: getfield 167 NET/worlds/network/CacheEntry:netSize I /* */ // 145: ifgt +11 -> 156 /* */ // 148: aload_0 /* */ // 149: aload_0 /* */ // 150: getfield 307 NET/worlds/network/CacheEntry:bytes I /* */ // 153: putfield 167 NET/worlds/network/CacheEntry:netSize I /* */ // 156: aload_0 /* */ // 157: invokespecial 423 NET/worlds/network/CacheEntry:finishedLoad ()V /* */ // 160: return /* */ // 161: aload_0 /* */ // 162: invokevirtual 432 NET/worlds/network/CacheEntry:openURL ()Ljava/net/URLConnection; /* */ // 165: astore_2 /* */ // 166: aload_0 /* */ // 167: getfield 165 NET/worlds/network/CacheEntry:remoteTime J /* */ // 170: lconst_0 /* */ // 171: lcmp /* */ // 172: ifle +106 -> 278 /* */ // 175: aload_0 /* */ // 176: getfield 165 NET/worlds/network/CacheEntry:remoteTime J /* */ // 179: lload_3 /* */ // 180: lcmp /* */ // 181: ifgt +97 -> 278 /* */ // 184: iload 5 /* */ // 186: iconst_m1 /* */ // 187: if_icmpeq +29 -> 216 /* */ // 190: aload_0 /* */ // 191: getfield 167 NET/worlds/network/CacheEntry:netSize I /* */ // 194: iconst_m1 /* */ // 195: if_icmpeq +21 -> 216 /* */ // 198: iload 5 /* */ // 200: aload_0 /* */ // 201: getfield 167 NET/worlds/network/CacheEntry:netSize I /* */ // 204: if_icmpeq +12 -> 216 /* */ // 207: aload_0 /* */ // 208: getfield 167 NET/worlds/network/CacheEntry:netSize I /* */ // 211: iload 6 /* */ // 213: if_icmpne +65 -> 278 /* */ // 216: aload_2 /* */ // 217: invokevirtual 434 java/net/URLConnection:getInputStream ()Ljava/io/InputStream; /* */ // 220: astore 9 /* */ // 222: aload 9 /* */ // 224: ifnull +8 -> 232 /* */ // 227: aload 9 /* */ // 229: invokevirtual 438 java/io/InputStream:close ()V /* */ // 232: aload_0 /* */ // 233: bipush 7 /* */ // 235: invokespecial 184 NET/worlds/network/CacheEntry:setState (I)V /* */ // 238: aload_0 /* */ // 239: invokespecial 423 NET/worlds/network/CacheEntry:finishedLoad ()V /* */ // 242: getstatic 199 NET/worlds/network/Cache:cache LNET/worlds/network/Cache; /* */ // 245: dup /* */ // 246: getfield 420 NET/worlds/network/Cache:totalBytes J /* */ // 249: aload_0 /* */ // 250: getfield 307 NET/worlds/network/CacheEntry:bytes I /* */ // 253: i2l /* */ // 254: ladd /* */ // 255: putfield 420 NET/worlds/network/Cache:totalBytes J /* */ // 258: aload_0 /* */ // 259: getfield 167 NET/worlds/network/CacheEntry:netSize I /* */ // 262: ifgt +11 -> 273 /* */ // 265: aload_0 /* */ // 266: aload_0 /* */ // 267: getfield 307 NET/worlds/network/CacheEntry:bytes I /* */ // 270: putfield 167 NET/worlds/network/CacheEntry:netSize I /* */ // 273: aload_0 /* */ // 274: invokespecial 423 NET/worlds/network/CacheEntry:finishedLoad ()V /* */ // 277: return /* */ // 278: aload_2 /* */ // 279: instanceof 378 /* */ // 282: ifeq +144 -> 426 /* */ // 285: aload_2 /* */ // 286: checkcast 378 java/net/HttpURLConnection /* */ // 289: invokevirtual 380 java/net/HttpURLConnection:getResponseCode ()I /* */ // 292: istore 9 /* */ // 294: iconst_0 /* */ // 295: istore 10 /* */ // 297: iload 9 /* */ // 299: lookupswitch default:+60->359, 304:+57->356, 400:+57->356, 500:+57->356, 502:+57->356, 503:+57->356, 504:+57->356 /* */ // 356: iconst_1 /* */ // 357: istore 10 /* */ // 359: iload 10 /* */ // 361: ifeq +65 -> 426 /* */ // 364: aload_2 /* */ // 365: invokevirtual 434 java/net/URLConnection:getInputStream ()Ljava/io/InputStream; /* */ // 368: astore 11 /* */ // 370: aload 11 /* */ // 372: ifnull +8 -> 380 /* */ // 375: aload 11 /* */ // 377: invokevirtual 438 java/io/InputStream:close ()V /* */ // 380: aload_0 /* */ // 381: bipush 7 /* */ // 383: invokespecial 184 NET/worlds/network/CacheEntry:setState (I)V /* */ // 386: aload_0 /* */ // 387: invokespecial 423 NET/worlds/network/CacheEntry:finishedLoad ()V /* */ // 390: getstatic 199 NET/worlds/network/Cache:cache LNET/worlds/network/Cache; /* */ // 393: dup /* */ // 394: getfield 420 NET/worlds/network/Cache:totalBytes J /* */ // 397: aload_0 /* */ // 398: getfield 307 NET/worlds/network/CacheEntry:bytes I /* */ // 401: i2l /* */ // 402: ladd /* */ // 403: putfield 420 NET/worlds/network/Cache:totalBytes J /* */ // 406: aload_0 /* */ // 407: getfield 167 NET/worlds/network/CacheEntry:netSize I /* */ // 410: ifgt +11 -> 421 /* */ // 413: aload_0 /* */ // 414: aload_0 /* */ // 415: getfield 307 NET/worlds/network/CacheEntry:bytes I /* */ // 418: putfield 167 NET/worlds/network/CacheEntry:netSize I /* */ // 421: aload_0 /* */ // 422: invokespecial 423 NET/worlds/network/CacheEntry:finishedLoad ()V /* */ // 425: return /* */ // 426: aload_0 /* */ // 427: iconst_3 /* */ // 428: invokespecial 184 NET/worlds/network/CacheEntry:setState (I)V /* */ // 431: getstatic 199 NET/worlds/network/Cache:cache LNET/worlds/network/Cache; /* */ // 434: dup /* */ // 435: getfield 420 NET/worlds/network/Cache:totalBytes J /* */ // 438: aload_0 /* */ // 439: getfield 307 NET/worlds/network/CacheEntry:bytes I /* */ // 442: i2l /* */ // 443: lsub /* */ // 444: putfield 420 NET/worlds/network/Cache:totalBytes J /* */ // 447: iconst_0 /* */ // 448: istore 7 /* */ // 450: goto +430 -> 880 /* */ // 453: aload_0 /* */ // 454: iconst_0 /* */ // 455: putfield 307 NET/worlds/network/CacheEntry:bytes I /* */ // 458: aconst_null /* */ // 459: astore_1 /* */ // 460: aload_2 /* */ // 461: ifnonnull +12 -> 473 /* */ // 464: aload_0 /* */ // 465: invokevirtual 432 NET/worlds/network/CacheEntry:openURL ()Ljava/net/URLConnection; /* */ // 468: astore_2 /* */ // 469: aload_2 /* */ // 470: invokevirtual 312 java/net/URLConnection:connect ()V /* */ // 473: aload_2 /* */ // 474: instanceof 378 /* */ // 477: ifeq +165 -> 642 /* */ // 480: aload_2 /* */ // 481: checkcast 378 java/net/HttpURLConnection /* */ // 484: invokevirtual 380 java/net/HttpURLConnection:getResponseCode ()I /* */ // 487: istore 8 /* */ // 489: iconst_0 /* */ // 490: istore 9 /* */ // 492: iload 8 /* */ // 494: lookupswitch default:+53->547, 304:+50->544, 500:+50->544, 502:+50->544, 503:+50->544, 504:+50->544 /* */ // 544: iconst_1 /* */ // 545: istore 9 /* */ // 547: iload 9 /* */ // 549: ifeq +93 -> 642 /* */ // 552: aload_2 /* */ // 553: invokevirtual 434 java/net/URLConnection:getInputStream ()Ljava/io/InputStream; /* */ // 556: astore 10 /* */ // 558: aload 10 /* */ // 560: ifnull +8 -> 568 /* */ // 563: aload 10 /* */ // 565: invokevirtual 438 java/io/InputStream:close ()V /* */ // 568: aload_0 /* */ // 569: iload 6 /* */ // 571: putfield 307 NET/worlds/network/CacheEntry:bytes I /* */ // 574: getstatic 199 NET/worlds/network/Cache:cache LNET/worlds/network/Cache; /* */ // 577: dup /* */ // 578: getfield 420 NET/worlds/network/Cache:totalBytes J /* */ // 581: aload_0 /* */ // 582: getfield 307 NET/worlds/network/CacheEntry:bytes I /* */ // 585: i2l /* */ // 586: ladd /* */ // 587: putfield 420 NET/worlds/network/Cache:totalBytes J /* */ // 590: aload_0 /* */ // 591: iload 5 /* */ // 593: putfield 167 NET/worlds/network/CacheEntry:netSize I /* */ // 596: aload_0 /* */ // 597: bipush 7 /* */ // 599: invokespecial 184 NET/worlds/network/CacheEntry:setState (I)V /* */ // 602: aload_0 /* */ // 603: invokespecial 423 NET/worlds/network/CacheEntry:finishedLoad ()V /* */ // 606: getstatic 199 NET/worlds/network/Cache:cache LNET/worlds/network/Cache; /* */ // 609: dup /* */ // 610: getfield 420 NET/worlds/network/Cache:totalBytes J /* */ // 613: aload_0 /* */ // 614: getfield 307 NET/worlds/network/CacheEntry:bytes I /* */ // 617: i2l /* */ // 618: ladd /* */ // 619: putfield 420 NET/worlds/network/Cache:totalBytes J /* */ // 622: aload_0 /* */ // 623: getfield 167 NET/worlds/network/CacheEntry:netSize I /* */ // 626: ifgt +11 -> 637 /* */ // 629: aload_0 /* */ // 630: aload_0 /* */ // 631: getfield 307 NET/worlds/network/CacheEntry:bytes I /* */ // 634: putfield 167 NET/worlds/network/CacheEntry:netSize I /* */ // 637: aload_0 /* */ // 638: invokespecial 423 NET/worlds/network/CacheEntry:finishedLoad ()V /* */ // 641: return /* */ // 642: aload_0 /* */ // 643: getfield 318 NET/worlds/network/CacheEntry:encoding Ljava/lang/String; /* */ // 646: ifnull +32 -> 678 /* */ // 649: aload_0 /* */ // 650: getfield 318 NET/worlds/network/CacheEntry:encoding Ljava/lang/String; /* */ // 653: ldc_w 443 /* */ // 656: invokevirtual 445 java/lang/String:equalsIgnoreCase (Ljava/lang/String;)Z /* */ // 659: ifeq +19 -> 678 /* */ // 662: new 448 java/util/zip/GZIPInputStream /* */ // 665: dup /* */ // 666: aload_2 /* */ // 667: invokevirtual 434 java/net/URLConnection:getInputStream ()Ljava/io/InputStream; /* */ // 670: invokespecial 450 java/util/zip/GZIPInputStream: (Ljava/io/InputStream;)V /* */ // 673: astore 8 /* */ // 675: goto +53 -> 728 /* */ // 678: aload_0 /* */ // 679: getfield 318 NET/worlds/network/CacheEntry:encoding Ljava/lang/String; /* */ // 682: ifnull +40 -> 722 /* */ // 685: aload_0 /* */ // 686: getfield 318 NET/worlds/network/CacheEntry:encoding Ljava/lang/String; /* */ // 689: ldc_w 453 /* */ // 692: invokevirtual 445 java/lang/String:equalsIgnoreCase (Ljava/lang/String;)Z /* */ // 695: ifeq +27 -> 722 /* */ // 698: new 455 java/util/zip/InflaterInputStream /* */ // 701: dup /* */ // 702: aload_2 /* */ // 703: invokevirtual 434 java/net/URLConnection:getInputStream ()Ljava/io/InputStream; /* */ // 706: new 457 java/util/zip/Inflater /* */ // 709: dup /* */ // 710: iconst_1 /* */ // 711: invokespecial 459 java/util/zip/Inflater: (Z)V /* */ // 714: invokespecial 461 java/util/zip/InflaterInputStream: (Ljava/io/InputStream;Ljava/util/zip/Inflater;)V /* */ // 717: astore 8 /* */ // 719: goto +9 -> 728 /* */ // 722: aload_2 /* */ // 723: invokevirtual 434 java/net/URLConnection:getInputStream ()Ljava/io/InputStream; /* */ // 726: astore 8 /* */ // 728: getstatic 199 NET/worlds/network/Cache:cache LNET/worlds/network/Cache; /* */ // 731: aload_0 /* */ // 732: getfield 167 NET/worlds/network/CacheEntry:netSize I /* */ // 735: invokevirtual 464 NET/worlds/network/Cache:makeSpaceFor (I)V /* */ // 738: new 467 java/io/FileOutputStream /* */ // 741: dup /* */ // 742: aload_0 /* */ // 743: getfield 182 NET/worlds/network/CacheEntry:localName Ljava/lang/String; /* */ // 746: invokespecial 469 java/io/FileOutputStream: (Ljava/lang/String;)V /* */ // 749: astore_1 /* */ // 750: sipush 4096 /* */ // 753: newarray /* */ // 755: astore 9 /* */ // 757: goto +23 -> 780 /* */ // 760: aload_1 /* */ // 761: aload 9 /* */ // 763: iconst_0 /* */ // 764: iload 10 /* */ // 766: invokevirtual 470 java/io/FileOutputStream:write ([BII)V /* */ // 769: aload_0 /* */ // 770: dup /* */ // 771: getfield 307 NET/worlds/network/CacheEntry:bytes I /* */ // 774: iload 10 /* */ // 776: iadd /* */ // 777: putfield 307 NET/worlds/network/CacheEntry:bytes I /* */ // 780: aload 8 /* */ // 782: aload 9 /* */ // 784: invokevirtual 474 java/io/InputStream:read ([B)I /* */ // 787: dup /* */ // 788: istore 10 /* */ // 790: ifgt -30 -> 760 /* */ // 793: aload 8 /* */ // 795: invokevirtual 438 java/io/InputStream:close ()V /* */ // 798: aconst_null /* */ // 799: astore 8 /* */ // 801: aload_1 /* */ // 802: invokevirtual 478 java/io/FileOutputStream:close ()V /* */ // 805: aconst_null /* */ // 806: astore_1 /* */ // 807: aload_0 /* */ // 808: getfield 167 NET/worlds/network/CacheEntry:netSize I /* */ // 811: iconst_m1 /* */ // 812: if_icmpeq +40 -> 852 /* */ // 815: aload_0 /* */ // 816: getfield 307 NET/worlds/network/CacheEntry:bytes I /* */ // 819: aload_0 /* */ // 820: getfield 167 NET/worlds/network/CacheEntry:netSize I /* */ // 823: if_icmpge +29 -> 852 /* */ // 826: aload_0 /* */ // 827: getfield 318 NET/worlds/network/CacheEntry:encoding Ljava/lang/String; /* */ // 830: ldc_w 443 /* */ // 833: invokevirtual 445 java/lang/String:equalsIgnoreCase (Ljava/lang/String;)Z /* */ // 836: ifne +16 -> 852 /* */ // 839: aload_0 /* */ // 840: getfield 318 NET/worlds/network/CacheEntry:encoding Ljava/lang/String; /* */ // 843: ldc_w 453 /* */ // 846: invokevirtual 445 java/lang/String:equalsIgnoreCase (Ljava/lang/String;)Z /* */ // 849: ifeq +12 -> 861 /* */ // 852: aload_0 /* */ // 853: bipush 7 /* */ // 855: invokespecial 184 NET/worlds/network/CacheEntry:setState (I)V /* */ // 858: goto +28 -> 886 /* */ // 861: iload 7 /* */ // 863: ifne +12 -> 875 /* */ // 866: getstatic 348 java/lang/System:out Ljava/io/PrintStream; /* */ // 869: ldc_w 479 /* */ // 872: invokevirtual 360 java/io/PrintStream:println (Ljava/lang/String;)V /* */ // 875: aconst_null /* */ // 876: astore_2 /* */ // 877: iinc 7 1 /* */ // 880: iload 7 /* */ // 882: iconst_2 /* */ // 883: if_icmplt -430 -> 453 /* */ // 886: aload_0 /* */ // 887: getfield 167 NET/worlds/network/CacheEntry:netSize I /* */ // 890: iflt +87 -> 977 /* */ // 893: aload_0 /* */ // 894: getfield 307 NET/worlds/network/CacheEntry:bytes I /* */ // 897: aload_0 /* */ // 898: getfield 167 NET/worlds/network/CacheEntry:netSize I /* */ // 901: if_icmpge +76 -> 977 /* */ // 904: aload_0 /* */ // 905: getfield 318 NET/worlds/network/CacheEntry:encoding Ljava/lang/String; /* */ // 908: ldc_w 443 /* */ // 911: invokevirtual 445 java/lang/String:equalsIgnoreCase (Ljava/lang/String;)Z /* */ // 914: ifne +63 -> 977 /* */ // 917: aload_0 /* */ // 918: getfield 318 NET/worlds/network/CacheEntry:encoding Ljava/lang/String; /* */ // 921: ldc_w 453 /* */ // 924: invokevirtual 445 java/lang/String:equalsIgnoreCase (Ljava/lang/String;)Z /* */ // 927: ifne +50 -> 977 /* */ // 930: new 481 java/lang/InterruptedException /* */ // 933: dup /* */ // 934: new 256 java/lang/StringBuilder /* */ // 937: dup /* */ // 938: ldc_w 483 /* */ // 941: invokespecial 262 java/lang/StringBuilder: (Ljava/lang/String;)V /* */ // 944: aload_0 /* */ // 945: getfield 307 NET/worlds/network/CacheEntry:bytes I /* */ // 948: invokevirtual 279 java/lang/StringBuilder:append (I)Ljava/lang/StringBuilder; /* */ // 951: ldc_w 485 /* */ // 954: invokevirtual 267 java/lang/StringBuilder:append (Ljava/lang/String;)Ljava/lang/StringBuilder; /* */ // 957: aload_0 /* */ // 958: getfield 167 NET/worlds/network/CacheEntry:netSize I /* */ // 961: invokevirtual 279 java/lang/StringBuilder:append (I)Ljava/lang/StringBuilder; /* */ // 964: ldc_w 487 /* */ // 967: invokevirtual 267 java/lang/StringBuilder:append (Ljava/lang/String;)Ljava/lang/StringBuilder; /* */ // 970: invokevirtual 282 java/lang/StringBuilder:toString ()Ljava/lang/String; /* */ // 973: invokespecial 489 java/lang/InterruptedException: (Ljava/lang/String;)V /* */ // 976: athrow /* */ // 977: iload 7 /* */ // 979: ifle +12 -> 991 /* */ // 982: getstatic 348 java/lang/System:out Ljava/io/PrintStream; /* */ // 985: ldc_w 490 /* */ // 988: invokevirtual 360 java/io/PrintStream:println (Ljava/lang/String;)V /* */ // 991: getstatic 199 NET/worlds/network/Cache:cache LNET/worlds/network/Cache; /* */ // 994: dup /* */ // 995: getfield 492 NET/worlds/network/Cache:hasChanged I /* */ // 998: iconst_1 /* */ // 999: iadd /* */ // 1000: putfield 492 NET/worlds/network/Cache:hasChanged I /* */ // 1003: aload_0 /* */ // 1004: bipush 7 /* */ // 1006: invokespecial 184 NET/worlds/network/CacheEntry:setState (I)V /* */ // 1009: goto +256 -> 1265 /* */ // 1012: astore_3 /* */ // 1013: getstatic 348 java/lang/System:out Ljava/io/PrintStream; /* */ // 1016: new 256 java/lang/StringBuilder /* */ // 1019: dup /* */ // 1020: ldc_w 495 /* */ // 1023: invokespecial 262 java/lang/StringBuilder: (Ljava/lang/String;)V /* */ // 1026: aload_0 /* */ // 1027: getfield 174 NET/worlds/network/CacheEntry:url LNET/worlds/network/URL; /* */ // 1030: invokevirtual 342 java/lang/StringBuilder:append (Ljava/lang/Object;)Ljava/lang/StringBuilder; /* */ // 1033: invokevirtual 282 java/lang/StringBuilder:toString ()Ljava/lang/String; /* */ // 1036: invokevirtual 360 java/io/PrintStream:println (Ljava/lang/String;)V /* */ // 1039: getstatic 348 java/lang/System:out Ljava/io/PrintStream; /* */ // 1042: new 256 java/lang/StringBuilder /* */ // 1045: dup /* */ // 1046: ldc_w 497 /* */ // 1049: invokespecial 262 java/lang/StringBuilder: (Ljava/lang/String;)V /* */ // 1052: aload_3 /* */ // 1053: invokevirtual 499 java/lang/Exception:getMessage ()Ljava/lang/String; /* */ // 1056: invokevirtual 267 java/lang/StringBuilder:append (Ljava/lang/String;)Ljava/lang/StringBuilder; /* */ // 1059: invokevirtual 282 java/lang/StringBuilder:toString ()Ljava/lang/String; /* */ // 1062: invokevirtual 360 java/io/PrintStream:println (Ljava/lang/String;)V /* */ // 1065: getstatic 348 java/lang/System:out Ljava/io/PrintStream; /* */ // 1068: new 256 java/lang/StringBuilder /* */ // 1071: dup /* */ // 1072: ldc_w 497 /* */ // 1075: invokespecial 262 java/lang/StringBuilder: (Ljava/lang/String;)V /* */ // 1078: aload_3 /* */ // 1079: invokevirtual 502 java/lang/Exception:toString ()Ljava/lang/String; /* */ // 1082: invokevirtual 267 java/lang/StringBuilder:append (Ljava/lang/String;)Ljava/lang/StringBuilder; /* */ // 1085: invokevirtual 282 java/lang/StringBuilder:toString ()Ljava/lang/String; /* */ // 1088: invokevirtual 360 java/io/PrintStream:println (Ljava/lang/String;)V /* */ // 1091: aload_1 /* */ // 1092: ifnull +27 -> 1119 /* */ // 1095: aload_1 /* */ // 1096: invokevirtual 478 java/io/FileOutputStream:close ()V /* */ // 1099: goto +5 -> 1104 /* */ // 1102: astore 4 /* */ // 1104: new 503 java/io/File /* */ // 1107: dup /* */ // 1108: aload_0 /* */ // 1109: getfield 182 NET/worlds/network/CacheEntry:localName Ljava/lang/String; /* */ // 1112: invokespecial 505 java/io/File: (Ljava/lang/String;)V /* */ // 1115: invokevirtual 506 java/io/File:delete ()Z /* */ // 1118: pop /* */ // 1119: aload_3 /* */ // 1120: aload_2 /* */ // 1121: invokestatic 334 NET/worlds/network/CacheEntry:wasHttpNoSuchFile (Ljava/lang/Exception;Ljava/net/URLConnection;)Z /* */ // 1124: ifne +10 -> 1134 /* */ // 1127: aload_3 /* */ // 1128: instanceof 338 /* */ // 1131: ifeq +17 -> 1148 /* */ // 1134: aload_0 /* */ // 1135: bipush 6 /* */ // 1137: invokespecial 184 NET/worlds/network/CacheEntry:setState (I)V /* */ // 1140: aload_0 /* */ // 1141: iconst_0 /* */ // 1142: putfield 307 NET/worlds/network/CacheEntry:bytes I /* */ // 1145: goto +42 -> 1187 /* */ // 1148: aload_0 /* */ // 1149: getfield 155 NET/worlds/network/CacheEntry:state I /* */ // 1152: iconst_2 /* */ // 1153: if_icmpne +24 -> 1177 /* */ // 1156: getstatic 199 NET/worlds/network/Cache:cache LNET/worlds/network/Cache; /* */ // 1159: dup /* */ // 1160: getfield 492 NET/worlds/network/Cache:hasChanged I /* */ // 1163: iconst_1 /* */ // 1164: iadd /* */ // 1165: putfield 492 NET/worlds/network/Cache:hasChanged I /* */ // 1168: aload_0 /* */ // 1169: bipush 7 /* */ // 1171: invokespecial 184 NET/worlds/network/CacheEntry:setState (I)V /* */ // 1174: goto +13 -> 1187 /* */ // 1177: aload_0 /* */ // 1178: iconst_0 /* */ // 1179: putfield 307 NET/worlds/network/CacheEntry:bytes I /* */ // 1182: aload_0 /* */ // 1183: iconst_5 /* */ // 1184: invokespecial 184 NET/worlds/network/CacheEntry:setState (I)V /* */ // 1187: getstatic 199 NET/worlds/network/Cache:cache LNET/worlds/network/Cache; /* */ // 1190: dup /* */ // 1191: getfield 420 NET/worlds/network/Cache:totalBytes J /* */ // 1194: aload_0 /* */ // 1195: getfield 307 NET/worlds/network/CacheEntry:bytes I /* */ // 1198: i2l /* */ // 1199: ladd /* */ // 1200: putfield 420 NET/worlds/network/Cache:totalBytes J /* */ // 1203: aload_0 /* */ // 1204: getfield 167 NET/worlds/network/CacheEntry:netSize I /* */ // 1207: ifgt +11 -> 1218 /* */ // 1210: aload_0 /* */ // 1211: aload_0 /* */ // 1212: getfield 307 NET/worlds/network/CacheEntry:bytes I /* */ // 1215: putfield 167 NET/worlds/network/CacheEntry:netSize I /* */ // 1218: aload_0 /* */ // 1219: invokespecial 423 NET/worlds/network/CacheEntry:finishedLoad ()V /* */ // 1222: goto +78 -> 1300 /* */ // 1225: astore 12 /* */ // 1227: getstatic 199 NET/worlds/network/Cache:cache LNET/worlds/network/Cache; /* */ // 1230: dup /* */ // 1231: getfield 420 NET/worlds/network/Cache:totalBytes J /* */ // 1234: aload_0 /* */ // 1235: getfield 307 NET/worlds/network/CacheEntry:bytes I /* */ // 1238: i2l /* */ // 1239: ladd /* */ // 1240: putfield 420 NET/worlds/network/Cache:totalBytes J /* */ // 1243: aload_0 /* */ // 1244: getfield 167 NET/worlds/network/CacheEntry:netSize I /* */ // 1247: ifgt +11 -> 1258 /* */ // 1250: aload_0 /* */ // 1251: aload_0 /* */ // 1252: getfield 307 NET/worlds/network/CacheEntry:bytes I /* */ // 1255: putfield 167 NET/worlds/network/CacheEntry:netSize I /* */ // 1258: aload_0 /* */ // 1259: invokespecial 423 NET/worlds/network/CacheEntry:finishedLoad ()V /* */ // 1262: aload 12 /* */ // 1264: athrow /* */ // 1265: getstatic 199 NET/worlds/network/Cache:cache LNET/worlds/network/Cache; /* */ // 1268: dup /* */ // 1269: getfield 420 NET/worlds/network/Cache:totalBytes J /* */ // 1272: aload_0 /* */ // 1273: getfield 307 NET/worlds/network/CacheEntry:bytes I /* */ // 1276: i2l /* */ // 1277: ladd /* */ // 1278: putfield 420 NET/worlds/network/Cache:totalBytes J /* */ // 1281: aload_0 /* */ // 1282: getfield 167 NET/worlds/network/CacheEntry:netSize I /* */ // 1285: ifgt +11 -> 1296 /* */ // 1288: aload_0 /* */ // 1289: aload_0 /* */ // 1290: getfield 307 NET/worlds/network/CacheEntry:bytes I /* */ // 1293: putfield 167 NET/worlds/network/CacheEntry:netSize I /* */ // 1296: aload_0 /* */ // 1297: invokespecial 423 NET/worlds/network/CacheEntry:finishedLoad ()V /* */ // 1300: return /* */ // Line number table: /* */ // Java source line #473 -> byte code offset #0 /* */ // Java source line #474 -> byte code offset #2 /* */ // Java source line #478 -> byte code offset #4 /* */ // Java source line #479 -> byte code offset #9 /* */ // Java source line #480 -> byte code offset #15 /* */ // Java source line #482 -> byte code offset #21 /* */ // Java source line #486 -> byte code offset #29 /* */ // Java source line #487 -> byte code offset #35 /* */ // Java source line #712 -> byte code offset #41 /* */ // Java source line #713 -> byte code offset #57 /* */ // Java source line #714 -> byte code offset #64 /* */ // Java source line #718 -> byte code offset #72 /* */ // Java source line #488 -> byte code offset #76 /* */ // Java source line #492 -> byte code offset #77 /* */ // Java source line #495 -> byte code offset #86 /* */ // Java source line #496 -> byte code offset #100 /* */ // Java source line #498 -> byte code offset #115 /* */ // Java source line #499 -> byte code offset #121 /* */ // Java source line #712 -> byte code offset #125 /* */ // Java source line #713 -> byte code offset #141 /* */ // Java source line #714 -> byte code offset #148 /* */ // Java source line #718 -> byte code offset #156 /* */ // Java source line #500 -> byte code offset #160 /* */ // Java source line #504 -> byte code offset #161 /* */ // Java source line #509 -> byte code offset #166 /* */ // Java source line #510 -> byte code offset #175 /* */ // Java source line #511 -> byte code offset #184 /* */ // Java source line #512 -> byte code offset #198 /* */ // Java source line #514 -> byte code offset #216 /* */ // Java source line #515 -> byte code offset #222 /* */ // Java source line #516 -> byte code offset #227 /* */ // Java source line #518 -> byte code offset #232 /* */ // Java source line #519 -> byte code offset #238 /* */ // Java source line #712 -> byte code offset #242 /* */ // Java source line #713 -> byte code offset #258 /* */ // Java source line #714 -> byte code offset #265 /* */ // Java source line #718 -> byte code offset #273 /* */ // Java source line #520 -> byte code offset #277 /* */ // Java source line #535 -> byte code offset #278 /* */ // Java source line #536 -> byte code offset #285 /* */ // Java source line #537 -> byte code offset #289 /* */ // Java source line #536 -> byte code offset #292 /* */ // Java source line #538 -> byte code offset #294 /* */ // Java source line #542 -> byte code offset #297 /* */ // Java source line #549 -> byte code offset #356 /* */ // Java source line #552 -> byte code offset #359 /* */ // Java source line #554 -> byte code offset #364 /* */ // Java source line #555 -> byte code offset #370 /* */ // Java source line #556 -> byte code offset #375 /* */ // Java source line #558 -> byte code offset #380 /* */ // Java source line #559 -> byte code offset #386 /* */ // Java source line #712 -> byte code offset #390 /* */ // Java source line #713 -> byte code offset #406 /* */ // Java source line #714 -> byte code offset #413 /* */ // Java source line #718 -> byte code offset #421 /* */ // Java source line #560 -> byte code offset #425 /* */ // Java source line #564 -> byte code offset #426 /* */ // Java source line #566 -> byte code offset #431 /* */ // Java source line #569 -> byte code offset #447 /* */ // Java source line #570 -> byte code offset #453 /* */ // Java source line #572 -> byte code offset #458 /* */ // Java source line #574 -> byte code offset #460 /* */ // Java source line #575 -> byte code offset #464 /* */ // Java source line #576 -> byte code offset #469 /* */ // Java source line #581 -> byte code offset #473 /* */ // Java source line #583 -> byte code offset #480 /* */ // Java source line #584 -> byte code offset #484 /* */ // Java source line #583 -> byte code offset #487 /* */ // Java source line #585 -> byte code offset #489 /* */ // Java source line #589 -> byte code offset #492 /* */ // Java source line #595 -> byte code offset #544 /* */ // Java source line #598 -> byte code offset #547 /* */ // Java source line #600 -> byte code offset #552 /* */ // Java source line #601 -> byte code offset #558 /* */ // Java source line #602 -> byte code offset #563 /* */ // Java source line #605 -> byte code offset #568 /* */ // Java source line #606 -> byte code offset #574 /* */ // Java source line #607 -> byte code offset #590 /* */ // Java source line #608 -> byte code offset #596 /* */ // Java source line #609 -> byte code offset #602 /* */ // Java source line #712 -> byte code offset #606 /* */ // Java source line #713 -> byte code offset #622 /* */ // Java source line #714 -> byte code offset #629 /* */ // Java source line #718 -> byte code offset #637 /* */ // Java source line #611 -> byte code offset #641 /* */ // Java source line #620 -> byte code offset #642 /* */ // Java source line #622 -> byte code offset #662 /* */ // Java source line #623 -> byte code offset #675 /* */ // Java source line #624 -> byte code offset #685 /* */ // Java source line #626 -> byte code offset #698 /* */ // Java source line #627 -> byte code offset #706 /* */ // Java source line #626 -> byte code offset #714 /* */ // Java source line #628 -> byte code offset #719 /* */ // Java source line #630 -> byte code offset #722 /* */ // Java source line #633 -> byte code offset #728 /* */ // Java source line #634 -> byte code offset #738 /* */ // Java source line #636 -> byte code offset #750 /* */ // Java source line #638 -> byte code offset #757 /* */ // Java source line #639 -> byte code offset #760 /* */ // Java source line #641 -> byte code offset #769 /* */ // Java source line #638 -> byte code offset #780 /* */ // Java source line #644 -> byte code offset #793 /* */ // Java source line #645 -> byte code offset #798 /* */ // Java source line #647 -> byte code offset #801 /* */ // Java source line #648 -> byte code offset #805 /* */ // Java source line #652 -> byte code offset #807 /* */ // Java source line #653 -> byte code offset #826 /* */ // Java source line #654 -> byte code offset #839 /* */ // Java source line #655 -> byte code offset #852 /* */ // Java source line #656 -> byte code offset #858 /* */ // Java source line #659 -> byte code offset #861 /* */ // Java source line #660 -> byte code offset #866 /* */ // Java source line #661 -> byte code offset #869 /* */ // Java source line #664 -> byte code offset #875 /* */ // Java source line #569 -> byte code offset #877 /* */ // Java source line #667 -> byte code offset #886 /* */ // Java source line #668 -> byte code offset #893 /* */ // Java source line #669 -> byte code offset #904 /* */ // Java source line #670 -> byte code offset #921 /* */ // Java source line #671 -> byte code offset #930 /* */ // Java source line #672 -> byte code offset #951 /* */ // Java source line #671 -> byte code offset #973 /* */ // Java source line #674 -> byte code offset #977 /* */ // Java source line #675 -> byte code offset #982 /* */ // Java source line #679 -> byte code offset #991 /* */ // Java source line #680 -> byte code offset #1003 /* */ // Java source line #682 -> byte code offset #1009 /* */ // Java source line #684 -> byte code offset #1013 /* */ // Java source line #685 -> byte code offset #1039 /* */ // Java source line #686 -> byte code offset #1065 /* */ // Java source line #691 -> byte code offset #1091 /* */ // Java source line #693 -> byte code offset #1095 /* */ // Java source line #694 -> byte code offset #1099 /* */ // Java source line #696 -> byte code offset #1104 /* */ // Java source line #699 -> byte code offset #1119 /* */ // Java source line #700 -> byte code offset #1134 /* */ // Java source line #701 -> byte code offset #1140 /* */ // Java source line #702 -> byte code offset #1145 /* */ // Java source line #705 -> byte code offset #1156 /* */ // Java source line #706 -> byte code offset #1168 /* */ // Java source line #707 -> byte code offset #1174 /* */ // Java source line #708 -> byte code offset #1177 /* */ // Java source line #709 -> byte code offset #1182 /* */ // Java source line #712 -> byte code offset #1187 /* */ // Java source line #713 -> byte code offset #1203 /* */ // Java source line #714 -> byte code offset #1210 /* */ // Java source line #718 -> byte code offset #1218 /* */ // Java source line #711 -> byte code offset #1225 /* */ // Java source line #712 -> byte code offset #1227 /* */ // Java source line #713 -> byte code offset #1243 /* */ // Java source line #714 -> byte code offset #1250 /* */ // Java source line #718 -> byte code offset #1258 /* */ // Java source line #719 -> byte code offset #1262 /* */ // Java source line #712 -> byte code offset #1265 /* */ // Java source line #713 -> byte code offset #1281 /* */ // Java source line #714 -> byte code offset #1288 /* */ // Java source line #718 -> byte code offset #1296 /* */ // Java source line #720 -> byte code offset #1300 /* */ // Local variable table: /* */ // start length slot name signature /* */ // 0 1301 0 this CacheEntry /* */ // 1 1095 1 out java.io.FileOutputStream /* */ // 3 1118 2 uc URLConnection /* */ // 8 172 3 oldRemoteTime long /* */ // 1012 116 3 e Exception /* */ // 1102 1 4 localIOException IOException /* */ // 13 579 5 oldsize int /* */ // 19 551 6 oldbytes int /* */ // 84 10 7 dirTime long /* */ // 448 530 7 tries int /* */ // 487 6 8 responseCode int /* */ // 673 3 8 in java.io.InputStream /* */ // 717 3 8 in java.io.InputStream /* */ // 726 74 8 in java.io.InputStream /* */ // 220 8 9 in java.io.InputStream /* */ // 292 6 9 responseCode int /* */ // 490 58 9 keep boolean /* */ // 755 28 9 buf byte[] /* */ // 295 65 10 keep boolean /* */ // 556 8 10 in java.io.InputStream /* */ // 760 15 10 count int /* */ // 788 3 10 count int /* */ // 368 8 11 in java.io.InputStream /* */ // 1225 38 12 localObject Object /* */ // Exception table: /* */ // from to target type /* */ // 4 41 1012 java/lang/Exception /* */ // 77 125 1012 java/lang/Exception /* */ // 161 242 1012 java/lang/Exception /* */ // 278 390 1012 java/lang/Exception /* */ // 426 606 1012 java/lang/Exception /* */ // 642 1009 1012 java/lang/Exception /* */ // 1095 1099 1102 java/io/IOException /* */ // 4 41 1225 finally /* */ // 77 125 1225 finally /* */ // 161 242 1225 finally /* */ // 278 390 1225 finally /* */ // 426 606 1225 finally /* */ // 642 1187 1225 finally /* */ } /* */ /* */ private void finishedLoad() /* */ { /* 723 */ notifyObservers(); /* */ /* 725 */ synchronized (threadQueue) { /* 726 */ numActiveThreads -= 1; /* */ /* */ do /* */ { /* 730 */ CacheEntry eNext = (CacheEntry)threadQueue.elementAt(0); /* 731 */ threadQueue.removeElementAt(0); /* 732 */ eNext.startThread(); /* 729 */ if (numActiveThreads >= MAX_THREADS) break; } while (!threadQueue.isEmpty()); /* */ } /* */ /* */ /* */ /* */ /* */ /* */ /* 737 */ if ((numActiveThreads <= 0) && (threadQueue.isEmpty())) /* */ { /* 739 */ Cache.cache.resyncIndex(); /* */ } /* */ } /* */ } /* Location: C:\Program Files (x86)\Worlds Inc\WorldsPlayer - Win7\lib\worlds.jar!\NET\worlds\network\CacheEntry.class * Java compiler version: 6 (50.0) * JD-Core Version: 0.7.1 */