Dropped message can be used inside the component dropping it, but it can not be send forward or dropped again.
16171819202122232425
if (p == null) { // This should never happend because component should not be started without // having an actual packet in one of its input ports. error.createPacket("NOOO, IT WAS NULL.").send(); } else { p.drop(); } } }
1213141516171819202122
@Override public void execute() { try { Packet packet = in.receive(); packet.drop(); out.createPacket("testing").send(); out.send(packet); // Expect exception to be thrown from sending dropped packet out.createPacket("failed").send(); } catch (Throwable e) {
20212223242526272829
try { out.send(packet); // Expect exception to be thrown from sending dropped packet result.createPacket("failed").send(); } catch (PortIsClosed e) { packet.drop(); result.createPacket("success").send(); } } }
13141516171819202122
@Override public void execute() { int count = countPort.receiveContentAndDrop().intValue(); for(int i = 0; i<count;i++){ Packet packet = in.receive(); packet.drop(); } endNotify.createPacket(null).send(); } }
2425262728293031323334
Packet packet; int level = 0; while((packet = inputPort.receive())!=null){ switch (packet.getType()){ case START: packet.drop(); level++; break; case END: packet.drop(); level--;
2829303132333435363738
case START: packet.drop(); level++; break; case END: packet.drop(); level--; break; case NORMAL: outputPort.send(packet); break;
19202122232425262728
Packet p; while(((p=in.receive())!=null)){ if (seen.add(p.getContent())){ out.send(p); } else { p.drop(); } } } }