Eclipse e4 EventBroker Map <string,string =“”> NullPointer

时间:2015-12-02 10:05:49

标签: eclipse events e4

我需要使用eclipse e4框架的EventBroker发送一个事件。除了地图实例外,一切正常(String,List ...)。

Map<String, String> test = new LinkedHashMap<>();
test.put("test1", "1");
test.put("test2", "2");

broker.send(EventConstants.EXTENDED_SEARCH_ACTICE_HEADER, test);

接收部分

@Inject
@Optional
public void onExtendedSearchActiveHeaderEvent(
        @UIEventTopic(EventConstants.EXTENDED_SEARCH_ACTICE_HEADER) Map<String, String> test) {

    System.out.println(test.size()); 

}

调度事件org.osgi.service.event.Event

时发生异常

跟随 - 当然 - NullPointer异常

1 个答案:

答案 0 :(得分:2)

事件代理send(和post)方法专门处理Map参数,并期望它包含complete事件。这会产生副作用,@UIEventTopic认为没有任何Map数据。

要处理这种用法:

Map<String, Object> eventMap = new HashMap<String, Object>();

// Your map goes under the `IEventBroker.DATA` key
eventMap.put(IEventBroker.DATA, test);

broker.send(EventConstants.EXTENDED_SEARCH_ACTICE_HEADER, eventMap);