Daniel Parnell's Stuff

Somewhere where I can muse about the things that interest me

DeltaSync HU01 decompression code released

I have released an initial version of the DeltaSync HU01 decompression routine on github.
It is AWFUL code, but it seems to work.

11 Comments so far

  1. Tom February 17th, 2011 7:14 am

    Hi Daniel,
    I’m not a programmer but I’m curious about what you’re doing with DeltaSync. I tried to run your routine but got the following error:


    ** 1B966 **
    ERROR: decompression failed. Expected 1085470 decompressed bytes, got -6

    What basic mistake have I made?



  2. daniel February 20th, 2011 1:07 pm

    Hi Tom,

    did you try the sample HU01 file that came with the app, or did you create a new one?
    If you created a new one it would be really helpful to send me a copy and I’ll see what I can do.

    Also, what sort of processor does your machine have? If it is a PPC then the code may not work as expected due to endian issues.


  3. Tom February 26th, 2011 12:51 pm

    Hi Daniel,

    I used the sample you put with the application and, silly me, I was running Linux at the time. The decompression works fine when I switch to the Mac.

    What’s the next step?


  4. daniel March 6th, 2011 12:54 pm

    I’ll have to give it a go under Linux and see what I can do about fixing the code.
    The code just handles the decompression of the HU01 compressed messages. To make a full Windows Live mail client is a different project. I’ve been looking at making a Mac Mail plugin for 10.6. It should also be possible to make a plugin for other mail systems.

  5. Tom March 9th, 2011 4:00 am

    Thanks, Daniel. Whilst you’re doing that ;-) can you tell me how to go about making an HU01 file to further test your code?

  6. daniel March 14th, 2011 1:11 pm

    I use the results of a packet capture to extract the HU01 data. I have several HU01 files here I use for testing, but as they are from my personal email they are not appropriate to share with the world ;)

  7. Niklas Therning March 22nd, 2011 11:25 am


    I also got the “esi_ptr<source_ptr" error in Linux. To make it work I changed the code starting at line 639:

    if(esi_ptr<source_ptr) {
    goto L_1B966;


    if(esi_ptr<destination_ptr) {
    goto L_1B966;

    I have no idea if this is correct but it seems to work for the test.hu01 file at least.

  8. Jo May 17th, 2012 2:43 pm


    I am an engineer for a brand new email system that is coming out. We have some questions in regards to this code work. Do you do any consulting? If so, please let me know.

    Thank you in advance for your time and consideration.


  9. daniel May 19th, 2012 3:18 pm

    Hi Jo,

    I am happy to have a chat about the code. Email me directly with any questions you have.


  10. Chaitanya June 27th, 2012 2:24 am

    Hi Daniel,

    When i tried to execute downloadMessageContent() i got the following error.
    Exception in thread “main” java.lang.ClassFormatError: Invalid pc in LineNumberTable in class file main/java/com/googlecode/jdeltasync/hu01/HU01
    I was debug this and found that it is problem with HU01Decompressor and HU01 classes.
    I have been trying this for 3 days and no forward step. Can you please help me out.

  11. article writing software download March 22nd, 2014 5:30 am

    Hi there! This is my 1st comment here so I just wanted to give a quick shout out and tell
    you I genuinely enjoy reading through your articles.
    Can you suggest any other blogs/websites/forums that
    deal with the same topics? Many thanks!

Leave a reply