Smack 3.1.0 Beta 1 Released

We’ve released the first beta of Smack 3.1.0. Although it’s been about a year since the last release, this version is jam-packed with great new features and bug fixes. Check out the changelog for full details.

We expect the beta process on the release to be relatively quick, but much will depend on the stability feedback we get. There are also a few last changes that we’re looking to get in before the final release.

Hi Matt,

first of all, I’d like to thank your for restarting the work on Smack. I am looking forward to test 3.1.0. b1 and will post observations in the community.

Since you have started the 3.1.0 branch, I would like to ask you to taka a look at the hard coded references to stun.xten.net in the Smack code. From my understanding this URL is used as a fall back for STUN. I am using Spark in a corporate enviroment and have some trouble with our network security team regarding unauthorized connections to stun.xten.net. I would suggest to have that URL as a configurable entry instead of a hard coded reference. The community has reported the issue, but no bug was opened and most of the community members are unsure about the impact of simply removing the URL from the code.

Walter Ebeling

Hey Walter,

Thanks for pointing this out. I will forward this info to Jeff that is the STUN/Jingle/VoIP resident expert.

– Gato

That’s great - I look forward to testing 3.1.0. From scanning the ChangeLog, it seems that the problems with closing the connection haven’t been resolved yet (there’s a hardcoded time that it waits in the hope that everything will be written to the channel, however, that’s not guaranteed - I’m using Smack for some non interactive communication and I find I need to wait a second or two just to be able to guarantee messages actually go out). It’d be really nice if that could be addressed…

Hmm… one thing we could do is allow a property to be set where it would wait until the outgoing queue is empty before finalizing the connection close vs. having a max number of seconds. Is that the behavior you’re looking for?

What I’m looking for is that if I call disconnect() that I can be garanteed that all messages were actually sent. My application has a number of custom jabber commands that get send to various daemons. So, the usage pattern is log in with daemons credentials, send some messages, disconnect. If I can be sure that I don’t have to put a sleep before I call disconnect, I’ll be very happy :-). To my taste, that makes perfect sense as a default behavior, but it could be controlled by a property or an extra boolean argument to disconnect (e.g. exitImmediately). Thanks for looking into this :-).

Hi

I want to use spark in mac os but it is not working and its showing some exception which given below. please help to use spark in mac os.

Exceptions are :

javax.net.ssl.SSLException: Received fatal alert: internal_error

at com.sun.net.ssl.internal.ssl.Alerts.getSSLException(Alerts.java:190)

at com.sun.net.ssl.internal.ssl.Alerts.getSSLException(Alerts.java:136)

at com.sun.net.ssl.internal.ssl.SSLSocketImpl.recvAlert(SSLSocketImpl.java:1682)

at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:932)

at com.sun.net.ssl.internal.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1112)

at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1139)

at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1123)

at org.jivesoftware.smack.XMPPConnection.proceedTLSReceived(XMPPConnection.java:1379)

at org.jivesoftware.smack.PacketReader.parsePackets(PacketReader.java:313)

at org.jivesoftware.smack.PacketReader.access$000(PacketReader.java:44)

at org.jivesoftware.smack.PacketReader$1.run(PacketReader.java:76)

java.lang.IllegalStateException: Not connected to server.

at org.jivesoftware.smack.XMPPConnection.sendPacket(XMPPConnection.java:856)

at org.jivesoftware.smack.NonSASLAuthentication.authenticate(NonSASLAuthentication.java:70)

at org.jivesoftware.smack.SASLAuthentication.authenticate(SASLAuthentication.java:335)

at org.jivesoftware.smack.XMPPConnection.login(XMPPConnection.java:438)

at org.jivesoftware.LoginDialog$LoginPanel.login(LoginDialog.java:1180)

at org.jivesoftware.LoginDialog$LoginPanel.access$0(LoginDialog.java:1080)

at org.jivesoftware.LoginDialog$LoginPanel$2.construct(LoginDialog.java:921)

at org.jivesoftware.spark.util.SwingWorker$2.run(SwingWorker.java:131)

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

Apr 22, 2010 12:08:59 PM org.jivesoftware.spark.util.log.Log warning

WARNING: Exception in Login:

java.lang.IllegalStateException: Must be logged in to XMPP server.

at org.jivesoftware.smackx.PrivateDataManager.(PrivateDataManager.java:140)

at org.jivesoftware.spark.SessionManager.initializeSession(SessionManager.java:97)

at org.jivesoftware.LoginDialog$LoginPanel.login(LoginDialog.java:1187)

at org.jivesoftware.LoginDialog$LoginPanel.access$0(LoginDialog.java:1080)

at org.jivesoftware.LoginDialog$LoginPanel$2.construct(LoginDialog.java:921)

at org.jivesoftware.spark.util.SwingWorker$2.run(SwingWorker.java:131)

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