2014-07-14 3 views
0

일부 이벤트에 대해 등록 된 EventHandler (org.osgi.service.event.Event)를 구현하는 리스너를 보유하고 있습니다. 청취자의 handleEvent가 두 번 호출되는 것 같습니다. 내 코드에서 이벤트를 한 번만 발생시킵니다. 청중이 이벤트를 두 번 처리하도록하는 장면 뒤에 osgi 프레임 워크가있을 수 있습니까? 감사합니다.handleEvent 두 번 호출 된 EventHandler의 이벤트

+0

event.topics 필터는 무엇으로 설정되어 있습니까? 이벤트 내용이 정확히 동일합니까? –

답변

0

이 질문에 직접 답변하는 것은 아니지만 직접 대답하는 데 도움이됩니다. 짝수 핸들러 (handleEvent())에 중단 점을 넣고 스택 추적에서 누가이 메서드를 호출하는지 확인한 다음 그 논리를 통해 두 번 호출되는 이유를 이해하십시오. 대부분 이벤트 게시자에게 우연히 두 번 등록하여 발생합니다.

+0

새로운 것을 만들 때마다 청취자의 등록을 취소해야했습니다. 분명히 가비지 컬렉터는 적절한 시간에 오래된 청취자를 제거하지 않는 것처럼 보입니다. – SomeDude

+0

@svasa : 매번 어떻게 등록을 취소 했습니까? 공유 코드 스 니펫을 수행하십시오. 나는 똑같은 문제에 직면 해있다. 감사 –