Quantcast
Channel: Ignite Realtime : All Content - Openfire Dev
Viewing all articles
Browse latest Browse all 966

[Bug] Changing PubSub Node Configuration

$
0
0

When i tried to change the configuration of a PubSub node i noticed that the configuration is changed but:

 

1. The subscribers are not correctly notified (just getting a 500 Server error)

2. The change is not persisted to the DB (meaning the old config is loaded when Openfire is restarted.)

 

In the error log i found the following trace:

 

2015.11.26 16:43:39 org.jivesoftware.openfire.pubsub.PubSubModule - Internal server error

java.lang.NullPointerException

        at org.jivesoftware.openfire.pubsub.Node.addFormFields(Node.java:878)

        at org.jivesoftware.openfire.pubsub.LeafNode.addFormFields(LeafNode.java:127)

        at org.jivesoftware.openfire.pubsub.Node.getConfigurationChangeForm(Node.java:1082 )

        at org.jivesoftware.openfire.pubsub.Node.nodeConfigurationChanged(Node.java:765)

        at org.jivesoftware.openfire.pubsub.Node.configure(Node.java:711)

        at org.jivesoftware.openfire.pubsub.PubSubEngine.configureNode(PubSubEngine.java:1 362)

        at org.jivesoftware.openfire.pubsub.PubSubEngine.process(PubSubEngine.java:184)

        at org.jivesoftware.openfire.pubsub.PubSubModule.process(PubSubModule.java:168)

        at org.jivesoftware.openfire.spi.RoutingTableImpl.routeToComponent(RoutingTableImp l.java:406)

        at org.jivesoftware.openfire.spi.RoutingTableImpl.routePacket(RoutingTableImpl.jav a:248)

        at org.jivesoftware.openfire.IQRouter.handle(IQRouter.java:331)

        at org.jivesoftware.openfire.IQRouter.route(IQRouter.java:123)

        at org.jivesoftware.openfire.spi.PacketRouterImpl.route(PacketRouterImpl.java:78)

        at org.jivesoftware.openfire.SessionPacketRouter.route(SessionPacketRouter.java:10 8)

        at org.jivesoftware.openfire.SessionPacketRouter.route(SessionPacketRouter.java:67 )

        at org.jivesoftware.openfire.http.HttpSession.sendPendingPackets(HttpSession.java: 655)

        at org.jivesoftware.openfire.http.HttpSession$HttpPacketSender.run(HttpSession.jav a:1280)

        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)

        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)

        at java.lang.Thread.run(Thread.java:745)

 

In Node.java line 878 the following piece of code fails because there is no parent node:

 

if (!parent.isRootCollectionNode()) {

        formField.addValue(parent.getNodeID());

}

 

I changed this to:

 

if (parent != null && !parent.isRootCollectionNode()) {

        formField.addValue(parent.getNodeID());

}

 

And it seems to work fine now.

 

Florian


Viewing all articles
Browse latest Browse all 966

Trending Articles