Lines 738-743
Link Here
|
738 |
|
738 |
|
739 |
SSTRecord sst = null; |
739 |
SSTRecord sst = null; |
740 |
int sstPos = 0; |
740 |
int sstPos = 0; |
|
|
741 |
boolean wroteBoundSheets = false; |
741 |
for ( int k = 0; k < records.size(); k++ ) |
742 |
for ( int k = 0; k < records.size(); k++ ) |
742 |
{ |
743 |
{ |
743 |
|
744 |
|
Lines 745-750
Link Here
|
745 |
// Let's skip RECALCID records, as they are only use for optimization |
746 |
// Let's skip RECALCID records, as they are only use for optimization |
746 |
if ( record.getSid() != RecalcIdRecord.sid || ( (RecalcIdRecord) record ).isNeeded() ) |
747 |
if ( record.getSid() != RecalcIdRecord.sid || ( (RecalcIdRecord) record ).isNeeded() ) |
747 |
{ |
748 |
{ |
|
|
749 |
int len = 0; |
748 |
if (record instanceof SSTRecord) |
750 |
if (record instanceof SSTRecord) |
749 |
{ |
751 |
{ |
750 |
sst = (SSTRecord)record; |
752 |
sst = (SSTRecord)record; |
Lines 754-760
Link Here
|
754 |
{ |
756 |
{ |
755 |
record = sst.createExtSSTRecord(sstPos + offset); |
757 |
record = sst.createExtSSTRecord(sstPos + offset); |
756 |
} |
758 |
} |
757 |
int len = record.serialize( pos + offset, data ); |
759 |
if (record instanceof BoundSheetRecord) { |
|
|
760 |
if(!wroteBoundSheets) { |
761 |
for (int i = 0; i < boundsheets.size(); i++) { |
762 |
len+= ((BoundSheetRecord)boundsheets.get(i)) |
763 |
.serialize(pos+offset+len, data); |
764 |
} |
765 |
wroteBoundSheets = true; |
766 |
} |
767 |
} else { |
768 |
len = record.serialize( pos + offset, data ); |
769 |
} |
758 |
///// DEBUG BEGIN ///// |
770 |
///// DEBUG BEGIN ///// |
759 |
// if (len != record.getRecordSize()) |
771 |
// if (len != record.getRecordSize()) |
760 |
// throw new IllegalStateException("Record size does not match serialized bytes. Serialized size = " + len + " but getRecordSize() returns " + record.getRecordSize()); |
772 |
// throw new IllegalStateException("Record size does not match serialized bytes. Serialized size = " + len + " but getRecordSize() returns " + record.getRecordSize()); |