But for getSubscriptionsAsOwner it should have been
SUBSCRIPTIONS("subscriptions", PubSubNamespace.OWNER),
I guess thats why subElem is null.
Nope, that's actually a little flaw in the PubSub implementations design. NodeExtension, the superclass of SubscriptionsExtensions, uses a namespace when it actually has only an implicit one inherited from the pubsub element.