Solved

How do I keep my connection from getting reset?

Posted on 2008-06-23
2
1,573 Views
Last Modified: 2013-12-29
I have a Java applet that uploads and downloads files to a server. With one file in particular, I'm always getting the same exception thrown:
java.net.SocketException:Connection reset
    at java.net.SocketInputStream.read(Unknown Source)
    at...
    at sun.net.www.protocol.http.HttpURLConnection$HttpInputStream.read(Unknown Source)
    at FTA.copyInputStream(FTA.java:1023)
    etc
and also
java.net.SocketException: Connection reset
    at com.sun.net.ssl.internal.ssl.SSLSocketImpl.checkEOF(Unknown Source)
    at...
    at FTA.DownloadZipFile(FTA.java:756)
    etc.
Caused by javax.net.ssl.SSLException: java.net.SocketException: Connection reset
    at...
    at FTA.copyInputStream(FTA.java:1023)
    at FTA.DownloadZipFile(FTA.java:754)
    ... 5 more
Caused by java.net.SocketException: Connection reset
    at java.net.SocketInputStream.read(Unknown Source)
    ... 19 more
My question is: what does this mean (beyond the obvious) and how do I get my connection to not reset itself? Thanks.
// FTA.java
 

private String DownloadZipFile()

{

  File f = null;

  try 

  {

    URL u = new URL(Url);

    HttpURLConnection conn = (HttpURLConnection)u.openConnection();
 

    InputStream is = conn.getInputStream();

    f =  File.createTempFile("FTA", ".tmp");

    f.deleteOnExit();

    FileOutputStream fw = new FileOutputStream(f);

    int size = conn.getContentLength();
 

    BufferedOutputStream bos = new BufferedOutputStream( fw );

    copyInputStream(is, bos, size, true );     // line 754
 

    is.close();                                // line 756

    bos.close();

    fw.flush();	

    fw.close();
 

    return f.getAbsolutePath();

  }

  catch (SocketException sx)

  {

    System.err.println(sx.getMessage());

    sx.printStackTrace();

    return null;

  }

  finally {

    if(f != null) { f.delete(); }

  }

}
 

private void copyInputStream(InputStream in, OutputStream out, int totalLength, boolean showProgress) throws IOException

{

  try

  {

    byte[] buffer = new byte[1024];

    Date start = new Date();
 

    int bytesSent = 0;

    int len;                //line 1023 -- how is this throwing an exception???
 

    while ((len = in.read(buffer)) >= 0 && !shouldCancel)

    {

      bytesSent += len;

      out.flush();

    }

    out.flush();

  }

// We might need to try throwing these to the calling method.

  catch (SocketException sx)

  {

    System.err.println(sx.getMessage());

    sx.printStackTrace();

  }

  catch (IOException iox)

  {

    System.err.println(iox.getMessage());

    iox.printStackTrace();

  }

// there should be a finally clause right here to deal with the socket

// resetting the connection

}

Open in new window

0
Comment
Question by:tjgquicken
2 Comments
 
LVL 86

Expert Comment

by:CEHJ
Comment Utility
I don't understand how copyInputStream is working *at all* - nothing is written to the OutputStream
0
 
LVL 92

Accepted Solution

by:
objects earned 500 total points
Comment Utility
You can't stop that, it is caused by the client disconnecting. eg. if they cancel the upload/download.
You should instead detect it occurring and handle it garcefully (by basically ignoring it and cancell up/download)

0

Featured Post

Why You Should Analyze Threat Actor TTPs

After years of analyzing threat actor behavior, it’s become clear that at any given time there are specific tactics, techniques, and procedures (TTPs) that are particularly prevalent. By analyzing and understanding these TTPs, you can dramatically enhance your security program.

Join & Write a Comment

Suggested Solutions

Java Flight Recorder and Java Mission Control together create a complete tool chain to continuously collect low level and detailed runtime information enabling after-the-fact incident analysis. Java Flight Recorder is a profiling and event collectio…
Java functions are among the best things for programmers to work with as Java sites can be very easy to read and prepare. Java especially simplifies many processes in the coding industry as it helps integrate many forms of technology and different d…
Viewers learn about the “while” loop and how to utilize it correctly in Java. Additionally, viewers begin exploring how to include conditional statements within a while loop and avoid an endless loop. Define While Loop: Basic Example: Explanatio…
Viewers will learn about if statements in Java and their use The if statement: The condition required to create an if statement: Variations of if statements: An example using if statements:

744 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

17 Experts available now in Live!

Get 1:1 Help Now