MSN Transport 1.1.0 only working for about 20 minutes - many NPE's

it seems that this exception (more than once) is fired, when the transport stops working

2007.09.11 06:52:11 org.jivesoftware.openfire.gateway.util.Log4JToOpenfireAppender.append(Log4JToOpe nfireAppender.java:49) Error occured while processing packet:

java.lang.IllegalStateException: session is not available

at net.sf.cindy.impl.ChannelSession.write(ChannelSession.java:329)

at net.sf.jml.protocol.MsnSession.sendAsynchronousMessage(MsnSession.java:182)

at net.sf.jml.impl.BasicMessenger.send(BasicMessenger.java:119)

at net.sf.jml.impl.AbstractMessenger.send(AbstractMessenger.java:95)

at net.sf.jml.impl.SimpleMessenger.newSwitchboard(SimpleMessenger.java:36)

at net.sf.jml.impl.BasicMessenger.sendText(BasicMessenger.java:223)

at org.jivesoftware.openfire.gateway.protocols.msn.MSNSession.sendMessage(MSNSessi on.java:380)

at org.jivesoftware.openfire.gateway.BaseTransport.processPacket(BaseTransport.jav a:225)

at org.jivesoftware.openfire.gateway.BaseTransport.processPacket(BaseTransport.jav a:169)

at org.jivesoftware.openfire.component.InternalComponentManager$RoutableComponent. process(InternalComponentManager.java:490)

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

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

at org.jivesoftware.openfire.SessionPacketRouter.route(SessionPacketRouter.java:12 2)

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

at org.jivesoftware.openfire.multiplex.MultiplexerPacketHandler.route(MultiplexerP acketHandler.java:164)

at org.jivesoftware.openfire.net.MultiplexerStanzaHandler.processRoute(Multiplexer StanzaHandler.java:89)

at org.jivesoftware.openfire.net.MultiplexerStanzaHandler.processUnknowPacket(Mult iplexerStanzaHandler.java:96)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java: 885)

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

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

/code

perhaps this a hint to find the issue - in the state where it’s not possible to sign on anymore i got following exception:

2007.11.26 09:50:57 [org.jivesoftware.openfire.interceptor.InterceptorManager.invokeInterceptors(InterceptorManager.java:239)] Error in interceptor: org.jivesoftware.openfire.gateway.protocols.msn.MSNTransport@e05b3c while intercepting:
<iq id="12" type="set" from="998996941230@test.im/kulemba-1.0.3-en">
  <query xmlns="jabber:iq:roster">
    <item jid="piiina_ghu%hotmail.com@msn.test.im" name="ghea">
      <group>General</group>
    </item>
  </query>
</iq>
java.lang.NullPointerException
        at net.sf.jml.impl.SimpleMessenger.addFriend(SimpleMessenger.java:79)
        at net.sf.jml.impl.SimpleMessenger.addFriend(SimpleMessenger.java:138)
        at org.jivesoftware.openfire.gateway.protocols.msn.MSNSession.addContact(MSNSession.java:279)
        at org.jivesoftware.openfire.gateway.BaseTransport.interceptPacket(BaseTransport.java:2321)
        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.SessionPacketRouter.route(SessionPacketRouter.java:110)
        at org.jivesoftware.openfire.SessionPacketRouter.route(SessionPacketRouter.java:67)
        at org.jivesoftware.openfire.multiplex.MultiplexerPacketHandler.route(MultiplexerPacketHandler.java:164)
        at org.jivesoftware.openfire.net.MultiplexerStanzaHandler.processRoute(MultiplexerStanzaHandler.java:89)
        at org.jivesoftware.openfire.net.MultiplexerStanzaHandler.processUnknowPacket(MultiplexerStanzaHandler.java:96)
        at org.jivesoftware.openfire.net.StanzaHandler.process(StanzaHandler.java:258)
        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:570)
        at org.apache.mina.common.support.AbstractIoFilterChain.callNextMessageReceived(AbstractIoFilterChain.java:299)
        at org.apache.mina.common.support.AbstractIoFilterChain.access$1100(AbstractIoFilterChain.java:53)
        at org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.messageReceived(AbstractIoFilterChain.java:648)
        at org.apache.mina.filter.codec.support.SimpleProtocolDecoderOutput.flush(SimpleProtocolDecoderOutput.java:58)
        at org.apache.mina.filter.codec.ProtocolCodecFilter.messageReceived(ProtocolCodecFilter.java:176)
        at org.apache.mina.common.support.AbstractIoFilterChain.callNextMessageReceived(AbstractIoFilterChain.java:299)
        at org.apache.mina.common.support.AbstractIoFilterChain.access$1100(AbstractIoFilterChain.java:53)
        at org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.messageReceived(AbstractIoFilterChain.java:648)
        at org.apache.mina.filter.executor.ExecutorFilter.processEvent(ExecutorFilter.java:239)
        at org.apache.mina.filter.executor.ExecutorFilter$ProcessEventsRunnable.run(ExecutorFilter.java:283)
        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
        at java.lang.Thread.run(Thread.java:619)

