Cache problem - Connection Error, Retrying


#1

Hi, I’m having a problem with my RSPS on my webclient.
When I load it, it says downloading cache (Which it does) then after it does that it says “Requesting title screen” for a bit. Then it says Connection Error retrying and it counts down from 10.
With Connection error it has a capital “C” so it’s a cache problem.

Here is my signlink.java

[code]// Decompiled by Jad v1.5.8f. Copyright 2001 Pavel Kouznetsov.
// Jad home page: http://www.kpdus.com/jad.html
// Decompiler options: packimports(3)
// Source File Name: signlink.java

package sign;

import java.applet.Applet;
import java.io.;
import java.net.
;

public final class signlink
implements Runnable
{

public static void startpriv(InetAddress inetaddress)
{
    threadliveid = (int)(Math.random() * 99999999D);
    if(active)
    {
        try
        {
            Thread.sleep(500L);
        }
        catch(Exception _ex) { }
        active = false;
    }
    socketreq = 0;
    threadreq = null;
    dnsreq = null;
    savereq = null;
    urlreq = null;
    socketip = inetaddress;
    Thread thread = new Thread(new signlink());
    thread.setDaemon(true);
    thread.start();
    while(!active)
        try
        {
            Thread.sleep(50L);
        }
        catch(Exception _ex) { }
}

public static void setuid() {
uid = 8;
}
public void run()
{
    active = true;
    String s = findcachedir();
   // uid = getuid(s);
   uid = 8;
    try {
        cache_dat = new RandomAccessFile(s + "main_file_cache.dat", "rw");
        for(int j = 0; j < 5; j++) {
            cache_idx[j] = new RandomAccessFile(s + "main_file_cache.idx" + j, "rw");
		}
    } catch(Exception exception) {
        exception.printStackTrace();
    }
    for(int i = threadliveid; threadliveid == i;)
    {
        if(socketreq != 0)
        {
            try
            {
                socket = new Socket(socketip, socketreq);
            }
            catch(Exception _ex)
            {
                socket = null;
            }
            socketreq = 0;
        } else
        if(threadreq != null)
        {
            Thread thread = new Thread(threadreq);
            thread.setDaemon(true);
            thread.start();
            thread.setPriority(threadreqpri);
            threadreq = null;
        } else
        if(dnsreq != null)
        {
            try
            {
                dns = InetAddress.getByName(dnsreq).getHostName();
            }
            catch(Exception _ex)
            {
                dns = "unknown";
            }
            dnsreq = null;
        } else
        if(savereq != null)
        {
            if(savebuf != null)
                try
                {
                    FileOutputStream fileoutputstream = new FileOutputStream(s + savereq);
                    fileoutputstream.write(savebuf, 0, savelen);
                    fileoutputstream.close();
                }
                catch(Exception _ex) { }
            if(waveplay)
            {
                String wave = s + savereq;
                waveplay = false;
            }
            if(midiplay)
            {
                midi = s + savereq;
                midiplay = false;
            }
            savereq = null;
        } else
        if(urlreq != null)
        {
            try
            {
                System.out.println("urlstream");
                urlstream = new DataInputStream((new URL(mainapp.getCodeBase(), urlreq)).openStream());
            }
            catch(Exception _ex)
            {
                urlstream = null;
            }
            urlreq = null;
        }
        try
        {
            Thread.sleep(50L);
        }
        catch(Exception _ex) { }
    }

}

public static final String findcachedir() {
	File file;
	File[] drives = File.listRoots();

	/**
	**** Made Client Work on Mac!
	**/
	String HomeIsBaws = System.getProperty("user.home");
	String s = ""+HomeIsBaws+"/moltenscapeV1cache/";
	file = new File(s);
	if(file.exists() || file.mkdirs()) {
		return s + "/";
	}
	return null;
}

public static int getuid(String s) {
return 8;
}

/* private static int getuid(String s)
{
try
{
File file = new File(s + “uid.dat”);
if(!file.exists() || file.length() < 4L)
{
DataOutputStream dataoutputstream = new DataOutputStream(new FileOutputStream(s + “uid.dat”));
dataoutputstream.writeInt((int)(Math.random() * 99999999D));
dataoutputstream.close();
}
}
catch(Exception _ex) { }
try
{
DataInputStream datainputstream = new DataInputStream(new FileInputStream(s + “uid.dat”));
int i = datainputstream.readInt();
datainputstream.close();
return i + 1;
}
catch(Exception _ex)
{
return 0;
}
}*/

public static synchronized Socket opensocket(int i)
    throws IOException
{
    for(socketreq = i; socketreq != 0;)
        try
        {
            Thread.sleep(50L);
        }
        catch(Exception _ex) { }

    if(socket == null)
        throw new IOException("could not open socket");
    else
        return socket;
}

public static synchronized DataInputStream openurl(String s)
    throws IOException
{
    for(urlreq = s; urlreq != null;)
        try
        {
            Thread.sleep(50L);
        }
        catch(Exception _ex) { }

    if(urlstream == null)
        throw new IOException("could not open: " + s);
    else
        return urlstream;
}

public static synchronized void dnslookup(String s)
{
    dns = s;
    dnsreq = s;
}

public static synchronized void startthread(Runnable runnable, int i)
{
    threadreqpri = i;
    threadreq = runnable;
}

public static synchronized boolean wavesave(byte abyte0[], int i)
{
    /*if(i > 0x1e8480)
        return false;
    if(savereq != null)
    {
        return false;
    } else
    {
        wavepos = (wavepos + 1) % 5;
        savelen = i;
        savebuf = abyte0;
        waveplay = true;
        savereq = "sound" + wavepos + ".wav";
        return true;
    }*/
	return false;
}

public static synchronized boolean wavereplay()
{
    if(savereq != null)
    {
        return false;
    } else
    {
        savebuf = null;
        waveplay = true;
        savereq = "sound" + wavepos + ".wav";
        return true;
    }
}

public static synchronized void midisave(byte abyte0[], int i)
{
    /*if(i > 0x1e8480)
        return;
    if(savereq != null)
    {
    } else
    {
        midipos = (midipos + 1) % 5;
        savelen = i;
        savebuf = abyte0;
        midiplay = true;
        savereq = "jingle" + midipos + ".mid";
    }*/
}

public static void reporterror(String s)
{
    System.out.println("Error: " + s);
}

private signlink()
{
}

public static final int clientversion = 317;

public static int uid;
public static int storeid = 32;
public static RandomAccessFile cache_dat = null;
public static final RandomAccessFile[] cache_idx = new RandomAccessFile[5];
public static boolean sunjava;
public static Applet mainapp = null;
private static boolean active;
private static int threadliveid;
private static InetAddress socketip;
private static int socketreq;
private static Socket socket = null;
private static int threadreqpri = 1;
private static Runnable threadreq = null;
private static String dnsreq = null;
public static String dns = null;
private static String urlreq = null;
private static DataInputStream urlstream = null;
private static int savelen;
private static String savereq = null;
private static byte[] savebuf = null;
private static boolean midiplay;
private static int midipos;
public static String midi = null;
public static int midivol;
public static int midifade;
private static boolean waveplay;
private static int wavepos;
public static int wavevol;
public static boolean reporterror = true;
public static String errorname = “”;

}[/code]

