Thanks for the tip on CodedInputStream Evan! I will explore it and if I get anything out of it will report back my findings for anyone else dealing with this issue.
On Thu, Jan 20, 2011 at 6:27 PM, Evan Jones <ev...@mit.edu> wrote: > On Jan 20, 2011, at 2:48 , julius-schorzman wrote: >> >> My question is -- can anything be done to retrieve part of the file? >> It would be nice to know at which point in the file the problematic >> message occurred, and then I could crop to that point or do some >> manual exception -- but unfortunately this exception is very general. >> I find it hard to believe that a single mis-saved bit makes the whole >> file worthless. > > You are correct: your entire data is not worthless, but at the point of the > error, you will need some manual intervention to figure out what is going > on. > > It is probably possible to figure out the byte offset where this error > occurs. The CodedInputStream tracks some sort of bytesRead counter, I seem > to recall. However, this will require you to modify the source. > > >> I also find it curious that the source provides no way (that I can >> tell) to get at any lower level data in the p.b. since whenever I try >> to do anything with it it throws an exception. Best I can tell I will >> have to write from scratch my own code to decode the p.b. file. > > The lowest level tools that are provided is CodedInputStream. But yes, you > will effectively have to "parse" the message yourself. Look at the code that > is generated for the mergeFrom method of your message to get an idea for how > it works, and you can read the encoding documentation: > > http://code.google.com/apis/protocolbuffers/docs/encoding.html > > You can definitely figure out what is going on, but it will be a bit of a > pain. Good luck, > > Evan Jones > > -- > http://evanjones.ca/ > > -- You received this message because you are subscribed to the Google Groups "Protocol Buffers" group. To post to this group, send email to protobuf@googlegroups.com. To unsubscribe from this group, send email to protobuf+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/protobuf?hl=en.