@@ -32,13 +32,16 @@ public void freeReferencesTest01() throws IOException {
32
32
String [] xrefString = extractXrefTableAsStrings (out );
33
33
String [] expected = new String [] {
34
34
"xref\n " +
35
- "0 4 \n " +
36
- "0000000000 65535 f \n " +
35
+ "0 5 \n " +
36
+ "0000000010 65535 f \n " +
37
37
"0000000269 00000 n \n " +
38
38
"0000000561 00000 n \n " +
39
39
"0000000314 00000 n \n " +
40
- "12 3\n " +
41
- "0000000133 00000 n \n " + // TODO first xref shall have no subsections
40
+ "0000000011 65535 f \n " +
41
+ "10 5\n " + // TODO first xref shall have no subsections
42
+ "0000000000 00001 f \n " +
43
+ "0000000000 00002 f \n " + // TODO linked list of refs is invalid
44
+ "0000000133 00000 n \n " +
42
45
"0000000015 00000 n \n " +
43
46
"0000000613 00000 n \n " };
44
47
Assert .assertArrayEquals (expected , xrefString );
@@ -51,7 +54,7 @@ public void freeReferencesTest02() throws IOException {
51
54
52
55
PdfDocument pdfDocument = new PdfDocument (new PdfReader (sourceFolder + src ), new PdfWriter (destinationFolder + out ),
53
56
new StampingProperties ().useAppendMode ());
54
- pdfDocument .close ();
57
+ pdfDocument .close (); // TODO exception is thrown on attempt to read free reference
55
58
56
59
String [] xrefString = extractXrefTableAsStrings (out );
57
60
String [] expected = new String [] {
@@ -112,9 +115,8 @@ public void freeReferencesTest03() throws IOException {
112
115
"0000001706 00000 n \n " +
113
116
"0000001998 00000 n \n " +
114
117
"0000001751 00000 n \n " +
115
- "5 1\n " +
116
- "0000002055 00002 n \n " + // TODO fifth object is no longer free, however zero obj not updated
117
- "8 1\n " +
118
+ "8 2\n " +
119
+ "0000002055 00000 n \n " +
118
120
"0000002156 00000 n \n " };
119
121
Assert .assertArrayEquals (expected , xrefString );
120
122
}
@@ -131,7 +133,7 @@ public void freeReferencesTest04() throws IOException {
131
133
PdfIndirectReference contentsRef = (PdfIndirectReference ) contentsObj ;
132
134
contentsRef .setFree ();
133
135
PdfObject freedContentsRefRefersTo = contentsRef .getRefersTo ();
134
- Assert .assertNull (freedContentsRefRefersTo );
136
+ Assert .assertNull (freedContentsRefRefersTo ); // TODO assertion fails. Free reference should not be reread, see freeReferencesTest02
135
137
pdfDocument .close ();
136
138
137
139
}
@@ -201,13 +203,13 @@ public void freeReferencesTest07() throws IOException {
201
203
String [] xrefString = extractXrefTableAsStrings (out );
202
204
String [] expected = new String [] {
203
205
"xref\n " +
204
- "0 4 \n " +
205
- "0000000000 65535 f \n " +
206
+ "0 7 \n " +
207
+ "0000000004 65535 f \n " +
206
208
"0000000203 00000 n \n " +
207
209
"0000000414 00000 n \n " +
208
210
"0000000248 00000 n \n " +
209
- "5 2 \n " +
210
- "0000000088 00000 n \n " + // TODO first xref shall have no subsections
211
+ "0000000000 00001 f \n " +
212
+ "0000000088 00000 n \n " +
211
213
"0000000015 00000 n \n "
212
214
};
213
215
Assert .assertArrayEquals (expected , xrefString );
0 commit comments