Skip to content

Commit c42cc40

Browse files
authored
Undo JDK6 hack (#311)
* Undo AutoClosable hack introduced for JDK6 compatibility This basically reverts commit f7e0924 (and commit 74c6dd0). Signed-off-by: Sven Strickroth <email@cs-ware.de> * Directly use Integer.compare Signed-off-by: Sven Strickroth <email@cs-ware.de> --------- Signed-off-by: Sven Strickroth <email@cs-ware.de>
1 parent 3e32abc commit c42cc40

File tree

6 files changed

+29
-191
lines changed

6 files changed

+29
-191
lines changed

src/main/java/org/owasp/html/AutoCloseableHtmlStreamRenderer.java

Lines changed: 0 additions & 92 deletions
This file was deleted.

src/main/java/org/owasp/html/HtmlElementTables.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -723,8 +723,7 @@ public enum TextContentModelBit {
723723
static final Comparator<int[]> COMPARE_BY_ZEROTH =
724724
new Comparator<int[]>() {
725725
public int compare(int[] a, int[] b) {
726-
// Integer.compare is @since JDK 7
727-
return a[0] - b[0];
726+
return Integer.compare(a[0], b[0]);
728727
}
729728
};
730729

src/main/java/org/owasp/html/HtmlStreamEventReceiverWrapper.java

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,13 @@
11
package org.owasp.html;
22

3-
import java.io.Closeable;
4-
import java.io.IOException;
53
import java.util.List;
64

75
/**
86
* An event receiver that delegates to an underlying receiver and which may
97
* be overridden to do additional work.
108
*/
119
public abstract class HtmlStreamEventReceiverWrapper
12-
implements HtmlStreamEventReceiver,
13-
// Not AutoCloseable for JDK 6 compatibility but will close AutoCloseable
14-
// underlying streams when closed.
15-
Closeable {
10+
implements HtmlStreamEventReceiver, AutoCloseable {
1611

1712
protected final HtmlStreamEventReceiver underlying;
1813

@@ -43,7 +38,9 @@ public void text(String text) {
4338
this.underlying.text(text);
4439
}
4540

46-
public void close() throws IOException {
47-
AutoCloseableHtmlStreamRenderer.closeIfAnyCloseable(underlying);
41+
public void close() throws Exception {
42+
if (underlying instanceof AutoCloseable) {
43+
((AutoCloseable) underlying).close();
44+
}
4845
}
4946
}

src/main/java/org/owasp/html/HtmlStreamRenderer.java

Lines changed: 22 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -77,8 +77,8 @@ public static HtmlStreamRenderer create(
7777
if (output instanceof Closeable) {
7878
return new CloseableHtmlStreamRenderer(
7979
output, ioExHandler, badHtmlHandler);
80-
} else if (AutoCloseableHtmlStreamRenderer.isAutoCloseable(output)) {
81-
return AutoCloseableHtmlStreamRenderer.createAutoCloseableHtmlStreamRenderer(
80+
} else if (output instanceof AutoCloseable) {
81+
return new AutoCloseableHtmlStreamRenderer(
8282
output, ioExHandler, badHtmlHandler);
8383
} else {
8484
return new HtmlStreamRenderer(output, ioExHandler, badHtmlHandler);
@@ -99,7 +99,7 @@ public static HtmlStreamRenderer create(
9999
return create(output, Handler.PROPAGATE, badHtmlHandler);
100100
}
101101

102-
protected HtmlStreamRenderer(
102+
private HtmlStreamRenderer(
103103
Appendable output, Handler<? super IOException> ioExHandler,
104104
Handler<? super String> badHtmlHandler) {
105105
this.output = output;
@@ -449,6 +449,25 @@ public void close() throws IOException {
449449
}
450450
}
451451

452+
static class AutoCloseableHtmlStreamRenderer extends HtmlStreamRenderer
453+
implements AutoCloseable {
454+
private final AutoCloseable closeable;
455+
456+
@SuppressWarnings("synthetic-access")
457+
AutoCloseableHtmlStreamRenderer(
458+
@WillCloseWhenClosed
459+
Appendable output, Handler<? super IOException> errorHandler,
460+
Handler<? super String> badHtmlHandler) {
461+
super(output, errorHandler, badHtmlHandler);
462+
this.closeable = (AutoCloseable) output;
463+
}
464+
465+
public void close() throws Exception {
466+
if (isDocumentOpen()) { closeDocument(); }
467+
closeable.close();
468+
}
469+
}
470+
452471
private static final long TAG_ENDS = 0L
453472
| (1L << '\t')
454473
| (1L << '\n')

src/test/java/org/owasp/html/AutoCloseableHtmlStreamRendererTest.java

Lines changed: 0 additions & 85 deletions
This file was deleted.

src/test/java/org/owasp/html/PolicyFactoryTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -186,7 +186,7 @@ public Appendable append(char c) throws IOException {
186186

187187
};
188188

189-
HtmlStreamEventReceiver receiver = new HtmlStreamRenderer(
189+
HtmlStreamEventReceiver receiver = HtmlStreamRenderer.create(
190190
throwingOut, ioHandler, badHtmlHandler);
191191
HtmlSanitizer.Policy policy = factory.apply(
192192
receiver, listener, context);

0 commit comments

Comments
 (0)