2010-06-21 119 views
1

我有下面的代碼:我們爲什麼會得到AssertionFailedError?

 TableViewer tv = new TableViewer(attributeTable); 
     tv.setContentProvider(new BOAttributeTableContentProvider()); 
     tv.setLabelProvider(new BOAttributeTableLabelProvider()); 

在設置標籤提供我收到AssertionFailedError哪裏。有人能告訴我我在這裏做什麼錯嗎?或者在這種情況下會拋出這個錯誤?

錯誤日誌:

org.eclipse.jface.util.Assert$AssertionFailedException: null argument; 
    at org.eclipse.jface.util.Assert.isNotNull(Assert.java:150) 
    at org.eclipse.jface.util.Assert.isNotNull(Assert.java:126) 
    at org.eclipse.jface.viewers.StructuredViewer.disassociate(StructuredViewer.java:615) 
    at org.eclipse.jface.viewers.TableViewer.internalRefreshAll(TableViewer.java:904) 
    at org.eclipse.jface.viewers.TableViewer.internalRefresh(TableViewer.java:818) 
    at org.eclipse.jface.viewers.TableViewer.internalRefresh(TableViewer.java:807) 
    at org.eclipse.jface.viewers.StructuredViewer$7.run(StructuredViewer.java:1388) 
    at org.eclipse.jface.viewers.StructuredViewer.preservingSelection(StructuredViewer.java:1323) 
    at org.eclipse.jface.viewers.StructuredViewer.refresh(StructuredViewer.java:1386) 
    at org.eclipse.jface.viewers.StructuredViewer.refresh(StructuredViewer.java:1345) 
    at org.eclipse.jface.viewers.ContentViewer.setLabelProvider(ContentViewer.java:281) 
    at org.eclipse.jface.viewers.StructuredViewer.setLabelProvider(StructuredViewer.java:2003) 
    at org.eclipse.jface.viewers.TableViewer.setLabelProvider(TableViewer.java:1086) 
    at com.misys.bankfusion.bpdesigner.boeditor.pages.BOAttributesPage.populateAttributeTableContents(BOAttributesPage.java:458) 
    at com.misys.bankfusion.bpdesigner.boeditor.pages.BOAttributesPage.access$000(BOAttributesPage.java:128) 
    at com.misys.bankfusion.bpdesigner.boeditor.pages.BOAttributesPage$1.setToModel(BOAttributesPage.java:341) 
    at com.trapedza.bankfusion.editor.AbstractEditorDelegate.updateData(AbstractEditorDelegate.java:173) 
    at com.trapedza.bankfusion.editor.AbstractEditorDelegate$1.dialogFieldChanged(AbstractEditorDelegate.java:181) 
    at com.trapedza.bankfusion.utils.dialogs.internal.DialogField.dialogFieldChanged(DialogField.java:132) 
    at com.trapedza.bankfusion.utils.dialogs.internal.ListBoxDialogField.doModifySelection(ListBoxDialogField.java:51) 
    at com.trapedza.bankfusion.utils.dialogs.internal.ComboDialogField$2.widgetSelected(ComboDialogField.java:153) 
    at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:90) 
    at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:66) 
    at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:928) 
    at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3348) 
    at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2968) 
    at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:1930) 
    at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:1894) 
    at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:422) 
    at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149) 
    at org.eclipse.ui.internal.ide.IDEApplication.run(IDEApplication.java:95) 
    at org.eclipse.core.internal.runtime.PlatformActivator$1.run(PlatformActivator.java:78) 
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:92) 
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:68) 
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:400) 
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:177) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
    at java.lang.reflect.Method.invoke(Method.java:585) 
    at org.eclipse.core.launcher.Main.invokeFramework(Main.java:336) 
    at org.eclipse.core.launcher.Main.basicRun(Main.java:280) 
    at org.eclipse.core.launcher.Main.run(Main.java:977) 
    at org.eclipse.core.launcher.Main.main(Main.java:952) 
+5

我離開了我的水晶球在我的其他褲子 – skaffman 2010-06-21 12:08:35

+0

錯誤跟蹤將是有益的 - AssertionFailedError異常是一個JUnit類,這是否在測試過程中發生? – 2010-06-21 12:09:36

回答

0

構造您所使用(TableViewer)或兩個setter方法(setContentProvidersetLabelProvider)有鎮守assert報表時都扔這些異常。代碼的作者有一個想法來保護它的代碼免受調用她/他的代碼時使用的不規則參數的影響。

+0

'AssertionFailedError'是一個JUnit事物,而不是java'assert'的東西。 – skaffman 2010-06-21 12:12:49

0

堆棧跟蹤顯示,從'BOAttributesPage.populateAttributeTableContents()'最終結果以調用「org.eclipse.jface.viewers.StructuredViewer.disassociate(您來電'TableViewer.setLabelProvider()''與null參數和該方法約束輸入參數不是 - null

0

它看起來像BOAttributeTableContentProvider提供了一個空的對象沿線(您試圖顯示在表中的一個元素爲空)。 調試內容提供者。希望我遲到的答案會有所幫助。

2

確保方法名稱開頭的「test」是小寫字母。如果你說TestMethod你會得到這個錯誤信息。你應該說testMethod。

例如:

@Test 
    public void test_VPlugin() throws Exception { 

這對我的作品,我希望它會爲你工作