2014-06-05 20 views
0

當看完這篇文章Vaadin "A connector with id xy is already registered"後,我已經嘗試實現由何塞·路易斯·建議的解決方案......NullPointerException異常overiding的ConnectorTracker.getConnectorTracker

但我得到這樣的痕跡:

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; 
    } 
} 
+1

爲什麼這與春季有關? –

+0

@AndreiStefan它被糾正了,你能否消除這個問題的負面影響? – Manu

回答

0
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時設置跟蹤器爲時尚早。