Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.

Bug 368070

Summary: Chart using Container Data gives NullPointerException Error
Product: z_Archived Reporter: Shane Dodge <shane.dodge>
Component: BIRTAssignee: Heng Li <liheeng>
Status: CLOSED FIXED QA Contact: fengfu liu <fengfu.liu>
Severity: normal    
Priority: P3 CC: bluesoldier
Version: unspecified   
Target Milestone: 4.2.2   
Hardware: PC   
OS: Windows XP   
Whiteboard:

Description Shane Dodge CLA 2012-01-06 18:30:29 EST
Build Identifier: v20110905-1820

Repro steps
Create a group with an aggregation within the group header
Create group utilizing the following expression
>if (BirtComp.like(row["PRODUCTCODE"],"%1678")) "Group1"
> else if (BirtComp.like(row["PRODUCTCODE"],"%1949")) "Group2"
> etc
Create a chart utilizing the group aggregation as the Y axis and the group expression as the x axis
Finish the Chart Wizard

Run Report

Choose Edit chart

The Select Data tab within the chart wizard gives you the NPE error.

> java.lang.NullPointerException at:
> java.lang.String.contains(Unknown Source)
> org.eclipse.birt.chart.ui.swt.wizard.data.BaseDataDefinitionComponent$SharedBindingHelper.translateFromBindingName(BaseDataDefinitionComponent.java:1177)
>
> org.eclipse.birt.chart.ui.swt.wizard.data.BaseDataDefinitionComponent.updateText(BaseDataDefinitionComponent.java:1031)
>
> org.eclipse.birt.chart.ui.swt.DataDefinitionTextManager.refreshAll(DataDefinitionTextManager.java:137)
>
> org.eclipse.birt.chart.ui.swt.wizard.TaskSelectData.handleEvent(TaskSelectData.java:439)
>
> org.eclipse.birt.chart.ui.swt.DefaultChartDataSheet.notifyListeners(DefaultChartDataSheet.java:72)
>
> org.eclipse.birt.chart.reportitem.ui.StandardChartDataSheet.fireEvent(StandardChartDataSheet.java:306)
>
> org.eclipse.birt.chart.reportitem.ui.StandardChartDataSheet.updatePredefinedQueries(StandardChartDataSheet.java:2975)
>
> org.eclipse.birt.chart.reportitem.ui.StandardChartDataSheet.createDataSelector(StandardChartDataSheet.java:1100)
>
> org.eclipse.birt.chart.ui.swt.wizard.TaskSelectData.createDataArea(TaskSelectData.java:277)
>
> org.eclipse.birt.chart.ui.swt.wizard.TaskSelectData.placeComponents(TaskSelectData.java:243)
>
> org.eclipse.birt.chart.ui.swt.wizard.TaskSelectData.createControl(TaskSelectData.java:153)
>
> org.eclipse.birt.core.ui.frameworks.taskwizard.WizardBaseDialog.switchTask(WizardBaseDialog.java:317)
>
> org.eclipse.birt.core.ui.frameworks.taskwizard.WizardBase.switchTo(WizardBase.java:234)
>
> org.eclipse.birt.chart.ui.swt.wizard.ChartWizard.switchTo(ChartWizard.java:289)
>
> org.eclipse.birt.core.ui.frameworks.taskwizard.WizardBaseDialog.widgetSelected(WizardBaseDialog.java:509)
>
> org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:234)
> org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
> org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1053)
> org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1077)
> org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1062)
> org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java:774)
> org.eclipse.swt.custom.CTabFolder.setSelection(CTabFolder.java:2743)
> org.eclipse.swt.custom.CTabFolder.onMouse(CTabFolder.java:1429)
> org.eclipse.swt.custom.CTabFolder$1.handleEvent(CTabFolder.java:257)
> org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
> org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1053)
> org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4066)
> org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3657)
> org.eclipse.jface.window.Window.runEventLoop(Window.java:825)
> org.eclipse.jface.window.Window.open(Window.java:801)
> org.eclipse.birt.core.ui.frameworks.taskwizard.WizardBase.open(WizardBase.java:92)
>
> org.eclipse.birt.chart.ui.swt.wizard.ChartWizard.open(ChartWizard.java:243)
> org.eclipse.birt.chart.reportitem.ui.ChartReportItemBuilderImpl.open(ChartReportItemBuilderImpl.java:288)
>
> org.eclipse.birt.report.designer.internal.ui.extension.ExtendedEditPart.performDirectEdit(ExtendedEditPart.java:185)
>
> org.eclipse.birt.report.designer.internal.ui.editors.schematic.editparts.ReportElementEditPart.performRequest(ReportElementEditPart.java:150)
>
> org.eclipse.gef.tools.SelectEditPartTracker.performOpen(SelectEditPartTracker.java:194)
>
> org.eclipse.gef.tools.SelectEditPartTracker.handleDoubleClick(SelectEditPartTracker.java:137)
>
> org.eclipse.gef.tools.AbstractTool.mouseDoubleClick(AbstractTool.java:1069)
> org.eclipse.birt.report.designer.internal.ui.editors.schematic.tools.ReportElementDragTracker.mouseDoubleClick(ReportElementDragTracker.java:125)
>
> org.eclipse.gef.tools.SelectionTool.mouseDoubleClick(SelectionTool.java:525)
>
> org.eclipse.gef.EditDomain.mouseDoubleClick(EditDomain.java:231)
> org.eclipse.gef.ui.parts.DomainEventDispatcher.dispatchMouseDoubleClicked(DomainEventDispatcher.java:291)
>
> org.eclipse.draw2d.LightweightSystem$EventHandler.mouseDoubleClick(LightweightSystem.java:518)
>
> org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:189)
> org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
> org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1053)
> org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4066)
> org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3657)
> org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2640)
> org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2604)
> org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2438)
> org.eclipse.ui.internal.Workbench$7.run(Workbench.java:671)
> org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
>
> org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:664)
> org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
> org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:115)
>
> org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
>
> org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
>
> org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
>
> org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:369)
>
> org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)
>
> sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
> sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
> java.lang.reflect.Method.invoke(Unknown Source)
> org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:620)
> org.eclipse.equinox.launcher.Main.basicRun(Main.java:575)
> org.eclipse.equinox.launcher.Main.run(Main.java:1408)
>
> Caused By:null
> java.lang.String.contains(Unknown Source)
> org.eclipse.birt.chart.ui.swt.wizard.data.BaseDataDefinitionComponent$SharedBindingHelper.translateFromBindingName(BaseDataDefinitionComponent.java:1177)
>
> org.eclipse.birt.chart.ui.swt.wizard.data.BaseDataDefinitionComponent.updateText(BaseDataDefinitionComponent.java:1031)
>
> org.eclipse.birt.chart.ui.swt.DataDefinitionTextManager.refreshAll(DataDefinitionTextManager.java:137)
>
> org.eclipse.birt.chart.ui.swt.wizard.TaskSelectData.handleEvent(TaskSelectData.java:439)
>
> org.eclipse.birt.chart.ui.swt.DefaultChartDataSheet.notifyListeners(DefaultChartDataSheet.java:72)
>
> org.eclipse.birt.chart.reportitem.ui.StandardChartDataSheet.fireEvent(StandardChartDataSheet.java:306)
>
> org.eclipse.birt.chart.reportitem.ui.StandardChartDataSheet.updatePredefinedQueries(StandardChartDataSheet.java:2975)
>
> org.eclipse.birt.chart.reportitem.ui.StandardChartDataSheet.createDataSelector(StandardChartDataSheet.java:1100)
>
> org.eclipse.birt.chart.ui.swt.wizard.TaskSelectData.createDataArea(TaskSelectData.java:277)
>
> org.eclipse.birt.chart.ui.swt.wizard.TaskSelectData.placeComponents(TaskSelectData.java:243)
>
> org.eclipse.birt.chart.ui.swt.wizard.TaskSelectData.createControl(TaskSelectData.java:153)
>
> org.eclipse.birt.core.ui.frameworks.taskwizard.WizardBaseDialog.switchTask(WizardBaseDialog.java:317)
>
> org.eclipse.birt.core.ui.frameworks.taskwizard.WizardBase.switchTo(WizardBase.java:234)
>
> org.eclipse.birt.chart.ui.swt.wizard.ChartWizard.switchTo(ChartWizard.java:289)
>
> org.eclipse.birt.core.ui.frameworks.taskwizard.WizardBaseDialog.widgetSelected(WizardBaseDialog.java:509)
>
> org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:234)
> org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
> org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1053)
> org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1077)
> org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1062)
> org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java:774)
> org.eclipse.swt.custom.CTabFolder.setSelection(CTabFolder.java:2743)
> org.eclipse.swt.custom.CTabFolder.onMouse(CTabFolder.java:1429)
> org.eclipse.swt.custom.CTabFolder$1.handleEvent(CTabFolder.java:257)
> org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
> org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1053)
> org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4066)
> org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3657)
> org.eclipse.jface.window.Window.runEventLoop(Window.java:825)
> org.eclipse.jface.window.Window.open(Window.java:801)
> org.eclipse.birt.core.ui.frameworks.taskwizard.WizardBase.open(WizardBase.java:92)
>
> org.eclipse.birt.chart.ui.swt.wizard.ChartWizard.open(ChartWizard.java:243)
> org.eclipse.birt.chart.reportitem.ui.ChartReportItemBuilderImpl.open(ChartReportItemBuilderImpl.java:288)
>
> org.eclipse.birt.report.designer.internal.ui.extension.ExtendedEditPart.performDirectEdit(ExtendedEditPart.java:185)
>
> org.eclipse.birt.report.designer.internal.ui.editors.schematic.editparts.ReportElementEditPart.performRequest(ReportElementEditPart.java:150)
>
> org.eclipse.gef.tools.SelectEditPartTracker.performOpen(SelectEditPartTracker.java:194)
>
> org.eclipse.gef.tools.SelectEditPartTracker.handleDoubleClick(SelectEditPartTracker.java:137)
>
> org.eclipse.gef.tools.AbstractTool.mouseDoubleClick(AbstractTool.java:1069)
> org.eclipse.birt.report.designer.internal.ui.editors.schematic.tools.ReportElementDragTracker.mouseDoubleClick(ReportElementDragTracker.java:125)
>
> org.eclipse.gef.tools.SelectionTool.mouseDoubleClick(SelectionTool.java:525)
>
> org.eclipse.gef.EditDomain.mouseDoubleClick(EditDomain.java:231)
> org.eclipse.gef.ui.parts.DomainEventDispatcher.dispatchMouseDoubleClicked(DomainEventDispatcher.java:291)
>
> org.eclipse.draw2d.LightweightSystem$EventHandler.mouseDoubleClick(LightweightSystem.java:518)
>
> org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:189)
> org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
> org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1053)
> org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4066)
> org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3657)
> org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2640)
> org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2604)
> org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2438)
> org.eclipse.ui.internal.Workbench$7.run(Workbench.java:671)
> org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
>
> org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:664)
> org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
> org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:115)
>
> org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
>
> org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
>
> org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
>
> org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:369)
>
> org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)
>
> sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
> sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
> java.lang.reflect.Method.invoke(Unknown Source)
> org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:620)
> org.eclipse.equinox.launcher.Main.basicRun(Main.java:575)
> org.eclipse.equinox.launcher.Main.run(Main.java:1408)



Reproducible: Always

Steps to Reproduce:
1.Create a group with an aggregation within the group header
2.Create group utilizing the following expression
>if (BirtComp.like(row["PRODUCTCODE"],"%1678")) "Group1"
> else if (BirtComp.like(row["PRODUCTCODE"],"%1949")) "Group2"
> etc
3.Create a chart utilizing the group aggregation as the Y axis and the group expression as the x axis
Finish the Chart Wizard

4.Preview Report

5.Choose Edit chart

6. The Select Data tab within the chart wizard gives you the NPE error.
Comment 1 Xiaoying Gu CLA 2012-04-16 04:36:00 EDT
Hello,

Could you please attach a sample report?
Comment 2 Heng Li CLA 2013-02-06 04:09:20 EST
Fixed by checking null case. T52858