boolean magicRead = false;
public Object unmarshal(DataInput dataIn) throws IOException {
if( !magicRead ) {
Buffer magic = new Buffer(8);
magic.readFrom(dataIn);
magicRead = true;
return new AmqpHeader(magic);
} else {
int size = dataIn.readInt();
if( size > maxFrameSize) {