Skip to content

Commit 68a1057

Browse files
committed
Releasing objects: minor fixes, add tests
DEVSIX-480
1 parent a1c1add commit 68a1057

File tree

5 files changed

+15
-2
lines changed

5 files changed

+15
-2
lines changed

io/src/main/java/com/itextpdf/io/LogMessageConstant.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,11 @@ public class LogMessageConstant {
2020
*/
2121
public static final String FONT_HAS_INVALID_GLYPH = "Font {0} has invalid glyph: {1}";
2222

23+
/**
24+
* Log message.
25+
*/
26+
public static final String FORBID_RELEASE_IS_SET = "ForbidRelease flag is set and release is called. Releasing will not be performed.";
27+
2328
/**
2429
* Log message.
2530
*/

kernel/src/main/java/com/itextpdf/kernel/pdf/PdfIndirectReference.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -195,6 +195,12 @@ public String toString() {
195195
if (checkState(OriginalObjectStream)) {
196196
states.append("OriginalObjectStream; ");
197197
}
198+
if (checkState(ForbidRelease)) {
199+
states.append("ForbidRelease; ");
200+
}
201+
if (checkState(ReadOnly)) {
202+
states.append("ReadOnly; ");
203+
}
198204
return java.lang.String.format("%d %d R%s", getObjNumber(), getGenNumber(), states.substring(0, states.length() - 1));
199205
}
200206

kernel/src/main/java/com/itextpdf/kernel/pdf/PdfObject.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package com.itextpdf.kernel.pdf;
22

3+
import com.itextpdf.io.LogMessageConstant;
34
import com.itextpdf.kernel.PdfException;
45

56
import java.io.IOException;
@@ -311,7 +312,7 @@ public void release() {
311312
// In case ForbidRelease flag is set, release will not be performed.
312313
if (checkState(ForbidRelease)) {
313314
Logger logger = LoggerFactory.getLogger(PdfObject.class);
314-
logger.warn("ForbidRelease flag is set and release is called. Releasing will not be performed.");
315+
logger.warn(LogMessageConstant.FORBID_RELEASE_IS_SET);
315316
} else {
316317
if (indirectReference != null && indirectReference.getReader() != null
317318
&& !indirectReference.checkState(Flushed)) {

kernel/src/main/java/com/itextpdf/kernel/pdf/PdfPage.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -308,7 +308,7 @@ public void flush() {
308308
}
309309

310310
/**
311-
* Flushes page and it's content stream. If <code>flushXObjects</code> is true the images and FormXObjects
311+
* Flushes page and its content stream. If <code>flushXObjects</code> is true the images and FormXObjects
312312
* associated with this page will also be flushed.
313313
* <br>
314314
* For notes about tag structure flushing see {@link PdfPage#flush() PdfPage#flush() method}.

kernel/src/main/java/com/itextpdf/kernel/pdf/tagging/PdfStructElem.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,7 @@ public class PdfStructElem extends PdfObjectWrapper<PdfDictionary> implements IP
100100
public PdfStructElem(PdfDictionary pdfObject) {
101101
super(pdfObject);
102102
ensureObjectIsAddedToDocument(pdfObject);
103+
setForbidRelease();
103104
PdfName role = getPdfObject().getAsName(PdfName.S);
104105
type = identifyType(getDocument(), role);
105106
}

0 commit comments

Comments
 (0)