Here is my CacheDownloader.java

[code]import java.io.;
import java.net.
;
import java.util.zip.*;
import java.util.Enumeration;
import sign.signlink;

public class CacheDownloader {

public client client;
public final int BUFFER = 1024;
public static final int VERSION = 2;
//public String cacheLink = "http://dl.dropbox.com/u/62185708/moltenscapeV1cache.zip";
public String cacheLink = "http://dl.dropbox.com/u/62185708/moltenscapeV1cache.zip";
public String fileToExtract = getCacheDir() + getArchivedName();

public CacheDownloader(client client) {
	this.client = client;
}

public void drawLoadingText(String text) {
	client.drawLoadingText(35, text);
}

public void drawLoadingText(int amount, String text) {
	client.drawLoadingText(amount, text);
}

public String getCacheDir() {
	return signlink.findcachedir();
}

public String getCacheLink() {
	return cacheLink;
}

public int getCacheVersion() {
	return VERSION;
}

public CacheDownloader downloadCache() {
	try {
	File location = new File(getCacheDir());
	File version = new File(getCacheDir() + "/cacheUpdate" + getCacheVersion() + ".dat");
	if(!location.exists()) {
		//delete(getCacheDir());
		downloadFile(getCacheLink(), getArchivedName());
		unZip();
		BufferedWriter versionFile = new BufferedWriter(new FileWriter(getCacheDir() + "/cacheUpdate" + getCacheVersion() + ".dat"));
		versionFile.close();
		deleteDownloadedZipFile(getArchivedName());
	} else {
		if(!version.exists()) {
			//delete(getCacheDir());
			downloadFile(getCacheLink(), getArchivedName());
			unZip();
			BufferedWriter versionFile = new BufferedWriter(new FileWriter(getCacheDir() + "/cacheUpdate" + getCacheVersion() + ".dat"));
			versionFile.close();
			deleteDownloadedZipFile(getArchivedName());
		} else {
			return null;
		}
	}
	} catch(Exception e) {
	}
	return null;
}

public void downloadFile(String adress, String localFileName) {
	OutputStream out = null;
	URLConnection conn;
	InputStream in = null;
	try {
		URL url = new URL(adress);
		out = new BufferedOutputStream(new FileOutputStream(getCacheDir() + "/" +localFileName)); 
		conn = url.openConnection();
		in = conn.getInputStream(); 
		byte[] data = new byte[BUFFER]; 
		int numRead;
		long numWritten = 0;
		int length = conn.getContentLength();
		while((numRead = in.read(data)) != -1) {
			out.write(data, 0, numRead);
			numWritten += numRead;
        int percentage = (int)(((double)numWritten / (double)length) * 100D);
			drawLoadingText(percentage, "Downloading Cache " + percentage + "%");
		}
		drawLoadingText("Finished downloading "+getArchivedName()+"!");
	} catch (Exception exception) {
		exception.printStackTrace();
	} finally {
		try {
			if (in != null) {
				in.close();
			}
			if (out != null) {
				out.close();
			}
		} catch (IOException ioe) {
		}
	}
}

public String getArchivedName() {
	int lastSlashIndex = getCacheLink().lastIndexOf('/');
	if (lastSlashIndex >= 0 
		&& lastSlashIndex < getCacheLink().length() -1) { 
		return getCacheLink().substring(lastSlashIndex + 1);
	} else {
	}
	return "";
}

public void deleteDownloadedZipFile(String fileName) {
	File f = new File(getCacheDir() + fileName);
	if (!f.exists())
		throw new IllegalArgumentException("Delete: no such file or directory: " + fileName);
	if (!f.canWrite())
		throw new IllegalArgumentException("Delete: write protected: " + fileName);
	if (f.isDirectory()) {
		String[] files = f.list();
	if (files.length > 0)
		throw new IllegalArgumentException("Delete: directory not empty: " + fileName);
	}
	boolean success = f.delete();
	if (!success)
		throw new IllegalArgumentException("Delete: deletion failed");
}

public static boolean delete( String path ) {
	if (path == null || path.trim().length() == 0) 
	return false;
	return delete(new File(path));
}

public static boolean delete( File fileOrDirectory ) {
	if (fileOrDirectory == null) return false;
	if (!fileOrDirectory.exists()) return false;
	if (fileOrDirectory.isDirectory()) {
		for (File childFile : fileOrDirectory.listFiles()) {
			delete(childFile);
		}
	}
	return fileOrDirectory.delete();
}

public void unZip() {
	try {
		InputStream in = new BufferedInputStream(new FileInputStream(fileToExtract));
		ZipInputStream zin = new ZipInputStream(in);
		ZipEntry e;
		while((e=zin.getNextEntry()) != null) {
           	if(e.isDirectory()) {
				(new File(getCacheDir() + e.getName())).mkdir();
           	} else {
			if (e.getName().equals(fileToExtract)) {
				unzip(zin, fileToExtract);
				break;
			}
				unzip(zin, getCacheDir() + e.getName());
			}
		}
		zin.close();
	} catch(Exception e) {
		e.printStackTrace();
	}
}

public void unzip(ZipInputStream zin, String s) throws IOException {
	FileOutputStream out = new FileOutputStream(s);
	byte [] b = new byte[BUFFER];
	int len = 0;
	while ((len = zin.read(b)) != -1) {
		out.write(b,0,len);
	}
	out.close();
}

}[/code]

What am I doing wrong?
It’s downloading in C:/Users/soapface/
When I only want it to download in C:/

Please help!


#2

I’ve got a similar problem, bump mine please.


#3

I have this same problem, this is explained better then I can


#4

Make your own thread and post your own code…
Don’t bump a 4 year old topic.