Как повторно опубликовать свойство сервиса с помощью назначения поля в iPOJO

1

Я новичок в iPOJO. В рамках изучения инфраструктуры iPOJO я нашел следующую проблему.

Я публикую сервис "ServicePropertiesExample" с атрибутом service "when" с начальным значением/значением по умолчанию, установленным в 0. Это свойство службы прикрепляется к полю "count". Когда для поданного "count" установлено значение null, свойство службы "когда" не опубликовано (как в документации iPOJO по адресу http://felix.apache.org/documentation/subprojects/apache-felix-ipojo/apache-felix- ipojo-userguide/описания-компоненты/обеспечение-osgi-services.html)

Но я получаю NullPointerException когда переназначение делается в поле "count" из значения null. Я хочу повторно опубликовать это свойство службы. Как это может быть сделано?

@ServiceProperty(name = "when", value = "0")
private String count;

public ServicePropertiesExample() {
    try {
        SwingUtilities
                .invokeAndWait(() -> {
                    panel = new JPanel();
                    JButton setPropertyValueTo1 = new JButton(
                            "Update Service Properties");
                    setPropertyValueTo1.addActionListener((e) -> {                                                      
                        count = String.valueOf(1);
                        });
                    JButton setPropertyValueToNull = new JButton("Set Property value to null");
                    setPropertyValueToNull.addActionListener((e)->{
                        System.out.println("Setting property value to null");
                        count = null;
                    });
                    panel.add(setPropertyValueTo1);
                    panel.add(setPropertyValueToNull);
                });
    } catch (InvocationTargetException | InterruptedException e) {
        e.printStackTrace();
    }
}

Здесь исключение:

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
  at org.apache.felix.ipojo.handlers.providedservice.ProvidedServiceHandler.__M_onSet(ProvidedServiceHandler.java:417)
  at org.apache.felix.ipojo.handlers.providedservice.ProvidedServiceHandler.onSet(ProvidedServiceHandler.java)
  at org.apache.felix.ipojo.InstanceManager.onSet(InstanceManager.java:1401)
  at com.steve.swing.components.ServicePropertiesExample.__setcount(ServicePropertiesExample.java)
  at com.steve.swing.components.ServicePropertiesExample.__M_lambda$1(ServicePropertiesExample.java:49)
  at com.steve.swing.components.ServicePropertiesExample.lambda$1(ServicePropertiesExample.java)
  at com.steve.swing.components.ServicePropertiesExample$$Lambda$3/2135247888.actionPerformed(Unknown Source)
  at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)
 ....
Теги:
osgi
ipojo

1 ответ

0

Вы не можете присвоить свойство "null" для свойства службы. Попробуйте другое значение, например 0 или -1.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню