Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

CrossTabExtractionController fails with NullPointerException if no data provided #238

Closed
longirun opened this issue Jan 14, 2020 · 0 comments
Assignees
Labels
state: fixed Fixed by the developer type: bug Something isn't working ver: 7.1.4 Fixed in version ver: 7.2.0 Fixed in version ver: 7.3.0 Fixed in version
Milestone

Comments

@longirun
Copy link

longirun commented Jan 14, 2020

java.lang.NullPointerException: null
        at java.base/java.util.ImmutableCollections$MapN.probe(ImmutableCollections.java:926) ~[na:na]
        at java.base/java.util.ImmutableCollections$MapN.get(ImmutableCollections.java:846) ~[na:na]
        at com.haulmont.yarg.reporting.extraction.controller.CrossTabExtractionController.lambda$traverseData$12(CrossTabExtractionController.java:108) ~[yarg-2.1.6.jar:na]
        at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:195) ~[na:na]
        at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1654) ~[na:na]
        at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484) ~[na:na]
        at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474) ~[na:na]
        at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:913) ~[na:na]
        at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) ~[na:na]
        at java.base/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:578) ~[na:na]
        at com.haulmont.yarg.reporting.extraction.controller.CrossTabExtractionController.traverseData(CrossTabExtractionController.java:112) ~[yarg-2.1.6.jar:na]
        at com.haulmont.yarg.reporting.extraction.controller.DefaultExtractionController.extract(DefaultExtractionController.java:63) ~[yarg-2.1.6.jar:na]
        at com.haulmont.yarg.reporting.DataExtractorImpl.createBands(DataExtractorImpl.java:99) ~[yarg-2.1.6.jar:na]
        at com.haulmont.yarg.reporting.DataExtractorImpl.extractData(DataExtractorImpl.java:71) ~[yarg-2.1.6.jar:na]
        at com.haulmont.yarg.reporting.Reporting.loadBandData(Reporting.java:143) ~[yarg-2.1.6.jar:na]
        at com.haulmont.yarg.reporting.Reporting.runReport(Reporting.java:99) ~[yarg-2.1.6.jar:na]
        at com.haulmont.yarg.reporting.Reporting.runReport(Reporting.java:83) ~[yarg-2.1.6.jar:na]
        at com.haulmont.reports.ReportingBean.createReportDocument(ReportingBean.java:346) ~[reports-core-7.1.0.jar:7.1.0]
        at com.haulmont.reports.ReportingBean.createReportDocument(ReportingBean.java:315) ~[reports-core-7.1.0.jar:7.1.0]
        at com.haulmont.reports.ReportingBean.createReport(ReportingBean.java:301) ~[reports-core-7.1.0.jar:7.1.0]
        at org.tgrealestate.service.realestate.ExportServiceImp.exportToExcel(ExportServiceImp.java:87) ~[tgrealestate-core-0.1-SNAPSHOT.jar:na]
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na]
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:na]
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na]
        at java.base/java.lang.reflect.Method.invoke(Method.java:566) ~[na:na]
        at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:343) ~[spring-aop-5.1.6.RELEASE.jar:5.1.6.RELEASE]
        at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:198) ~[spring-aop-5.1.6.RELEASE.jar:5.1.6.RELEASE]
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163) ~[spring-aop-5.1.6.RELEASE.jar:5.1.6.RELEASE]
        at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:88) ~[spring-aop-5.1.6.RELEASE.jar:5.1.6.RELEASE]
        at com.haulmont.cuba.core.sys.ServiceInterceptor.aroundInvoke(ServiceInterceptor.java:116) ~[cuba-core-7.1.2.jar:7.1.2]
...

Environment

com.haulmont.reports: 7.1.0

Description of the bug

Dataset for Band apartments is empty,
Datasets for Bands apartments_dynamic_header and apartments_master_data not empty.

Report is attached, pls find GridExportReport.zip

To reproduce the issue, do following:

  1. Edit -> Root -> apartments -> Bands
  2. Replace Band apartments returning value
return AppBeans.get('tgrealestate_GridExportReportService')
               .getApartmentsRowData(realtyObject, manager, developer, contractor)

with
return []

Replace Band apartments_dynamic_header returning value

return AppBeans.get('tgrealestate_GridExportReportService')
               .getApartmentsDynamicHeaderRowData(realtyObject, manager, developer, contractor)

with
return [['roomNum': '']]
Replace Band apartments_master_data returning value

return AppBeans.get('tgrealestate_GridExportReportService')
               .getFloorNumbers(realtyObject, manager, developer, contractor)

with
return [['floorNum': '']]
3. Run report.

AR: NullPointerException
ER: xlsx file generated

Please find possible fix in attached overriden file TgCrossTabExtractionController.zip

GridExportReport.zip

TgCrossTabExtractionController.zip

@knstvk knstvk added the type: bug Something isn't working label Jan 20, 2020
NikitaShchienko added a commit to cuba-platform/yarg that referenced this issue Jan 29, 2020
@NikitaShchienko NikitaShchienko added this to the Release 7.1 milestone Jan 29, 2020
@natfirst natfirst added ver: 7.1.4 Fixed in version ver: 7.2.0 Fixed in version ver: 7.3.0 Fixed in version state: fixed Fixed by the developer labels Jan 30, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
state: fixed Fixed by the developer type: bug Something isn't working ver: 7.1.4 Fixed in version ver: 7.2.0 Fixed in version ver: 7.3.0 Fixed in version
Projects
None yet
Development

No branches or pull requests

5 participants