Bug (?) viewing details of a /40 Username and more questions (yahoo, search,etc)

Cheerio,

I might have found something interesting:

Openfire 3.3.2

GW 1.1.3a

Miranda 0.7.1

When I try to add a User with any transport and I insert that user as

testbunny/40@hotmail.com@transport.whatever.you.like (I know the slash is wrong!)

I click search.

I receive a user with absolutely no Info (not nice but quite normal even with a correct username).

And now, I don’t add that user but instead I just click “Contact profile”

this results in Miranda Jabber going offline and an Error in Openfire (see below):. No other user on the server is affected and I can go right back online.

I can reproduce it at any time with any transport. It does not happen if I use an @ or \40 instead of /40, which probably means, it does not reject wrong input like it should.

java.lang.StringIndexOutOfBoundsException: String index out of range: -4
at java.lang.String.substring(String.java:1768)
at org.xmpp.packet.JID.getParts(JID.java:299)
at org.xmpp.packet.Packet.<init>(Packet.java:72)
at org.xmpp.packet.IQ.<init>(IQ.java:82)
at org.jivesoftware.openfire.net.StanzaHandler.getIQ(StanzaHandler.java:272)
at org.jivesoftware.openfire.net.StanzaHandler.process(StanzaHandler.java:236)
at org.jivesoftware.openfire.net.StanzaHandler.process(StanzaHandler.java:153)
at org.jivesoftware.openfire.nio.ConnectionHandler.messageReceived(ConnectionHandler.java:132)
at org.apache.mina.common.support.AbstractIoFilterChain$TailFilter.messageReceived(AbstractIoFilterChain.java:703)
at org.apache.mina.common.support.AbstractIoFilterChain.callNextMessageReceived(AbstractIoFilterChain.java:362)
at org.apache.mina.common.support.AbstractIoFilterChain.access$1100(AbstractIoFilterChain.java:54)
at org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.messageReceived(AbstractIoFilterChain.java:800)
at org.apache.mina.filter.codec.support.SimpleProtocolDecoderOutput.flush(SimpleProtocolDecoderOutput.java:62)
at org.apache.mina.filter.codec.ProtocolCodecFilter.messageReceived(ProtocolCodecFilter.java:200)
at org.apache.mina.common.support.AbstractIoFilterChain.callNextMessageReceived(AbstractIoFilterChain.java:362)
at org.apache.mina.common.support.AbstractIoFilterChain.access$1100(AbstractIoFilterChain.java:54)
at org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.messageReceived(AbstractIoFilterChain.java:800)
at org.apache.mina.filter.executor.ExecutorFilter.processEvent(ExecutorFilter.java:266)
at org.apache.mina.filter.executor.ExecutorFilter$ProcessEventsRunnable.run(ExecutorFilter.java:326)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)
at java.lang.Thread.run(Thread.java:595)

Question 1:

Is there any way to implement the search for external users or at least some feedback like “User found” for a transport user? At the moment you never know if you did a typo or the person is simply not online/rejected the request/never got a request/etc.

Miranda shows me a 503 when I try to contact search on a transport (which I guess is normal, right?).


Question 2:

Adding a yahoo user (either via “Add him” in a Chatbox or directly via Nick does not send out a request for authorization. It just adds the user and it shows offline (of course, as it doesn’t have authorization). Sending Messages works fine.

I haven’t had the chance to try with a different client. Is this maybe known (either for the transport or for Miranda)?


Q3:

If I have an MSN Account via transport and another user with a native Yahoo tries to add my MSN user I don’t get any request for authorization, neither directly in Miranda or Spark nor if I logon later into webmessenger looking if it might got stuck like some offline message. That looks to me like Openfire receives the request but discards it. Nothing found in the normal logs, haven’t had the chance to start the debug-logger


Thats it for today I hope you have some ideas for me

I don’t believe that is an IM Gateway plugin issue. =) I would imagine that Openfire is aiming to treat everything to the right of the / as a resource, and then it can’t find an @ symbol at all. (I haven’t looked in depth) Either way, you’re right, this should be caught more cleanly by Openfire itself.

Q1. jabber:iq:search support is not implemented at all =)

