Had an odd situation where the monitor would throw an NPE constantly when I tried to view any page.
It was throwing a NPE trying to accessed the cached instance name. It appears that HdfsZooInstance.getInstance().getInstanceName( may return null, but the monitor code is not written to account for that.
The monitor should check for null values before setting the instance name into cachedInstanceName. When the instance name is null, it should reschedule the timertask to try to fetch a (non-null) instance name.