When won't the initiating thead be used in replies?

When I send a chat message from my program to a spark client, when I reply using the spark client it’s not using my thread in the reply. Is this normal?

I send a message:

SEND:<message xmlns=“jabber:client” type=“chat” to=“pascal@XX”><body>for the only one test message</body><thread>a5bee0d75d72407e93bc1cc89885cdff</thread&g t;</message>

The spark client blinks and I click on it. The spark client sends:

RECV:<iq id=“SWLxK-27” to=“todd@XX/shoretel” type=“get” from=“pascal@XX/spark”><query xmlns=“http://jabber.org/protocol/disco#info”/></iq>

OnIq iq=<iq xmlns=“jabber:client” from=“pascal@thoff745mt-1491/spark” to=“todd@thoff745mt-1491/shoretel” type=“get” id=“SWLxK-27”><query xmlns=“http://jabber.org/protocol/disco#info” /></iq>

In the spark client I send a message and in my program I receive:

RECV:<message id=“SWLxK-28” to=“todd@XX/shoretel” from=“pascal@XX/spark” type=“chat”><body>mmm</body><thread>r24LiW</thread>& lt;x xmlns=“jabber:x:event”><offline/><composing/></x></mess age>

An entire new thread was allocated instead of using my thread.

I notice the same thing happens when I talk spark client to spark client as well. Aren’t the threads supposed to be picked up by the clients?

Thanks for any help.

Ping. Does anyone have an idea on this?

Any chance at all the someone in the wide world will have the slightest concern that a potential customer can’t get even the most basic questions answered?

Have you checked the debug logs on the openfire server?

I have. Nothing seems relevant.

But it sounds like you think threadid should be sent, so that’s something.

And I don’t see chatstates being used, even spark to spark. Nobody helped with that question either.

Chat states are definitely sent spark to spark and spark to other clients. I can see when users are typng etc, even on gateways. Spark should definitely thread the conversation correctly. Is there any errors in the spark logs, for the client and the application (2 different folders)? What OS is the server on and the clients? How many users?

As explained in my chatstate post, I do see the composing chatstate, but only when the IM message is sent, not before.

Two users. One on XP SP2 and another on windows server 2003

XP error.log

java.lang.reflect.InvocationTargetException

Exception on commit = java.io.IOException: Can’t find registry file

Exception on commit = java.io.IOException: Can’t find registry file

Exception on commit = java.io.IOException: Can’t find registry file

Exception on commit = java.io.IOException: Can’t find registry file

XP output.log:

DirectSound Capture Supported = true

DirectSoundAuto: Committed ok

JavaSound Capture Supported = true

JavaSoundAuto: Committed ok

Service listing

Public Chatrooms-result

Publish-Subscribe service-result

User Search-result

Socks 5 Bytestreams Proxy-result

Initialized

1

1

Initializing…Resolved

Failed to commit to JMFRegistry!

Looking for Audio capturer

DirectSound Capture Supported = true

2

DirectSoundAuto: Committed ok

Finished detecting DirectSound capturer

JavaSound Capture Supported = true

JavaSoundAuto: Committed ok

Finished detecting javasound capturer

windows server 2003 error.log

java.lang.reflect.InvocationTargetException

windows server 2003output.log

DirectSound Capture Supported = true

JavaSound Capture Supported = false

Service listing

Public Chatrooms-result

Publish-Subscribe service-result

User Search-result

Socks 5 Bytestreams Proxy-result

Initialized

1

1

Initializing…Resolved

Failed to commit to JMFRegistry!

Looking for Audio capturer

DirectSound Capture Supported = true

JavaSound Capture Supported = false

Finished detecting javasound capturer

2

Another interesting problem happens when trying to start a multi-user chat using user names containing an @ sign:

2008.03.10 17:25:15 [org.jivesoftware.openfire.muc.spi.MultiUserChatServerImpl.processPacket(MultiU serChatServerImpl.java:250)

] Internal server error

java.lang.IllegalArgumentException: Illegal JID: stacee@company.com@server

at org.xmpp.packet.JID.init(JID.java:394)

at org.xmpp.packet.JID.<init>(JID.java:229)

at org.jivesoftware.openfire.muc.spi.LocalMUCUser.process(LocalMUCUser.java:297)

at org.jivesoftware.openfire.muc.spi.LocalMUCUser.process(LocalMUCUser.java:160)

at org.jivesoftware.openfire.muc.spi.MultiUserChatServerImpl.processPacket(MultiUs erChatServerImpl.java:247)

at org.jivesoftware.openfire.muc.spi.MultiUserChatServerImpl.process(MultiUserChat ServerImpl.java:227)

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

