Menu

Chunk data error, contactAddedMe not fired

Anonymous
2010-03-30
2013-04-29
  • Anonymous

    Anonymous - 2010-03-30

    Hi,

    I have a problem with an MSN account connected by JML. When the account is added as a contact by someone, the contactAddedMe method isn't called.

    The JML account (msndev1@XXXbot.nl) is being added by another account (clienttest@xxxxxx). As you can see the ADL is received and JML is responding with PRP/UUX/CHG to the notification server. After that the payload for the ADL command is displayed, including the next PRP command (which shouldn't be there?). The Chunk Debug output is empty too, so probably something is going wrong there? The same problem occurs with a verified passport account.

    Has anyone seen this before or know how to solve it?

    I'm using a SVN checkout of the source (2010-03-30).

    2010-03-30 12:46:09,623 INFO  protocol.MsnSession (MsnSession.java:85)     - msndev1@XXXbot.nl NS <<< ADL 0 133
    2010-03-30 12:46:09,624 INFO  protocol.MsnSession (MsnSession.java:124)     - msndev1@XXXbot.nl NS >>> PRP 13 MFN XXXbot.nl%20%2F%20XXXxxxxx.nl
    2010-03-30 12:46:09,625 INFO  protocol.MsnSession (MsnSession.java:124)     - msndev1@XXXbot.nl NS >>> UUX 14 129
    ====================
         Chunk Debug    
    ====================
    <Data><PSM>Online: 2/4</PSM><CurrentMedia></CurrentMedia><MachineGuid>{F26D1F07-95E2-403C-BC18-D4BFED493428}</MachineGuid></Data>
    ====================
     Binary Chunk Debug 
    ====================
    00000000h: 3C 44 61 74 61 3E 3C 50 53 4D 3E 4F 6E 6C 69 6E ; <Data><PSM>Onlin
    00000010h: 65 3A 20 32 2F 34 3C 2F 50 53 4D 3E 3C 43 75 72 ; e: 2/4</PSM><Cur
    00000020h: 72 65 6E 74 4D 65 64 69 61 3E 3C 2F 43 75 72 72 ; rentMedia></Curr
    00000030h: 65 6E 74 4D 65 64 69 61 3E 3C 4D 61 63 68 69 6E ; entMedia><Machin
    00000040h: 65 47 75 69 64 3E 7B 46 32 36 44 31 46 30 37 2D ; eGuid>{F26D1F07-
    00000050h: 39 35 45 32 2D 34 30 33 43 2D 42 43 31 38 2D 44 ; 95E2-403C-BC18-D
    00000060h: 34 42 46 45 44 34 39 33 34 32 38 7D 3C 2F 4D 61 ; 4BFED493428}</Ma
    00000070h: 63 68 69 6E 65 47 75 69 64 3E 3C 2F 44 61 74 61 ; chineGuid></Data
    00000080h: 3E                                              ; >
    2010-03-30 12:46:09,625 INFO  protocol.MsnSession (MsnSession.java:124)     - msndev1@XXXbot.nl NS >>> CHG 15 NLN 1879343148
    2010-03-30 12:46:09,845 INFO  protocol.MsnSession (MsnSession.java:85)     - msndev1@XXXbot.nl NS <<< <ml ><d n="xxxxxxxxxx.nl"><c n="clienttest" t="1" l="8" f="clienttest@xxxxxxxxxx.nl%20(E-mail%20Address%20Not%20Verified)" /></d></ml>PRP 13 MFN XXXbot.nl%20%2F%20XXXxxxxx.nl
    2010-03-30 12:46:09,845 INFO  protocol.MsnSession (MsnSession.java:85)     - msndev1@XXXbot.nl NS <<< UUX 14 0
    ====================
         Chunk Debug    
    ====================
    ====================
     Binary Chunk Debug 
    ====================
    
     
  • Anonymous

    Anonymous - 2010-04-01

    Ok, problem solved. I will post a description of what is going wrong and a patch soon.

     
  • Anonymous

    Anonymous - 2010-04-06

    Ok… The error occurs when the notification server is sending the payload for the ADL command separated from the command itself. Tcpdump confirmed this is happening sometimes (not always), you can also see this happening in the JML debug information:

    2010-03-31 12:41:28,373 DEBUG   net.Session         (Session.java:180)     - socket received 'ADL 0 73
    '
    2010-03-31 12:41:28,486 DEBUG   net.Session         (Session.java:239)     - session recognized message net.sf.jml.protocol.WrapperMessage completed
    2010-03-31 12:41:28,542 DEBUG   net.Session         (Session.java:180)     - socket received '<ml><d n="domain.nl"><c n="user" t="1" l="8" f="User" /></d></ml>'
    2010-03-31 12:41:28,552 DEBUG   net.Session         (Session.java:180)     - socket received 'PRP 13 MFN XXXXXXXXX%20%2F%20XXXXXXXXXXX
    '
    2010-03-31 12:41:28,637 DEBUG   net.Session         (Session.java:239)     - session recognized message net.sf.jml.protocol.WrapperMessage completed
    2010-03-31 12:41:28,737 INFO  protocol.MsnSession (MsnSession.java:85)     - xxxxxxx@xxxxxxxxx NS <<< <ml ><d n="domain.nl"><c n="user" t="1" l="8" f="User" /></d></ml>PRP 13 MFN XXXXXXXXX%20%2F%20XXXXXXXXXXX
    

    As you can see the ADL command is parsed before the payload has arrived completely. Because the payload isn't included in the same piece of data as the command net.sf.jml.protocol.MsnMessage.load():159 returns false (chunk size doesn't match the given length in the ADL command yet). In net.sf.jml.protocol.incoming.IncomingADL.load():56 the chunk data is ignored because of that and the command without the payload is processed and dispatched.

    I have created an additional property in MsnMessage to check if more payload data is expected or not and use that property in IncomingADL. I will submit the patch in Tracker > Patches.

    2010-04-06 12:25:50,201 DEBUG net.Session       ( Session.java:180)     - socket received 'ADL 0 77
    '
    2010-04-06 12:25:50,202 DEBUG net.Session       ( Session.java:239)     - session recognized message net.sf.jml.protocol.WrapperMessage not completed
    2010-04-06 12:25:50,202 DEBUG net.Session       ( Session.java:180)     - socket received '<ml><d n="domain.com"><c n="user" t="1" l="8" f="User" /></d></ml>'
    2010-04-06 12:25:50,203 DEBUG net.Session       ( Session.java:239)     - session recognized message net.sf.jml.protocol.WrapperMessage completed
    
     

Log in to post a comment.

Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.