that’s the position where the exception occurs:

MsnProtocol protocol = getActualMsnProtocol();
if (protocol.after(MsnProtocol.MSNP9)) {

so getActualMsnProtocol() returns null.

is there a way to check out the current trunk of jml library?

svn co http://svn.blathersource.org/???/trunk

{/code}

Why blathersource? =)

http://java-jml.sf.net/ is the home of JML. I don’t remember the URI off the top of my head but you can find it on the project page!

don’t know if it helps here is jmap output - at the state where msn is not working

the MSNSessionListener (also net.sf.jml.impl.SimpleMessenger) is increasing and never get released on this state

bash-3.00$ jmap -histo:live 18874 | grep msn

115: 2904 46464 org.jivesoftware.openfire.gateway.protocols.msn.MSNSessionListener

182: 175 9800 org.jivesoftware.openfire.gateway.protocols.msn.MSNBuddy

233: 51 4896 org.jivesoftware.openfire.gateway.protocols.msn.MSNSession

322: 61 2440 org.jivesoftware.openfire.gateway.protocols.msn.MSNListener$SessionReaper

361: 61 1952 org.jivesoftware.openfire.gateway.protocols.msn.MSNListener

1090: 1 56 org.jivesoftware.openfire.gateway.protocols.msn.MSNTransport

bash-3.00$ jmap -histo:live 18874 | grep jml

34: 16538 1190736 net.sf.jml.impl.MsnContactImpl

