Exception in EXPORTCONTENT web service call

Bogdan Kiselitsa shared this problem 11 months ago
Defect Fixed

Hi,


I've upgraded a test database to the latest 7.3 beta (yellowfin-20170516) and am testing our automated export process, which goes through all exportable content and exports it to disk via the web services. I'm seeing the following exception on one of our reports. Can send more logs if needed.


  1. YF:2017-05-25 16:40:48:ERROR (V4ExportProcess:exportAdminItemsFromExportContetModels) - Error: java.lang.NullPointerExceptionjava.lang.NullPointerException at com.hof.mi.widgetcanvas.Canvas.getAllAlerts(Canvas.java:514) at com.hof.mi.process.V4ExportProcess.A(V4ExportProcess.java:1836) at com.hof.mi.process.V4ExportProcess.exportAdminItemsFromExportContetModels(V4ExportProcess.java:312) at com.hof.mi.process.exportlist.ExportListProcess.A(ExportListProcess.java:426) at com.hof.mi.process.exportlist.ExportListProcess.exportFromList(ExportListProcess.java:56) at com.hof.mi.web.action.MIExportAjaxAction.A(MIExportAjaxAction.java:137) at com.hof.mi.web.action.MIExportAjaxAction.runAction(MIExportAjaxAction.java:68) at com.hof.web.action.AjaxAction.execute(AjaxAction.java:155) at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:425) at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:229) at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913) at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:462) at javax.servlet.http.HttpServlet.service(HttpServlet.java:650) at javax.servlet.http.HttpServlet.service(HttpServlet.java:731) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at com.hof.servlet.BrowserHeaderFilter.doFilter(BrowserHeaderFilter.java:43) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:505) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:169) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:436) at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1078) at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:625) at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:316) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.lang.Thread.run(Thread.java:748)

Comments (18)

photo
1

Hi Bogdan,


I think that the best way to diagnose this issue will be to attempt to diagnose this within the user interface. Typically with export issues, this can be narrowed down to a specific field or functionality that Yellowfin does not handle well.


  • Is there any functionality unique to this report?
  • Does it work when exported through the UI?
  • When you inspect the resultset returned through webservices prior to export is there anything out of the ordinary?


Hopefully one of these will help us narrow this down a bit.


Regards,

Nathan

photo
1

Hi,

  • Is there any functionality unique to this report?

Perhaps the Alerts on Conditional Formatting. This is the part that YF seems to have trouble with, judging by the exception.

This exception is also logged any time the report is loaded or interacted with otherwise.


  • Does it work when exported through the UI?

Exporting through the UI succeeds, but gives an invalid export file that can't then be imported again.


  • When you inspect the resultset returned through webservices prior to export is there anything out of the ordinary?

Nothing I can see.


This report worked and was exportable in an older version of Yellowifin (7.2 - 20160907), so it seems like some changes to alert handling since then have introduced the error.


Regards,

Bogdan.

photo
1

Hi Bogdan,


I think that in this case it may be worth re-building the current alert set-up, as well as removing and re-adding any other possible trouble columns. Can you send me the invalid export file so that I can see what was returned?


My hope is that you are right, and this is a one time error with the report due to changing functionality between versions.


Regards,

Nathan

photo
1

I've attached the invalid export file.

I've also checked all of the other reports in our environment, and it looks like three different reports have this same issue.

It's not a very good solution to have to rebuild the reports to fix this bug, but because it's only three, I'll see if it's possible to repair them.

photo
1

I'll also attach the log section from catalina.out from when I attempt to export one of the problem reports.

Meanwhile, I've upgraded to the general release of 7.3+ and I'm unable to find which alerts may be causing the problem.


Furthermore, I've noticed an issue with the Import process in the 7.3 UI, where I'm unable to map views and other data sources that are not present in that tenant. In this case, we have views in the Default tenant that are shared across multiple tenants, and it's possible to create a new report from any of them, but in the Import dialogue I can only see the views that are specific to that tenant, and as such am unable to complete the import from the older version of Yellowfin...


This is a major issue.


Regards,

Bogdan.

photo
1

HI Bogdan,

Thank you for the clarification and for providing the log file. Looking at the relevant error, this line sticks out:


  1. com.hof.mi.process.exportlist.ExportListDependencyProcess.getWidgetCanvasImageDependencies(ExportListDependencyProcess.java:715)

Do you have any custom images or icons on this report's canvas? Would you be interested in scheduling a time to screen-share so that I can take a closer look at this report? If so, please let me know what time works best for you. I am on United States Mountain Time.

