### Question:
EventFilterChain implements EventSink { public synchronized EventSink chain_sink() { return m_sink; } EventFilterChain(EventSink sink); synchronized EventSink chain_sink(); synchronized List<EventFilter> filters(); synchronized void add_filter(EventFilter f); synchronized void remove_filter(EventFilter f); synchronized void clear(); @Override synchronized void sink(BusData data); synchronized EventFilterChainInfo info();  }### Answer:
@Test public void obtain_chain_sink() throws Exception { assertSame(m_sink, m_chain.chain_sink()); }
@Test public void multiple_chains_same_sink() throws Exception { assertSame(m_sink, m_chain.chain_sink()); assertSame(m_sink, new EventFilterChain(m_sink).chain_sink()); }