at org.jivesoftware.openfire.MessageRouter.route(MessageRouter.java:96)

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

at org.jivesoftware.openfire.net.StanzaHandler.processMessage(StanzaHandler.java:3 39)

at org.jivesoftware.openfire.net.ClientStanzaHandler.processMessage(ClientStanzaHa ndler.java:90)

at org.jivesoftware.openfire.net.StanzaHandler.process(StanzaHandler.java:200)

at org.jivesoftware.openfire.net.StanzaHandler.process(StanzaHandler.java:167)

at org.jivesoftware.openfire.nio.ConnectionHandler.messageReceived(ConnectionHandl er.java:132)

at org.apache.mina.common.support.AbstractIoFilterChain$TailFilter.messageReceived (AbstractIoFilterChain.java:570)

at org.apache.mina.common.support.AbstractIoFilterChain.callNextMessageReceived(Ab stractIoFilterChain.java:299)

at org.apache.mina.common.support.AbstractIoFilterChain.access$1100(AbstractIoFilt erChain.java:53)

at org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.messageReceive d(AbstractIoFilterChain.java:648)

at org.apache.mina.filter.codec.support.SimpleProtocolDecoderOutput.flush(SimplePr otocolDecoderOutput.java:58)

at org.apache.mina.filter.codec.ProtocolCodecFilter.messageReceived(ProtocolCodecF ilter.java:173)

at org.apache.mina.common.support.AbstractIoFilterChain.callNextMessageReceived(Ab stractIoFilterChain.java:299)

at org.apache.mina.common.support.AbstractIoFilterChain.access$1100(AbstractIoFilt erChain.java:53)

at org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.messageReceive d(AbstractIoFilterChain.java:648)

at org.apache.mina.filter.executor.ExecutorFilter.processEvent(ExecutorFilter.java :239)

at org.apache.mina.filter.executor.ExecutorFilter$ProcessEventsRunnable.run(Execut orFilter.java:283)

at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)

at org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnable.java:51)

at java.lang.Thread.run(Unknown Source)

Caused by: org.jivesoftware.stringprep.IDNAException: Contains non-LDH characters.

at org.jivesoftware.stringprep.IDNA.toASCII(IDNA.java:106)

at org.jivesoftware.stringprep.IDNA.toASCII(IDNA.java:53)

at org.xmpp.packet.JID.init(JID.java:365)

… 28 more

Maybe i am not clear on what you mean by chat states, as my server and client show state changes correctly (or I think they do). When a user begins to type the bubble next to there name changes to reflect they are typing (as long as they are involved in an active chat with me). When they send the message their state reverts back to an available status.

As for your other issues it would be helpfull to know your Server OS and any other details such as are you using LDAP etc.

Information about if a client is typing or idle or an IM window is gone is communicated using the chat states defined in http://www.xmpp.org/extensions/xep-0085.html.

If you could copy the XML debug from a client session where you login in a see the “is typing” information that might be helpful.

I’m using the embedded database, no LDAP. The server is windows server 2003.

Billy Volpone was able to talk to someone from your company and they said:

He has seen this issue before and it often arises from a mis-match of server name

and whatever it’s resolving to the DNS server.

Unfortunately I have no idea what this means and Billy didn’t get back to me.

Ok I feel I should clarify, I am not employeed by igniterealtime or jive software. I am just a user of their software just like you.

Your server is the name of the computer on your windows network the same as the name you gave the openfire server? In other words when you install windows it asks for a name for the computer. this becomes the network name for the computer in your windows DNS. This should also be the name given to the openfire server when it is installed. The same Fully Qualified Domain Name as the server box (server.domain.com as seen in your DNS server based on the computer’s name).

Is your windows server bound to an active directory domain?

>

Ok I feel I should clarify, I am not employeed by igniterealtime or

jive software. I am just a user of their software just like you.

I did not know that. My appologies. Since you seemed the only one interested I assumed wrongly that you worked there. Perhaps they should pay you Thanks for all your help!

Interestingly when I use jabber.org chatstates work fine. It’s only when using an Openfire server running on my local development machine that they don’t work. I reinstalled Openfire and gave it my the same host name as returned by hostname on the command line. That host name was mymachine.company.com. I created users using that same server name. And they could chat, but chatstates still didn’t work.

> Is your windows server bound to an active directory domain?

My windows server is just a development machine. But active directory is being used.

Whoops, it does actually work now. I’m not sure what that did, but thanks!

Glad to hear it is working for you now. I keep joking with the people that actually work for the company about throwing me a bone. It is good to hear that other people appreciate my help. Thanks for the kind words. If you feel it is warranted please award some points.