private boolean updateFile(StringTokenizer st) throws IOException {
		if (isRegistered() == false) {
			os.write("ERR: You are not registered yet.".getBytes());
			return false;
		}
		if (st.hasMoreTokens() == false) {
			os.write("ERR: Empty filename.".getBytes());
			return false;
		}
		String fileName = st.nextToken();
		if (DBInterface.instance().isOwner(clientData.getName(), fileName) == false) {
			os.write("ERR: You are not the owner.".getBytes());
			return false;
		}
		if (DBInterface.instance().updateFile(fileName)) {
			os.write("Send file".getBytes());
			// TODO: 1024 must be constant
			byte[] buffer = new byte[1024];
			try {
				FileOutputStream fos = new FileOutputStream("server/" + fileName);
				int status = in.read(buffer);
				int size = Integer.parseInt(new String(buffer, 0, status));
				while (size-- > 0 && (status = in.read(buffer)) > 0) {
					fos.write(buffer, 0, status);
				}
				fos.close();
			} catch (Exception e) {
				System.err.println("ERR: Cannot receive file");
				e.printStackTrace();
				return false;
			}
			DBInterface.instance().validateUserFile(clientData.getName(), fileName);
			ArrayList<String> users = DBInterface.instance().getUsersWithThisFileName(fileName);
			String tmpUsers = "";
			for (String userName : users) {
				if(userName == clientData.getName())
					continue;
				new ClientJob(new ShareJob(fileName, userName), DBInterface.instance().getIP(userName));
				DBInterface.instance().validateUserFile(userName,fileName);
				System.out.println("Client Job has been created. " + userName );
				tmpUsers += userName + " ";
			}
			os.write(("SUC: Your file has been shared with " + tmpUsers).getBytes());			
			return true;
			 
		}
		return false;
	}