Hi folks.
I am also trying to run the Demo application for the Jingle support and I also run into the problem with the exception “ICMP Port Unreachable”. Setup is WinXP with no router or firewall other than the default win firewall. When i ignore the ICMP error and connect to a remote user a NullPointerExceptions is thrown.
Exception in thread “AWT-EventQueue-0” java.lang.NullPointerException
at org.jivesoftware.smackx.jingle.nat.RTPBridge.serviceAvailable(RTPBridge.java:43 2)
at org.jivesoftware.smackx.jingle.nat.ICEResolver.resolve(ICEResolver.java:130)
at org.jivesoftware.smackx.jingle.nat.ICETransportManager.createResolver(ICETransp ortManager.java:45)
at org.jivesoftware.smackx.jingle.nat.JingleTransportManager.getResolver(JingleTra nsportManager.java:58)
at org.jivesoftware.smackx.jingle.OutgoingJingleSession.(OutgoingJingleSession.jav a:143)
at org.jivesoftware.smackx.jingle.JingleManager.createOutgoingJingleSession(Jingle Manager.java:617)
at org.jivesoftware.smackx.jingle.JingleManager.createOutgoingJingleSession(Jingle Manager.java:635)
at org.eclipse.ecf.internal.provider.jingle.Demo$2.actionPerformed(Demo.java:114)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.ja va:236)
at java.awt.Component.processMouseEvent(Component.java:6038)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3260)
at java.awt.Component.processEvent(Component.java:5803)
at java.awt.Container.processEvent(Container.java:2058)
at java.awt.Component.dispatchEventImpl(Component.java:4410)
at java.awt.Container.dispatchEventImpl(Container.java:2116)
at java.awt.Component.dispatchEvent(Component.java:4240)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4322)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3986)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3916)
at java.awt.Container.dispatchEventImpl(Container.java:2102)
at java.awt.Window.dispatchEventImpl(Window.java:2429)
at java.awt.Component.dispatchEvent(Component.java:4240)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:27 3)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:183)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:17 3)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:168)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:160)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:121)
The NPE is caused because there is no ServiceDiscoveryManager present. After looking through the smack 3.0 source it seamed as if the ServiceDiscoveryManager is not properly registered as a ConnectionCreationListener so there is no mapping from the XMPPConnection to the ServiceDiscoveryManager. The registration is supposed to happen in the static{} part of the ServiceDiscoveryManager class which is not invoked before it is queryed.
When i catch the exception in the RTPBridge.serviceAvailable method so that the npe is discarded (i just return false) i can actually connect to the user on the other side.
this is nice. but there is no voice comming out of either side of the connection.
Any help in any direction would be greatly appreciated
Thanks