simplify rcursive detection
unregister mbean when filter is destroy to avoid memory leak. Create unit test.