Regarding your other two points:

While it is not an ideal solution to rebuild content, unfortunately, once content has been broken or plays badly with other content there is typically not much that we can do to repair it without some sort of manual re-creation. Additionally the more generic the error is, the more this becomes the fastest diagnostic approach.

You can still choose what content to import, and where to import it by clicking the "Customize" button in the initial import menu. Once you are in the next screen, drag the only the report into the main panel, and then click the settings button. This will allow you to specify what view and content folder you wish to use:

9ffd47d982f98f454d10bc82fe52b47c

Sorry for the inconvenience here and please let me know if this makes sense.

Regards,

Nathan

photo
1

Hi Nathan,

Just to reply to some of your points.

Do you have any custom images or icons on this report's canvas?

No, we don't. Happy to do a screenshare, but looks like your evening is our morning. What's the latest time in the evening that you can do?

While it is not an ideal solution to rebuild content, unfortunately, once content has been broken or plays badly with other content there is typically not much that we can do to repair it without some sort of manual re-creation. Additionally the more generic the error is, the more this becomes the fastest diagnostic approach.


I disagree in principle, as this looks to be a case where a once-valid report hits an edge case in the code and creates an exception. Typically this is caused by some assumptions in the code that need to be adjusted to consider new cases.

Upgrading of the software is a supported process with Yellowfin, so I would except this to be treated as a bug and raised with engineering. Particularly in this case, where a client of ours has created the report, and it would be unacceptable to ask them to recreate it because the new version broke it, and time consuming for us to recreate it without missing any functionality.


You can still choose what content to import, and where to import it by clicking the "Customize" button in the initial import menu. Once you are in the next screen, drag the only the report into the main panel, and then click the settings button. This will allow you to specify what view and content folder you wish to use:


Not sure if you got what I was saying here. I'm referring to this screen specifically, with the problem being that it's currently impossible to select the view and folder to use if they are not specific to that tenant.

Example -

We have:

View A (in Default tenant)

View B (in tenant C)

Report X depends on View A.

We import Report X to client tenant C.

However, the only view we can map it to during import is View B. Despite being available to tenant C, it is not possible to select view A during import.

The same applies to folders, etc.


Regards,

Bogdan.

photo
1

Hi Bogdan,


Would tomorrow at 5:00pm MST / 10am AEDT work for you?


I do agree that finding the root cause and accounting for it in future releases is important. However, we have yet to isolate the particular functionality that is generating this error, so the brute force method of stripping the report down and testing as each successive functionality is re-added might be our best approach at this point :)


I'm sorry I did misunderstand your point here, I will attempt to replicate this tomorrow morning.


Regards,

Nathan

photo
1

Hi Bogdan,


I have been able to confirm that you cannot select the default organization's view/data source to import on top of, and have raised a defect to address this (#6100). Since default org folders should not be accessible from a client organization I have left this off of the ticket.


Regards,

Nathan

photo
1

Thanks Nathan. And yeah you're right, the folders shouldn't appear.\


Didn't have time to do a screenshare today, but hopefully if the import problem is resolved, the reports can be fixed just by exporting from old version to new. I've already recreated one of the reports, and there seem to be no issues with it.


Regards,

Bogdan.

photo
1

Hi Bogdan,


Glad to hear. I am going to close this for now, but I will keep you updated on the status of the ticket and let me know if there is anything else you want me to look into here.


Regards,

Nathan

photo
1

Hi,


What's the status of this? It doesn't appear to be fixed yet in the latest release.

We rely on the export/import functionality to manage problems and to migrate reports between tenants, so this is current;y blocking us upgrading to 7.3...


Regards,

Bogdan.

photo
1

Hi Bogdan,

Unfortunately the dev team has not been able to get around to this issue yet. Another client has reported this as well, so it is marked as high priority in our system.

Hopefully we will be able to get it fixed soon, and sorry for the inconvenience.

Regards,

Nathan

photo
1

Hi,

Any update on this?

Regards,

Bogdan.

photo
1

Hi Bogdan,

This has been picked up by the dev team in the last couple of days and is currently under going QA testing. Hopefully this can be included in the January build.

Regards,

Nathan

photo
1

Hi,


Can you confirm if this will be in the next release? It's been 7 months since the defect has been logged now, which is pretty poor turnaround, and it's a major blocker for us to upgrade.


Regards,

Bogdan.

photo
1

HI Bogdan,

Yes this is marked as fixed and will be included in the build at the end of this month.

Sorry for the delay!

Nathan

photo
1

That's great. Thanks for the update.


Bogdan.