Chesnay Schepler created FLINK-8423: ---------------------------------------
Summary: OperatorChain#pushToOperator catch block may fail with NPE Key: FLINK-8423 URL: https://issues.apache.org/jira/browse/FLINK-8423 Project: Flink Issue Type: Bug Components: Streaming Affects Versions: 1.4.0, 1.5.0 Reporter: Chesnay Schepler Priority: Minor {code} @Override protected <X> void pushToOperator(StreamRecord<X> record) { try { // we know that the given outputTag matches our OutputTag so the record // must be of the type that our operator (and Serializer) expects. @SuppressWarnings("unchecked") StreamRecord<T> castRecord = (StreamRecord<T>) record; numRecordsIn.inc(); StreamRecord<T> copy = castRecord.copy(serializer.copy(castRecord.getValue())); operator.setKeyContextElement1(copy); operator.processElement(copy); } catch (ClassCastException e) { // Enrich error message ClassCastException replace = new ClassCastException( String.format( "%s. Failed to push OutputTag with id '%s' to operator. " + "This can occur when multiple OutputTags with different types " + "but identical names are being used.", e.getMessage(), outputTag.getId())); throw new ExceptionInChainedOperatorException(replace); } catch (Exception e) { throw new ExceptionInChainedOperatorException(e); } } {code} If outputTag is null (as is the case when no sideOutput was defined) the catch block will crash with a NullPointerException. This may happen if {{operator.processElement}} throws a ClassCastException. -- This message was sent by Atlassian JIRA (v6.4.14#64029)