protected void setShellStatus(final Status shellStatus, final String msg, final ParseResult parseResult) { Assert.notNull(shellStatus, "Shell status required"); synchronized (this.shellStatus) { ShellStatus st; if (msg == null || msg.length() == 0) { st = new ShellStatus(shellStatus); } else { st = new ShellStatus(shellStatus, msg, parseResult); } if (this.shellStatus.equals(st)) { return; } for (ShellStatusListener listener : shellStatusListeners) { listener.onShellStatusChange(this.shellStatus, st); } this.shellStatus = st; } } }