8b43f16dc23f723eb1e9892ab931dbd25499efb0
[jalviewjs.git] / site / swingjs / j2s / jssun / misc / Resource.js
1 Clazz.declarePackage ("jssun.misc");\r
2 Clazz.load (null, "jssun.misc.Resource", ["java.io.EOFException", "java.lang.Thread", "java.util.Arrays"], function () {\r
3 c$ = Clazz.decorateAsClass (function () {\r
4 this.cis = null;\r
5 Clazz.instantialize (this, arguments);\r
6 }, jssun.misc, "Resource");\r
7 Clazz.defineMethod (c$, "cachedInputStream", \r
8  function () {\r
9 if (this.cis == null) {\r
10 this.cis = this.getInputStream ();\r
11 }return this.cis;\r
12 });\r
13 Clazz.defineMethod (c$, "getBytes", \r
14 function () {\r
15 var b;\r
16 var $in = this.cachedInputStream ();\r
17 var isInterrupted = Thread.interrupted ();\r
18 var len;\r
19 for (; ; ) {\r
20 try {\r
21 len = this.getContentLength ();\r
22 break;\r
23 } catch (iioe) {\r
24 if (Clazz.exceptionOf (iioe, java.io.InterruptedIOException)) {\r
25 Thread.interrupted ();\r
26 isInterrupted = true;\r
27 } else {\r
28 throw iioe;\r
29 }\r
30 }\r
31 }\r
32 try {\r
33 b =  Clazz.newByteArray (0, 0);\r
34 if (len == -1) len = 2147483647;\r
35 var pos = 0;\r
36 while (pos < len) {\r
37 var bytesToRead;\r
38 if (pos >= b.length) {\r
39 bytesToRead = Math.min (len - pos, b.length + 1024);\r
40 if (b.length < pos + bytesToRead) {\r
41 b = java.util.Arrays.copyOf (b, pos + bytesToRead);\r
42 }} else {\r
43 bytesToRead = b.length - pos;\r
44 }var cc = 0;\r
45 try {\r
46 cc = $in.read (b, pos, bytesToRead);\r
47 } catch (iioe) {\r
48 if (Clazz.exceptionOf (iioe, java.io.InterruptedIOException)) {\r
49 Thread.interrupted ();\r
50 isInterrupted = true;\r
51 } else {\r
52 throw iioe;\r
53 }\r
54 }\r
55 if (cc < 0) {\r
56 if (len != 2147483647) {\r
57 throw  new java.io.EOFException ("Detect premature EOF");\r
58 } else {\r
59 if (b.length != pos) {\r
60 b = java.util.Arrays.copyOf (b, pos);\r
61 }break;\r
62 }}pos += cc;\r
63 }\r
64 } finally {\r
65 try {\r
66 $in.close ();\r
67 } catch (e$$) {\r
68 if (Clazz.exceptionOf (e$$, java.io.InterruptedIOException)) {\r
69 var iioe = e$$;\r
70 {\r
71 isInterrupted = true;\r
72 }\r
73 } else if (Clazz.exceptionOf (e$$, java.io.IOException)) {\r
74 var ignore = e$$;\r
75 {\r
76 }\r
77 } else {\r
78 throw e$$;\r
79 }\r
80 }\r
81 if (isInterrupted) {\r
82 Thread.currentThread ().interrupt ();\r
83 }}\r
84 return b;\r
85 });\r
86 });\r