Skip to content

Commit 4d60384

Browse files
committed
Fix validation behavior in RegexFilter (apache#3086)
+ added validation checks to RegexFilter + added JVerify nullability annotations to RegexFilter + updated javadoc + replaced deprecated usages of CompositeFilter#getFilters with CompositeFilter#getFiltersArray in AbstractFilterableTest
1 parent 3827a0c commit 4d60384

File tree

4 files changed

+160
-149
lines changed

4 files changed

+160
-149
lines changed

log4j-core-test/src/test/java/org/apache/logging/log4j/core/filter/AbstractFilterTest.java

-1
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,6 @@ public class AbstractFilterTest {
3434
@Test
3535
public void testUnrolledBackwardsCompatible() {
3636
final ConcreteFilter filter = new ConcreteFilter();
37-
final Filter.Result expected = Filter.Result.DENY;
3837
verifyMethodsWithUnrolledVarargs(filter, Filter.Result.DENY);
3938

4039
filter.testResult = Filter.Result.ACCEPT;

log4j-core-test/src/test/java/org/apache/logging/log4j/core/filter/AbstractFilterableTest.java

+8-12
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ public void testAddMultipleSimpleFilters() throws Exception {
5353
// adding a second filter converts the filter
5454
// into a CompositeFilter.class
5555
filterable.addFilter(filter);
56-
assertTrue(filterable.getFilter() instanceof CompositeFilter);
56+
assertInstanceOf(CompositeFilter.class, filterable.getFilter());
5757
assertEquals(2, ((CompositeFilter) filterable.getFilter()).getFiltersArray().length);
5858
}
5959

@@ -66,7 +66,7 @@ public void testAddMultipleEqualSimpleFilter() throws Exception {
6666
// adding a second filter converts the filter
6767
// into a CompositeFilter.class
6868
filterable.addFilter(filter);
69-
assertTrue(filterable.getFilter() instanceof CompositeFilter);
69+
assertInstanceOf(CompositeFilter.class, filterable.getFilter());
7070
assertEquals(2, ((CompositeFilter) filterable.getFilter()).getFiltersArray().length);
7171
}
7272

@@ -92,7 +92,7 @@ public void testAddMultipleCompositeFilters() throws Exception {
9292
// adding a second filter converts the filter
9393
// into a CompositeFilter.class
9494
filterable.addFilter(compositeFilter);
95-
assertTrue(filterable.getFilter() instanceof CompositeFilter);
95+
assertInstanceOf(CompositeFilter.class, filterable.getFilter());
9696
assertEquals(6, ((CompositeFilter) filterable.getFilter()).getFiltersArray().length);
9797
}
9898

@@ -108,7 +108,7 @@ public void testAddSimpleFilterAndCompositeFilter() throws Exception {
108108
// adding a second filter converts the filter
109109
// into a CompositeFilter.class
110110
filterable.addFilter(compositeFilter);
111-
assertTrue(filterable.getFilter() instanceof CompositeFilter);
111+
assertInstanceOf(CompositeFilter.class, filterable.getFilter());
112112
assertEquals(2, ((CompositeFilter) filterable.getFilter()).getFiltersArray().length);
113113
}
114114

@@ -124,7 +124,7 @@ public void testAddCompositeFilterAndSimpleFilter() throws Exception {
124124
// adding a second filter converts the filter
125125
// into a CompositeFilter.class
126126
filterable.addFilter(notInCompositeFilterFilter);
127-
assertTrue(filterable.getFilter() instanceof CompositeFilter);
127+
assertInstanceOf(CompositeFilter.class, filterable.getFilter());
128128
assertEquals(3, ((CompositeFilter) filterable.getFilter()).getFiltersArray().length);
129129
}
130130

@@ -169,7 +169,7 @@ public void testRemoveSimpleEqualFilterFromMultipleSimpleFilters() throws Except
169169
filterable.addFilter(filterOriginal);
170170
filterable.addFilter(filterCopy);
171171
filterable.removeFilter(filterCopy);
172-
assertTrue(filterable.getFilter() instanceof CompositeFilter);
172+
assertInstanceOf(CompositeFilter.class, filterable.getFilter());
173173
assertEquals(2, ((CompositeFilter) filterable.getFilter()).getFiltersArray().length);
174174
filterable.removeFilter(filterCopy);
175175
assertEquals(filterOriginal, filterable.getFilter());
@@ -223,7 +223,7 @@ public void testRemoveSimpleFilterFromCompositeAndSimpleFilter() {
223223

224224
// should not remove internal filter of compositeFilter
225225
filterable.removeFilter(anotherFilter);
226-
assertTrue(filterable.getFilter() instanceof CompositeFilter);
226+
assertInstanceOf(CompositeFilter.class, filterable.getFilter());
227227
assertEquals(2, ((CompositeFilter) filterable.getFilter()).getFiltersArray().length);
228228
}
229229

@@ -274,11 +274,7 @@ public boolean equals(final Object o) {
274274

275275
final EqualFilter that = (EqualFilter) o;
276276

277-
if (key != null ? !key.equals(that.key) : that.key != null) {
278-
return false;
279-
}
280-
281-
return true;
277+
return key != null ? key.equals(that.key) : that.key == null;
282278
}
283279

284280
@Override

log4j-core-test/src/test/java/org/apache/logging/log4j/core/filter/RegexFilterTest.java

+27-30
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@
2424
import static org.junit.jupiter.api.Assertions.assertNotNull;
2525
import static org.junit.jupiter.api.Assertions.assertNull;
2626
import static org.junit.jupiter.api.Assertions.assertSame;
27-
import static org.junit.jupiter.api.Assertions.assertThrows;
2827
import static org.junit.jupiter.api.Assertions.assertTrue;
2928

3029
import org.apache.logging.log4j.Level;
@@ -94,11 +93,10 @@ public void testDotAllPattern() throws Exception {
9493
@Test
9594
void testNoMsg() {
9695

97-
final RegexFilter filter =
98-
RegexFilter.newBuilder()
99-
.setRegex(".* test .*")
100-
.setUseRawMsg(false)
101-
.build();
96+
final RegexFilter filter = RegexFilter.newBuilder()
97+
.setRegex(".* test .*")
98+
.setUseRawMsg(false)
99+
.build();
102100

103101
assertNotNull(filter);
104102

@@ -116,26 +114,25 @@ void testParameterizedMsg() {
116114
final Object[] params = {"foo", "bar"};
117115

118116
// match against raw message
119-
final RegexFilter rawFilter =
120-
RegexFilter.newBuilder()
121-
.setRegex("params \\{\\} \\{\\}")
122-
.setUseRawMsg(true)
123-
.setOnMatch(Result.ACCEPT)
124-
.setOnMismatch(Result.DENY)
125-
.build();
117+
final RegexFilter rawFilter = RegexFilter.newBuilder()
118+
.setRegex("params \\{\\} \\{\\}")
119+
.setUseRawMsg(true)
120+
.setOnMatch(Result.ACCEPT)
121+
.setOnMismatch(Result.DENY)
122+
.build();
126123

127124
assertNotNull(rawFilter);
128125

129126
final Result rawResult = rawFilter.filter(null, null, null, msg, params);
130127
assertThat(rawResult, equalTo(Result.ACCEPT));
131128

132129
// match against formatted message
133-
final RegexFilter fmtFilter =
134-
RegexFilter.newBuilder()
135-
.setRegex("params foo bar")
136-
.setUseRawMsg(false)
137-
.setOnMatch(Result.ACCEPT)
138-
.setOnMismatch(Result.DENY).build();
130+
final RegexFilter fmtFilter = RegexFilter.newBuilder()
131+
.setRegex("params foo bar")
132+
.setUseRawMsg(false)
133+
.setOnMatch(Result.ACCEPT)
134+
.setOnMismatch(Result.DENY)
135+
.build();
139136

140137
assertNotNull(fmtFilter);
141138

@@ -151,8 +148,11 @@ void testWithValidRegex() {
151148

152149
final String regex = "^[a-zA-Z0-9_]+$"; // matches alphanumeric with underscores
153150

154-
final RegexFilter.Builder builder =
155-
RegexFilter.newBuilder().setRegex(regex).setUseRawMsg(false).setOnMatch(Result.ACCEPT).setOnMismatch(Result.DENY);
151+
final RegexFilter.Builder builder = RegexFilter.newBuilder()
152+
.setRegex(regex)
153+
.setUseRawMsg(false)
154+
.setOnMatch(Result.ACCEPT)
155+
.setOnMismatch(Result.DENY);
156156

157157
assertTrue(builder.isValid());
158158

@@ -172,13 +172,12 @@ void testRegexFilterGetters() {
172172

173173
final String regex = "^[a-zA-Z0-9_]+$"; // matches alphanumeric with underscores
174174

175-
final RegexFilter filter =
176-
RegexFilter.newBuilder()
177-
.setRegex(regex)
178-
.setUseRawMsg(false)
179-
.setOnMatch(Result.ACCEPT)
180-
.setOnMismatch(Result.DENY)
181-
.build();
175+
final RegexFilter filter = RegexFilter.newBuilder()
176+
.setRegex(regex)
177+
.setUseRawMsg(false)
178+
.setOnMatch(Result.ACCEPT)
179+
.setOnMismatch(Result.DENY)
180+
.build();
182181

183182
assertNotNull(filter);
184183

@@ -201,7 +200,6 @@ void testBuilderWithoutRegexNotValid() {
201200
assertFalse(builder.isValid());
202201

203202
assertNull(builder.build());
204-
205203
}
206204

207205
/**
@@ -217,6 +215,5 @@ void testBuilderWithInvalidRegexNotValid() {
217215
assertFalse(builder.isValid());
218216

219217
assertNull(builder.build());
220-
221218
}
222219
}

0 commit comments

Comments
 (0)