public void close() {
		if(fos != null)
			try {
				fos.close();
			} catch (IOException e) {
				e.printStackTrace();
			}
		if(file != null)
			file.delete();
		
		if(initReq != null) {
			String fileUID = initReq.getFileUID();
			FileTransferClientCallBack cb = initReq.getGetFileCallBack();
			printMessage("Signal unsuccessful download of "+fileUID+" to "+cb.getClass().getName());
			cb.submitFile(new GetFileCallBack(serverDaId, fileUID,
					GetFileCallBack.Error.serverDown));
		}
		
		if(cb != null) {
			printMessage("Signal unsuccessful download of "+fileUID+" to "+cb.getClass().getName());
			cb.submitFile(new GetFileCallBack(serverDaId, fileUID,
					GetFileCallBack.Error.serverDown));
		}
		
		for(Iterator<GetFile> it = pendingRequests.iterator(); it.hasNext();) {
			GetFile gf = it.next();
			
			String fileUID = gf.getFileUID();
			FileTransferClientCallBack cb = gf.getGetFileCallBack();
			printMessage("Signal unsuccessful download of "+fileUID+" to "+cb.getClass().getName());
			cb.submitFile(new GetFileCallBack(serverDaId, fileUID,
					GetFileCallBack.Error.serverDown));
		}
		
		if(access != null) {
			try {
				access.close();
			} catch (IOException e) {
			} catch (InterruptedException e) {
			}
		}
		
		printMessage("Session closed.");
	}