[sip-comm-dev] NullPointerException, OTR!?, Jabber

George Politis 666f6f at gmail.com
Sun Aug 22 19:41:29 CEST 2010

Hi Lubomir,

On 08/20/2010 12:10 AM, Lubomir Marinov wrote:
> I noticed the following exception halfway through a Google Talk
> conversation between me using SIP Communicator and a contact of mine
> using Gmail chat. Since I only noticed it by accident, I don't have
> much information with respect to what led to it. 

I fixed the NullPointerException which was caused by careless object
handling in otr4j.

> But I found the "Error delivering message" to be somewhat alarming in the context of
> me not engaging OTR in any way i.e. I hadn't modified the OTR
> preference defaults, I didn't toy with the chat window OTR menu during
> the conversation... 

All messages are processed by the OtrTransformationLayer -which in turn
passes them over to otr4j- regardless of them being encrypted or not.

The purpose of processing plaintext messages is to scan them for the
special whitespace tag that is attached to messages when, say, Alice
wishes to communicate to Bob that she is willing to use OTR.

However, if the user has disabled OTR (the default policy is to
automatically start private sessions by sending special whitespace tags)
processing plaintext messages is obviously pointless. r7632 modifies
OtrTransformationLayer to bypasses message delivery events in this
special case.


> Anyway, I'm sending the exception here just in
> case it turns out to be of interest.
> 00:50:27.475 SEVERE:
> service.protocol.AbstractOperationSetBasicInstantMessaging.fireMessageEvent().202
> Error delivering message
> java.lang.NullPointerException
>         at net.java.otr4j.session.SessionImpl.transformReceiving(SessionImpl.java:319)
>         at net.java.otr4j.OtrEngineImpl.transformReceiving(OtrEngineImpl.java:68)
>         at net.java.sip.communicator.plugin.otr.ScOtrEngineImpl.transformReceiving(ScOtrEngineImpl.java:244)
>         at net.java.sip.communicator.plugin.otr.OtrTransformLayer.messageReceived(OtrTransformLayer.java:92)
>         at net.java.sip.communicator.service.protocol.AbstractOperationSetBasicInstantMessaging.messageTransform(AbstractOperationSetBasicInstantMessaging.java:289)
>         at net.java.sip.communicator.service.protocol.AbstractOperationSetBasicInstantMessaging.fireMessageEvent(AbstractOperationSetBasicInstantMessaging.java:179)
>         at net.java.sip.communicator.impl.protocol.jabber.OperationSetBasicInstantMessagingJabberImpl.access$11(OperationSetBasicInstantMessagingJabberImpl.java:1)
>         at net.java.sip.communicator.impl.protocol.jabber.OperationSetBasicInstantMessagingJabberImpl$SmackMessageListener.processPacket(OperationSetBasicInstantMessagingJabberImpl.java:705)
>         at org.jivesoftware.smack.Connection$ListenerWrapper.notifyListener(Connection.java:807)
>         at org.jivesoftware.smack.PacketReader$ListenerNotification.run(PacketReader.java:453)
>         at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
>         at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
>         at java.util.concurrent.FutureTask.run(FutureTask.java:138)
>         at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
>         at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
>         at java.lang.Thread.run(Thread.java:619)
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe at sip-communicator.dev.java.net
> For additional commands, e-mail: dev-help at sip-communicator.dev.java.net

To unsubscribe, e-mail: dev-unsubscribe at sip-communicator.dev.java.net
For additional commands, e-mail: dev-help at sip-communicator.dev.java.net

More information about the dev mailing list