diff options
Diffstat (limited to 'NET/worlds/network/CacheEntry.java')
| -rw-r--r-- | NET/worlds/network/CacheEntry.java | 1270 |
1 files changed, 1270 insertions, 0 deletions
diff --git a/NET/worlds/network/CacheEntry.java b/NET/worlds/network/CacheEntry.java new file mode 100644 index 0000000..0854eaf --- /dev/null +++ b/NET/worlds/network/CacheEntry.java @@ -0,0 +1,1270 @@ +/* */ 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<CacheEntry> 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<Observer> 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<Observer> v = this.observers; +/* 298 */ this.observers = null; +/* */ } +/* */ Vector<Observer> 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:<init> ()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:<init> (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:<init> (Z)V +/* */ // 714: invokespecial 461 java/util/zip/InflaterInputStream:<init> (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:<init> (Ljava/lang/String;)V +/* */ // 749: astore_1 +/* */ // 750: sipush 4096 +/* */ // 753: newarray <illegal type> +/* */ // 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:<init> (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:<init> (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:<init> (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:<init> (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:<init> (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:<init> (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 + */
\ No newline at end of file |