Skip to content

Commit c2270ee

Browse files
committed
IGNITE-28477 Handle missing filter class
1 parent 7815031 commit c2270ee

1 file changed

Lines changed: 15 additions & 0 deletions

File tree

modules/core/src/main/java/org/apache/ignite/internal/processors/continuous/GridContinuousProcessor.java

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,7 @@
7676
import org.apache.ignite.internal.util.lang.gridfunc.ReadOnlyCollectionView2X;
7777
import org.apache.ignite.internal.util.typedef.CI1;
7878
import org.apache.ignite.internal.util.typedef.F;
79+
import org.apache.ignite.internal.util.typedef.X;
7980
import org.apache.ignite.internal.util.typedef.internal.LT;
8081
import org.apache.ignite.internal.util.typedef.internal.S;
8182
import org.apache.ignite.internal.util.typedef.internal.U;
@@ -1094,6 +1095,14 @@ private void processStopRequest(ClusterNode snd, StopRoutineDiscoveryMessage msg
10941095
}
10951096
}
10961097

1098+
/** */
1099+
private boolean checkNodeFilter(StartRequestData reqData) {
1100+
IgnitePredicate<ClusterNode> nodeFilter;
1101+
1102+
return reqData == null || (nodeFilter = reqData.nodeFilter()) == null
1103+
|| nodeFilter.apply(ctx.discovery().localNode());
1104+
}
1105+
10971106
/**
10981107
* @param sndId Sender node ID.
10991108
* @param msg Message.
@@ -1152,6 +1161,12 @@ private void processStartRequest(final AffinityTopologyVersion topVer,
11521161
U.error(log, "Failed to unmarshal continuous request data [" +
11531162
"routineId=" + msg.routineId +
11541163
", srcNodeId=" + snd.id() + ']', e);
1164+
1165+
if (X.hasCause(e, ClassNotFoundException.class) && !checkNodeFilter(reqData)) {
1166+
sendMessageStartResult(snd, msg.routineId(), null, null);
1167+
1168+
return;
1169+
}
11551170
}
11561171

11571172
IgnitePredicate<ClusterNode> nodeFilter = reqData.nodeFilter();

0 commit comments

Comments
 (0)