private void testOuterJoin(List<String> leftInput, List<String> rightInput, List<String> expected) throws Exception {
executionConfig.disableObjectReuse();
List<String> resultSafe = baseOperator.executeOnCollections(leftInput, rightInput, runtimeContext, executionConfig);
executionConfig.enableObjectReuse();
List<String> resultRegular = baseOperator.executeOnCollections(leftInput, rightInput, runtimeContext, executionConfig);
assertEquals(expected, resultSafe);
assertEquals(expected, resultRegular);
assertTrue(joiner.opened.get());
assertTrue(joiner.closed.get());
}