user-defined filter takes precedence over non-null filter