package com.limegroup.gnutella.uploader;
import java.io.IOException;
import java.io.OutputStream;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import com.limegroup.gnutella.util.CommonUtils;
/**
* This class handles the case where the requested file was not
* found on the local system. It writes the appropriate HTTP header
* error codes to the requesting client indicating that this is the
* case.
*/
public final class FileNotFoundUploadState extends UploadState {
private static final Log LOG = LogFactory.getLog(FileNotFoundUploadState.class);
/**
* Constant for the error message to send.
*/
private static final byte[] ERROR_MESSAGE =
"File not found on server.".getBytes();
public void writeMessageHeaders(OutputStream ostream) throws IOException {
LOG.debug("writing message headers");
String str;
str = "HTTP/1.1 404 Not Found\r\n";
ostream.write(str.getBytes());
str = "Server: " + CommonUtils.getHttpServer() + "\r\n";
ostream.write(str.getBytes());
str = "Content-Type: text/plain\r\n";
ostream.write(str.getBytes());
str = "Content-Length: " + ERROR_MESSAGE.length + "\r\n";
ostream.write(str.getBytes());
str = "\r\n";
ostream.write(str.getBytes());
}
public void writeMessageBody(OutputStream ostream) throws IOException {
LOG.debug("writing message body");
ostream.write(ERROR_MESSAGE);
}
public boolean getCloseConnection() {
return false;
}
}