private void readData() { try { int j = inputStream.available(); if(expectedSize == 0 && j >= 6) { waiting = true; for(int k = 0; k < 6; k += inputStream.read(ioBuffer, k, 6 - k)); int l = ioBuffer[0] & 0xff; //idx type int j1 = ((ioBuffer[1] & 0xff) << 8) + (ioBuffer[2] & 0xff); //id int l1 = ((ioBuffer[3] & 0xff) << 8) + (ioBuffer[4] & 0xff); // bytearray length int i2 = ioBuffer[5] & 0xff; //status? current = null; for(OnDemandData onDemandData = (OnDemandData) requested.reverseGetFirst(); onDemandData != null; onDemandData = (OnDemandData) requested.reverseGetNext()) { if(onDemandData.dataType == l && onDemandData.ID == j1) current = onDemandData; if(current != null) onDemandData.loopCycle = 0; } if(current != null) { loopCycle = 0; if(l1 == 0) { signlink.reporterror("Rej: " + l + "," + j1); current.buffer = null; if(current.incomplete) synchronized(aClass19_1358) { aClass19_1358.insertHead(current); } else current.unlink(); current = null; } else { if(current.buffer == null && i2 == 0) current.buffer = new byte[l1]; if(current.buffer == null && i2 != 0) throw new IOException("missing start of file"); } } completedSize = i2 * 500; expectedSize = 500; if(expectedSize > l1 - i2 * 500) expectedSize = l1 - i2 * 500; } if(expectedSize > 0 && j >= expectedSize) { waiting = true; byte abyte0[] = ioBuffer; int i1 = 0; if(current != null) { abyte0 = current.buffer; i1 = completedSize; } for(int k1 = 0; k1 < expectedSize; k1 += inputStream.read(abyte0, k1 + i1, expectedSize - k1)); if(expectedSize + completedSize >= abyte0.length && current != null) { if(clientInstance.decompressors[0] != null) clientInstance.decompressors[current.dataType + 1].method234(abyte0.length, abyte0, current.ID); if(!current.incomplete && current.dataType == 3) { current.incomplete = true; current.dataType = 93; } if(current.incomplete) synchronized(aClass19_1358) { aClass19_1358.insertHead(current); } else current.unlink(); } expectedSize = 0; } } catch(IOException ioexception) { try { socket.close(); } catch(Exception _ex) { } socket = null; inputStream = null; outputStream = null; expectedSize = 0; } }