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.