Q2. If the person on the other end already authed you before (added you first or whatever), I’ve witnessed in a real Yahoo client where it doesn’t pass anything at all to the Yahoo client. Is that what you are witnessing?

Q3. Hrm. I wonder if you have to explicitly indicate that you want to support that? (in other words if I should be passing some flag) So you see no message what-so-ever? 'cause that makes it sound like there’s no packet being sent at all which would indicate that either Yahoo isn’t passing the message or MSN is rejecting it.

jadestorm wrote:

I would imagine that Openfire is aiming to treat everything to the right of the / as a resource, and then it can’t find an @ symbol at all. (I haven’t looked in depth) Either way, you’re right, this should be caught more cleanly by Openfire itself.

Do you want me to post that in the other forum or do you want to take care of informing the Openfireguys yourself?

Q1. jabber:iq:search support is not implemented at all =)

Jup thought so. I’m waiting for it :stuck_out_tongue:

Q2.

Q3.

Both errors might be connected, as I now found out after more testing that I cannot add any new transport users at all (and even old ones loose their authorisation oO) anymore (worked before sometime ago!), not on yahoo, msn or xmpp at least.

I’ll do a restart and hope its gone…

In case it helps…adding a user of an XMPP GW gets me this error:

2007.10.30 15:12:39 [org.jivesoftware.openfire.interceptor.InterceptorManager.invokeInterceptors(InterceptorManager.java:239)] Error in interceptor: org.jivesoftware.openfire.gateway.protocols.xmpp.XMPPTransport@5b3c15
java.lang.NullPointerException
at org.jivesoftware.openfire.gateway.protocols.xmpp.XMPPSession.removeContact(XMPPSession.java:290)
at org.jivesoftware.openfire.gateway.roster.TransportBuddyManager.removeBuddy(TransportBuddyManager.java:203)
at org.jivesoftware.openfire.gateway.BaseTransport.interceptPacket(BaseTransport.java:2314)
at org.jivesoftware.openfire.interceptor.InterceptorManager.invokeInterceptors(InterceptorManager.java:227)
at org.jivesoftware.openfire.IQRouter.route(IQRouter.java:84)
at org.jivesoftware.openfire.spi.PacketRouterImpl.route(PacketRouterImpl.java:67)
at org.jivesoftware.openfire.net.StanzaHandler.processIQ(StanzaHandler.java:289)
at org.jivesoftware.openfire.net.ClientStanzaHandler.processIQ(ClientStanzaHandler.java:79)
at org.jivesoftware.openfire.net.StanzaHandler.process(StanzaHandler.java:254)
at org.jivesoftware.openfire.net.StanzaHandler.process(StanzaHandler.java:153)
at org.jivesoftware.openfire.nio.ConnectionHandler.messageReceived(ConnectionHandler.java:132)
at org.apache.mina.common.support.AbstractIoFilterChain$TailFilter.messageReceived(AbstractIoFilterChain.java:703)
at org.apache.mina.common.support.AbstractIoFilterChain.callNextMessageReceived(AbstractIoFilterChain.java:362)
at org.apache.mina.common.support.AbstractIoFilterChain.access$1100(AbstractIoFilterChain.java:54)
at org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.messageReceived(AbstractIoFilterChain.java:800)
at org.apache.mina.filter.codec.support.SimpleProtocolDecoderOutput.flush(SimpleProtocolDecoderOutput.java:62)
at org.apache.mina.filter.codec.ProtocolCodecFilter.messageReceived(ProtocolCodecFilter.java:200)
at org.apache.mina.common.support.AbstractIoFilterChain.callNextMessageReceived(AbstractIoFilterChain.java:362)
at org.apache.mina.common.support.AbstractIoFilterChain.access$1100(AbstractIoFilterChain.java:54)
at org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.messageReceived(AbstractIoFilterChain.java:800)
at org.apache.mina.filter.executor.ExecutorFilter.processEvent(ExecutorFilter.java:266)
at org.apache.mina.filter.executor.ExecutorFilter$ProcessEventsRunnable.run(ExecutorFilter.java:326)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)
at java.lang.Thread.run(Thread.java:595)
2007.10.30 15:12:39 [org.jivesoftware.openfire.interceptor.InterceptorManager.invokeInterceptors(InterceptorManager.java:239)] Error in interceptor: org.jivesoftware.openfire.gateway.protocols.xmpp.XMPPTransport@5b3c15
java.lang.NullPointerException
at org.jivesoftware.openfire.gateway.protocols.xmpp.XMPPSession.removeContact(XMPPSession.java:290)
at org.jivesoftware.openfire.gateway.roster.TransportBuddyManager.removeBuddy(TransportBuddyManager.java:203)
at org.jivesoftware.openfire.gateway.BaseTransport.interceptPacket(BaseTransport.java:2314)
at org.jivesoftware.openfire.interceptor.InterceptorManager.invokeInterceptors(InterceptorManager.java:227)
at org.jivesoftware.openfire.IQRouter.route(IQRouter.java:113)
at org.jivesoftware.openfire.spi.PacketRouterImpl.route(PacketRouterImpl.java:67)
at org.jivesoftware.openfire.net.StanzaHandler.processIQ(StanzaHandler.java:289)
at org.jivesoftware.openfire.net.ClientStanzaHandler.processIQ(ClientStanzaHandler.java:79)
at org.jivesoftware.openfire.net.StanzaHandler.process(StanzaHandler.java:254)
at org.jivesoftware.openfire.net.StanzaHandler.process(StanzaHandler.java:153)
at org.jivesoftware.openfire.nio.ConnectionHandler.messageReceived(ConnectionHandler.java:132)
at org.apache.mina.common.support.AbstractIoFilterChain$TailFilter.messageReceived(AbstractIoFilterChain.java:703)
at org.apache.mina.common.support.AbstractIoFilterChain.callNextMessageReceived(AbstractIoFilterChain.java:362)
at org.apache.mina.common.support.AbstractIoFilterChain.access$1100(AbstractIoFilterChain.java:54)
at org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.messageReceived(AbstractIoFilterChain.java:800)
at org.apache.mina.filter.codec.support.SimpleProtocolDecoderOutput.flush(SimpleProtocolDecoderOutput.java:62)
at org.apache.mina.filter.codec.ProtocolCodecFilter.messageReceived(ProtocolCodecFilter.java:200)
at org.apache.mina.common.support.AbstractIoFilterChain.callNextMessageReceived(AbstractIoFilterChain.java:362)
at org.apache.mina.common.support.AbstractIoFilterChain.access$1100(AbstractIoFilterChain.java:54)
at org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.messageReceived(AbstractIoFilterChain.java:800)
at org.apache.mina.filter.executor.ExecutorFilter.processEvent(ExecutorFilter.java:266)
at org.apache.mina.filter.executor.ExecutorFilter$ProcessEventsRunnable.run(ExecutorFilter.java:326)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)
at java.lang.Thread.run(Thread.java:595)