40: 5984 574464 [Lnet.sf.jml.protocol.MsnMessage;

54: 19760 316160 net.sf.jml.Email

55: 19442 311072 net.sf.jml.MsnClientId

56: 19442 311072 net.sf.jml.impl.MsnUserPropertiesImpl

62: 2904 209088 net.sf.jml.impl.SimpleMessenger

65: 2904 185856 net.sf.jml.impl.MsnOwnerImpl

76: 5984 143616 net.sf.jml.impl.MsnMessageChainImpl

78: 2904 139392 net.sf.jml.impl.MsnContactListImpl

88: 2824 112960 net.sf.jml.impl.MsnConnectionImpl

90: 3403 108896 net.sf.jml.impl.MsnGroupImpl

93: 2992 95744 net.sf.jml.protocol.MsnSession

98: 2376 76032 net.sf.jml.protocol.outgoing.OutgoingPNG

101: 177 68504 [Lnet.sf.jml.MsnContact;

103: 1268 60864 net.sf.jml.MsnObject

104: 1851 59232 net.sf.jml.protocol.incoming.IncomingQNG

112: 2992 47872 net.sf.jml.protocol.TransactionId

113: 2992 47872 net.sf.jml.protocol.MsnSession$1

116: 2904 46464 [Lnet.sf.jml.MsnProtocol;

117: 2904 46464 net.sf.jml.impl.BasicMessenger$MessengerSessionListener

133: 778 24896 net.sf.jml.message.IncomingMimeMessage

140: 662 21184 net.sf.jml.protocol.outgoing.OutgoingMSG

147: 531 16992 net.sf.jml.protocol.incoming.IncomingUBX

175: 332 10624 net.sf.jml.protocol.incoming.IncomingNLN

201: 323 7752 net.sf.jml.impl.BasicMessenger$1

213: 200 6400 net.sf.jml.protocol.outgoing.OutgoingXFR

227: 166 5312 net.sf.jml.protocol.incoming.IncomingLST

230: 178 5176 [Lnet.sf.jml.MsnGroup;

240: 114 4560 net.sf.jml.protocol.outgoing.OutgoingUUX

254: 88 4224 net.sf.jml.impl.SimpleSwitchboard

280: 105 3360 net.sf.jml.protocol.incoming.IncomingILN

295: 92 2944 net.sf.jml.protocol.incoming.IncomingFLN

302: 87 2784 net.sf.jml.protocol.outgoing.OutgoingCHG

303: 85 2720 net.sf.jml.protocol.outgoing.OutgoingQRY

308: 82 2624 net.sf.jml.protocol.incoming.IncomingXFR

322: 75 2400 net.sf.jml.protocol.outgoing.OutgoingSYN

328: 70 2240 net.sf.jml.protocol.outgoing.OutgoingUSRAuthNS

342: 66 2112 net.sf.jml.protocol.incoming.IncomingUUX

350: 64 2048 net.sf.jml.protocol.outgoing.OutgoingUSRInitNS

356: 62 1984 net.sf.jml.protocol.incoming.IncomingQRY

358: 61 1952 net.sf.jml.protocol.outgoing.OutgoingCVR

359: 61 1952 net.sf.jml.protocol.incoming.IncomingCHL

370: 57 1824 net.sf.jml.protocol.outgoing.OutgoingVER

375: 55 1760 net.sf.jml.protocol.outgoing.OutgoingADC

379: 52 1664 net.sf.jml.protocol.incoming.IncomingUSR

397: 47 1504 net.sf.jml.protocol.outgoing.OutgoingCAL

398: 47 1504 net.sf.jml.protocol.outgoing.OutgoingUSRAuthSB

408: 44 1408 net.sf.jml.protocol.incoming.IncomingRNG

409: 88 1408 net.sf.jml.impl.BasicSwitchboard$SBSessionListener

410: 88 1408 net.sf.jml.impl.BasicMessenger$2

422: 41 1312 net.sf.jml.protocol.incoming.IncomingCAL

427: 40 1280 net.sf.jml.protocol.incoming.IncomingCHG

431: 39 1248 net.sf.jml.protocol.incoming.IncomingJOI

464: 32 1024 net.sf.jml.protocol.incoming.IncomingADC

480: 29 928 net.sf.jml.protocol.outgoing.OutgoingANS

510: 25 800 net.sf.jml.protocol.incoming.IncomingANS

515: 24 768 net.sf.jml.protocol.incoming.IncomingIRO

528: 23 736 net.sf.jml.protocol.incoming.IncomingBPR

531: 46 736 net.sf.jml.protocol.WrapperMessage

579: 16 512 net.sf.jml.protocol.incoming.IncomingPRP

809: 5 160 net.sf.jml.protocol.incoming.IncomingError

844: 9 144 net.sf.jml.MsnUserStatus

858: 4 128 net.sf.jml.protocol.incoming.IncomingCVR

863: 8 128 net.sf.jml.MsnUserPropertyType

879: 5 120 net.sf.jml.MsnList

912: 3 96 net.sf.jml.protocol.incoming.IncomingSBS

919: 3 96 net.sf.jml.protocol.incoming.IncomingSYN

922: 3 96 net.sf.jml.protocol.incoming.IncomingGTC

924: 3 96 net.sf.jml.protocol.incoming.IncomingBLP

926: 3 96 net.sf.jml.protocol.incoming.IncomingLSG

962: 5 80 net.sf.jml.MsnProtocol

981: 5 80 net.sf.jml.Telephone

990: 5 80 net.sf.jml.protocol.outgoing.OutgoingMSG$MsgType

1038: 2 64 net.sf.jml.protocol.incoming.IncomingVER

1154: 3 48 net.sf.jml.MsnConnectionType

1345: 1 32 net.sf.jml.protocol.incoming.IncomingREM

1430: 1 24 net.sf.jml.message.p2p.DisplayPictureDuelManager

1618: 1 16 net.sf.jml.message.p2p.DisplayPictureDuelManager$RemoveMsnObjectWorker

1785: 1 8 net.sf.jml.protocol.MsnMessageRecognizer

/code