This whole logic seems overly complicated. What about:
```java
private listenersToAdd = XD_JOB_LISTENER_BEAN_MAP.values();

setListeners() {
// just tokenize (btw, no need to check for emptyness)
}

@AssertTrue(message = "must be 'disable' or a combination of 'x', 'y', 'z'")
public boolean listernersAreValid() {
 // return contains only valid names
 // return false if contains "disable" and anything else
}

public String[] profilesToActivate() {
   if( contains("disable") return NO_PROFILES
   else return listenersToAdd;  // just the names (eg "step", etc)
}
```