Message was edited by: No.2

Ok, did the restart. Deleted the contact (XMPP one this time) and advised the other side to delete me as well. Cleared the cache and tried Spark instead of Miranda. Now I don’t receive any error, but it still wont ask for authorization…BUT…when the other one adds me, he gets my correct status directly, no auth-request…might this mean that some things are left uncleaned somewhere so some part of the system thinks authorization is granted, while others don’t?

I’m confused…

The problem with Yahoo and MSN is still there as well and I tried those with users that never have been in any contactlist, so there can’t be something leftover. Other Yahoo & MSN users are visible, btw. Also if I auth by webmessenger they show up later on. If seen another actual thread with a quite similar problem, so they might be connected…

jadestorm wrote:

I would imagine that Openfire is aiming to treat everything to the right of the / as a resource, and then it can’t find an @ symbol at all. (I haven’t looked in depth) Either way, you’re right, this should be caught more cleanly by Openfire itself.

Do you want me to post that in the other forum or do you want to take care of informing the Openfireguys yourself?

Thankfully, as of this point, I -am- one of the openfire guys. ;D JM-1173

Q1. jabber:iq:search support is not implemented at all =)

Jup thought so. I’m waiting for it :stuck_out_tongue:

GATE-210

Q2.

Q3.

Both errors might be connected, as I now found out after more testing that I cannot add any new transport users at all (and even old ones loose their authorisation oO) anymore (worked before sometime ago!), not on yahoo, msn or xmpp at least.

