2010-06-21 8 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

오류 추적이 도움이 될 것입니다 그것을 작동 희망 - AssertionFailedError을은 JUnit을하다 수업 중에는 시험 중에 발생합니까? – skaffman

+0

내 크리스탈 볼을 왼쪽 –

답변

0

생성자 (TableViewer) 또는 이러한 예외를 던지고있다 assert 문을 지키는 두 세터 (setContentProvider, setLabelProvider)이있다. 코드 작성자는 코드를 호출 할 때 사용하는 불규칙한 매개 변수로부터 코드를 보호하기위한 아이디어를 가지고있었습니다.

+0

'AssertionFailedError'는 JUnit 일 뿐이며 Java 'assert'가 아닙니다. – skaffman

0

스택 추적 보여줍니다 'BOAttributesPage.populateAttributeTableContents()' 결국 org.eclipse.jface.viewers.StructuredViewer.disassociate '에 호출 결과 (에서 'TableViewer.setLabelProvider() '에 전화) '을 null 인수로 입력하고 해당 메소드 제약 조건 입력 인수를 null이되도록 입력하십시오.

0

BOAttributeTableContentProvider는 줄에 따라 null 개체를 제공합니다 (표에 표시하려는 요소 중 하나가 null 임). 콘텐츠 공급자를 디버깅하십시오. 희망이 나의 늦은 대답은 도움이 될 것입니다.

2

메소드 이름의 시작 부분에 "test"가 소문자인지 확인하십시오. TestMethod라고하면이 오류 메시지가 나타납니다. testMethod라고해야합니다. 예를 들어

는 :

@Test 
    public void test_VPlugin() throws Exception { 

이 나를 위해 작동하고 당신이

내 다른 바지
관련 문제