git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Java Inflater problem decompressing packfile

From
Mmadmarcos <fru574@my.utsa.edu>
Date
Apr 16, 2011, 02:05 UTC
Message-ID
<1302919505984-6278154.post@n2.nabble.com>

This may be better suited for the Java forums but I will ask it here just in case someone has run into it before.

I have a packfile that I have saved as a file from the git-upload-pack command. I want to read through the packfile, decompressing each of the objects.

My little inflater procedure works fine for a tiny HelloWorld project. So, I decided to mix it up a little and use the jEdit source for a larger test. I am 99% certain the jEdit.git packfile itself is ok as I have passed it through directly to eGit's Import using an SSH proxy and eGit unpacked it just fine.

So, my inflater method decompresses the first 7 objects fine (a commit, a couple of trees, and several blobs) and a cursory visual inspection of the decompressed data seems fine. The eighth object becomes a problem, though. It is a blob with the name build.xml that is 51,060 bytes decompressed (looking at the original pre-git-pushed jEdit source). The actual file size matches the decompressed data content size in the packfile object header. The inflater procedure outputs the decompressed data to System.out for visual inspection. Approximately the first 1/3 looks like the original build.xml but after that, the output is garbled. The procedure continues decompressing objects after the 8th, but garbled, object but it dies on the 9th object with an "unknown compression method" error.

So I created a new test inflater to focus only on decompressing the 8th object. Simply opening the packfile, copying out the compressed data (7793 bytes), and inflating it yields the same 2/3 garbled xml.

As a further test, I then take the original build.xml file, compress it using java's Deflater (yielding a 7793 byte array), and then inflate it using my same procedure and it decompresses fine. All of the xml is readable.

Now, I have tried several variations of an inflater procedure, including an patchwork variation from jGit's WindowCursor.inflate method. But they all yield the same garbled result for the compressed build.xml data.

Any suggestions. I can post some of my ugly code if asked.
Thanks!

-- View this message in context: http://git.661346.n2.nabble.com/Java-Inflater-problem-decompressing-packfile-tp6278154p6278154.html Sent from the git mailing list archive at Nabble.com.

Next: Jeff King
Message 1 of 10 in “Java Inflater problem decompressing packfile”
  1. madmarcosApr 16, 2011
  2. Jeff KingApr 16, 2011
  3. madmarcosApr 16, 2011
  4. madmarcosApr 16, 2011
  5. madmarcosApr 16, 2011
  6. madmarcosApr 16, 2011
  7. madmarcosApr 17, 2011
  8. madmarcosApr 17, 2011
  9. madmarcosApr 17, 2011
  10. Jeff KingApr 17, 2011

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.