That was fixed in 1.1.4/1.2.0. Nasty bug on my part. =/

No.2 wrote:

I’ll do a restart and hope its gone…

In case it helps…adding a user of an XMPP GW gets me this error:

> > 2007.10.30 15:12:39 [org.jivesoftware.openfire.interceptor.InterceptorManager.invokeInterceptors(InterceptorManager.java:239)] Error in interceptor: org.jivesoftware.openfire.gateway.protocols.xmpp.XMPPTransport@5b3c15
> > java.lang.NullPointerException
> > at org.jivesoftware.openfire.gateway.protocols.xmpp.XMPPSession.removeContact(XMPPSession.java:290)
> > at org.jivesoftware.openfire.gateway.roster.TransportBuddyManager.removeBuddy(TransportBuddyManager.java:203)
> > at org.jivesoftware.openfire.gateway.BaseTransport.interceptPacket(BaseTransport.java:2314)
> > at org.jivesoftware.openfire.interceptor.InterceptorManager.invokeInterceptors(InterceptorManager.java:227)
> > at org.jivesoftware.openfire.IQRouter.route(IQRouter.java:84)
> > at org.jivesoftware.openfire.spi.PacketRouterImpl.route(PacketRouterImpl.java:67)
> > at org.jivesoftware.openfire.net.StanzaHandler.processIQ(StanzaHandler.java:289)
> > at org.jivesoftware.openfire.net.ClientStanzaHandler.processIQ(ClientStanzaHandler.java:79)
> > at org.jivesoftware.openfire.net.StanzaHandler.process(StanzaHandler.java:254)
> > at org.jivesoftware.openfire.net.StanzaHandler.process(StanzaHandler.java:153)
> > at org.jivesoftware.openfire.nio.ConnectionHandler.messageReceived(ConnectionHandler.java:132)
> > at org.apache.mina.common.support.AbstractIoFilterChain$TailFilter.messageReceived(AbstractIoFilterChain.java:703)
> > at org.apache.mina.common.support.AbstractIoFilterChain.callNextMessageReceived(AbstractIoFilterChain.java:362)
> > at org.apache.mina.common.support.AbstractIoFilterChain.access$1100(AbstractIoFilterChain.java:54)
> > at org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.messageReceived(AbstractIoFilterChain.java:800)
> > at org.apache.mina.filter.codec.support.SimpleProtocolDecoderOutput.flush(SimpleProtocolDecoderOutput.java:62)
> > at org.apache.mina.filter.codec.ProtocolCodecFilter.messageReceived(ProtocolCodecFilter.java:200)
> > at org.apache.mina.common.support.AbstractIoFilterChain.callNextMessageReceived(AbstractIoFilterChain.java:362)
> > at org.apache.mina.common.support.AbstractIoFilterChain.access$1100(AbstractIoFilterChain.java:54)
> > at org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.messageReceived(AbstractIoFilterChain.java:800)
> > at org.apache.mina.filter.executor.ExecutorFilter.processEvent(ExecutorFilter.java:266)
> > at org.apache.mina.filter.executor.ExecutorFilter$ProcessEventsRunnable.run(ExecutorFilter.java:326)
> > at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650)
> > at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)
> > at java.lang.Thread.run(Thread.java:595)
> > 2007.10.30 15:12:39 [org.jivesoftware.openfire.interceptor.InterceptorManager.invokeInterceptors(InterceptorManager.java:239)] Error in interceptor: org.jivesoftware.openfire.gateway.protocols.xmpp.XMPPTransport@5b3c15
> > java.lang.NullPointerException
> > at org.jivesoftware.openfire.gateway.protocols.xmpp.XMPPSession.removeContact(XMPPSession.java:290)
> > at org.jivesoftware.openfire.gateway.roster.TransportBuddyManager.removeBuddy(TransportBuddyManager.java:203)
> > at org.jivesoftware.openfire.gateway.BaseTransport.interceptPacket(BaseTransport.java:2314)
> > at org.jivesoftware.openfire.interceptor.InterceptorManager.invokeInterceptors(InterceptorManager.java:227)
> > at org.jivesoftware.openfire.IQRouter.route(IQRouter.java:113)
> > at org.jivesoftware.openfire.spi.PacketRouterImpl.route(PacketRouterImpl.java:67)
> > at org.jivesoftware.openfire.net.StanzaHandler.processIQ(StanzaHandler.java:289)
> > at org.jivesoftware.openfire.net.ClientStanzaHandler.processIQ(ClientStanzaHandler.java:79)
> > at org.jivesoftware.openfire.net.StanzaHandler.process(StanzaHandler.java:254)
> > at org.jivesoftware.openfire.net.StanzaHandler.process(StanzaHandler.java:153)
> > at org.jivesoftware.openfire.nio.ConnectionHandler.messageReceived(ConnectionHandler.java:132)
> > at org.apache.mina.common.support.AbstractIoFilterChain$TailFilter.messageReceived(AbstractIoFilterChain.java:703)
> > at org.apache.mina.common.support.AbstractIoFilterChain.callNextMessageReceived(AbstractIoFilterChain.java:362)
> > at org.apache.mina.common.support.AbstractIoFilterChain.access$1100(AbstractIoFilterChain.java:54)
> > at org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.messageReceived(AbstractIoFilterChain.java:800)
> > at org.apache.mina.filter.codec.support.SimpleProtocolDecoderOutput.flush(SimpleProtocolDecoderOutput.java:62)
> > at org.apache.mina.filter.codec.ProtocolCodecFilter.messageReceived(ProtocolCodecFilter.java:200)
> > at org.apache.mina.common.support.AbstractIoFilterChain.callNextMessageReceived(AbstractIoFilterChain.java:362)
> > at org.apache.mina.common.support.AbstractIoFilterChain.access$1100(AbstractIoFilterChain.java:54)
> > at org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.messageReceived(AbstractIoFilterChain.java:800)
> > at org.apache.mina.filter.executor.ExecutorFilter.processEvent(ExecutorFilter.java:266)
> > at org.apache.mina.filter.executor.ExecutorFilter$ProcessEventsRunnable.run(ExecutorFilter.java:326)
> > at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650)
> > at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)
> > at java.lang.Thread.run(Thread.java:595)
> >

