Ispn 4599

Contains fixes for:
 - https://issues.jboss.org/browse/ISPN-2727
 - https://issues.jboss.org/browse/ISPN-4048
 - https://issues.jboss.org/browse/ISPN-4165
 - https://issues.jboss.org/browse/ISPN-4186
 - https://issues.jboss.org/browse/ISPN-4599

(Ultimately all caused by ISPN-4599)
The factory is only used during initialize(..), so we need a field for it?