【问题标题】:NullPointerException when overiding the ConnectorTracker.getConnectorTracker覆盖 Connector Tracker.getConnector Tracker 时出现 NullPointerException
【发布时间】:2014-06-05 14:47:48
【问题描述】:

阅读本文Vaadin "A connector with id xy is already registered" 后,我尝试实施 Jose Luis 建议的解决方案...

但我得到了这个痕迹:

java.lang.NullPointerException
    at com.vaadin.server.AbstractClientConnector.markAsDirty(AbstractClientConnector.java:138)
    at com.vaadin.ui.AbstractComponent.setWidth(AbstractComponent.java:844)
    at com.vaadin.ui.AbstractSingleComponentContainer.setWidth(AbstractSingleComponentContainer.java:210)
    at com.vaadin.ui.AbstractComponent.setSizeFull(AbstractComponent.java:817)
    at com.vaadin.ui.UI.<init>(UI.java:253)
    at com.vaadin.ui.UI.<init>(UI.java:238)
    at my.package.ui.MyUI.<init>(MyUI.java:72)

第 72 行对应于:

public class MyUI extends UI

有人可以帮助理解这些痕迹的原因吗?
如有必要,我可以提供更多代码。

信息:

public class MyUI extends UI {

    private final MyConnectorTracker tracker = new MyConnectorTracker(
  this);


    @Override
    public ConnectorTracker getConnectorTracker() {
      return this.tracker;
    }
}

【问题讨论】:

  • 为什么这与 Spring 有关?
  • @AndreiStefan 已更正,能否去掉这个问题的负面观点?

标签: vaadin vaadin7


【解决方案1】:
public class MyUI extends UI {

  private MyConnectorTracker tracker;

  @Override
  public ConnectorTracker getConnectorTracker() {
    if (this.tracker == null) {
      this.tracker = new MyConnectorTracker(this);
    }
    return this.tracker;
  }
}

这解决了 NullPointerException。在第一次调用 UI 时设置跟踪器还为时过早。

【讨论】:

    猜你喜欢
    • 2014-08-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-17
    • 2015-03-26
    • 2020-04-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多