Message was edited by: No.2

Ok, did the restart. Deleted the contact (XMPP one this time) and advised the other side to delete me as well. Cleared the cache and tried Spark instead of Miranda. Now I don’t receive any error, but it still wont ask for authorization…BUT…when the other one adds me, he gets my correct status directly, no auth-request…might this mean that some things are left uncleaned somewhere so some part of the system thinks authorization is granted, while others don’t?

I’m confused…

The problem with Yahoo and MSN is still there as well and I tried those with users that never have been in any contactlist, so there can’t be something leftover. Other Yahoo & MSN users are visible, btw. Also if I auth by webmessenger they show up later on. If seen another actual thread with a quite similar problem, so they might be connected…

jadestorm wrote:

Thankfully, as of this point, I -am- one of the openfire guys. ;D JM-1173

Yep I know I just don’t know how much you got to do with the core of OF yourself and, honestly I don’t know if you just have to look up from your screen and yell “Oy Matt! Got another bug in your code over 'ere!” Or if it’s easier for you if I just post it there, so it does not get lost.

Both errors might be connected, as I now found out after more testing that I cannot add any new transport users at all (and even old ones loose their authorisation oO) anymore (worked before sometime ago!), not on yahoo, msn or xmpp at least.

That was fixed in 1.1.4/1.2.0. Nasty bug on my part. =/

Adding users still does not work for me. However, now I get quite a lot of feedback wich I didn’t get before:

I attached the logs.

It might be a bit more than neccessary but I’m quite low on time and there are some more errors…so maybe it covers more than one issue…still it should be clear wich one was caused by adding an MSN user. (first line & following)

Message was edited by: No.2


To finish that one: The problem that requests to add a user where not being delivered was solved by emptying the tables that belong to the gatewayplugin in MySQL. So I don’t know what caused the hickup and it should not happen, but at least it works now
error.log (41233 Bytes)