''Don't use a simple verb to describe something that does more than a simple action''
public ObjectOutputStream getOos() throws IOException { if (m_oos == null) { m_oos = new ObjectOutputStream(m_socket.getOutputStream()); } return m_oos; }
Here the function name getOos doesn't include the fact that it creates a new oos if it is null. A better name is createOrReturnOos.