Error while editing the report

Jhansi Kommineni shared this problem 1 year ago
Defect Fixed

Hi,


Our clienta are getting error while editing some of their custom reports(Reports are creating by the clients). They are getting "Oh No!.."error while editing their reports.


The error log saying that Filter Id not found and Null pointer exception. The filter id not exist in ReportFilter, CachedFilter tables, But exists in ReportFormat table. That might be the reason for null pointer exception.


Can you please let me know, In which scenario the record(Filter) will be removed from the ReportFilter, CachedFilter,.. tables and will not be removed from ReportFormat table.


The workaround as of now I am doing is: I will export and reimport the report, that is solving the issue. But now a days its increased the number of cases.


So I thought of bringing this to your attention for some idea. I am not sure whether you are supporting 7.1 or not, but this is for to get some information.


Below is the error log:

YF:2017-08-22 11:24:42:ERROR (CachedFilterProcess:B) - Filter Id not found: 699358

YF:2017-08-22 11:24:42:ERROR (CopyReportProcess:copyReport) - Error: java.lang.NullPointerException

java.lang.NullPointerException

at com.hof.mi.util.CachedFilterCache.getCachedFilter(CachedFilterCache.java:1376)

at com.hof.mi.util.CachedFilterCache.getCachedFilterQuery(CachedFilterCache.java:2334)

at com.hof.mi.util.CachedFilterCache.getCachedFilterQuery(CachedFilterCache.java:2210)

at com.hof.mi.process.CopyReportProcess.A(CopyReportProcess.java:944)

at com.hof.mi.process.CopyReportProcess.copyReport(CopyReportProcess.java:339)

at com.hof.mi.process.MIReportProcess.cloneReport(MIReportProcess.java:3732)

at com.hof.mi.web.action.MIReportsAction.A(MIReportsAction.java:1782)

at com.hof.mi.web.action.MIReportsAction.execute(MIReportsAction.java:1430)

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:637)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)

at com.hof.servlet.BrowserHeaderFilter.doFilter(BrowserHeaderFilter.java:43)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)

at com.tramada.servlet.TramadaYFp3pFilter.doFilter(TramadaYFp3pFilter.java:38)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)

at com.tramada.servlet.TramadaYFp3pFilter.doFilter(TramadaYFp3pFilter.java:38)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)

at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)

at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)

at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)

at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)

at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)

at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)

at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:190)

at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:291)

at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:776)

at org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:705)

at org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:898)

at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:690)

at java.lang.Thread.run(Thread.java:745)

System Information:

System Information

Application Version:7.1

Build:20160728

Java Version:1.7.0_80

Operating System:Linux 2.6.32-642.1.1.el6.x86_64 (amd64)


Thanks

Jhansi.

Comments (25)

photo
1

Hi Jahnsi,


The lack of this filter in the reportfilter table will definitely trigger this nullpointer. However, there is no reason why this would be removed from the table.

  • What type of filter is this (cached, manual query, etc)?
  • Is there any correlation between the reports that this occurs on (same filter field, same view, etc)?


We do still support 7.1, meaning that we will answer your questions and try to solve problems, but we are no longer patching this so if you found a bug, it will not be fixed in 7.1.

I am not sure if this will directly effect this issue, but is upgrading a possibility?


Regards,

Nathan

photo
1

Hi Nathan,


Thanks for your reply. I am not sure about the type of filter as it is developed by client and now we don't have the records in Report Filter, CachedFilter, TextEntity,.. Except in ReportFormat table. But I think we can get some information from ReportFormat table and attached is the table for your reference.


Of my understanding the report is build based on 2 different views(Append Query) and there will be no relation to other reports. Attached is the report XML. FYI. I can run the report but can't edit the report.


As I said earlier, If I export and import the same report then I can edit the report. Attached is the Report XML for your reference


Thanks

Jhansi

photo
photo
1

Hi Jhansi,


Im sorry, I guess I am a little confused here. If you already have a way to edit the report, what is the problem we are addressing?


Does this newly imported report become impossible to edit after saving?


Looking at the report format table you provided, it appears that this is a custom query on demand filter. To get in and edit this without importing, you could probably just switch the filter type to be user prompt, temporarily. But before I elaborate a bit on this, I think it would be best to clarify what the end goal is here.


Regards,

Nathan

photo
1

Hi Nathan,


I can't edit the the report now. As I mentioned I am getting null pointer exception error(Filter Id not found). Now a days these cases are more.


So temporary workaround for such cases What I am doing is, export the same report and import it again then I can edit it. But We need address the actual issue not to occur in future


Thanks

Jhansi

photo
1

HI Jhansi,


I think that the key here is figuring out what these broken reports have in common and what initially triggers the break:


Do all of these reports use custom query filters?

Are they built off of stored procedure views?

Are they broadcasted?

Are they used on dashboards?


Do these stop working randomly, after a set period of time, after editing the report and saving it, after refreshes, etc?


Regards,

Nathan

photo
1

Hi Nathan,

Sorry for the late reply. Here are responses to your queries.


Do all of these reports use custom query filters?


No, not all are custom query filters. Some are Date fields, hard coded value and Custom Query cached on demand.(out of 14, 2- hardcoded, 5-Dates, 2-user prompts,5 - Custom Query cached on demand)

Are they built off of stored procedure views?no, all are drag and drop views

Are they broadcasted?

Yes

Are they used on dashboards?

No

Do these stop working randomly, after a set period of time, after editing the report and saving it, after refreshes, etc?

Client has advised for that the error occurred immediately after making the changes and savings as she had forgotten something. She tried this twice and it happened after the same scenario. Immediately after making changes to the report.


Thanks

Jhansi

photo
1

Hi Jhansi,

This is certainly odd. One thing to note is that we did have problem with report formatting not being applied correctly, when a client edited a report at the same time as they experienced a connection issues (2016 7.1 builds like this client).

I cannot guarantee that this will solve anything, but is upgrading a possibility here?

Regards,

Nathan

photo
1

Hi.

Yes. We had a plan to upgrade. We are having some issues while upgrading hence we kept the upgrade on hold for some time.

Thanks

Jhansi

photo
photo
1

Hi Jhansi,

Unfortunately this does sound to be a bug, and since we are no longer releasing patches for 7.1, any fix will need to be done in 7.3. I think the best option here is to upgrade the instance, at which point we can re-evaluate this problem.

If we are still facing issues, the next step will be to gather a configuration database for your instance so that we can replicate the entire environment on our end.

Let me know your thoughts here.

Regards,

Nathan

photo
1

Hi Nathan,

I feel the same to upgrade the environment and see how the issue goes in 7.3. If the issue still exists in 7.3 then I will send you the configuration database to replicate the issue. Even I can't replicate the issue in our development environment which is on 7.1.

Thanks for your time.


Thanks

Jhansi

photo
1

Hi Jhansi,

Sounds good, I am going to set this to closed for now, but when you reply the case will be automatically re-opened. Let me know if you have any problems in the meantime.

Regards,

Nathan

photo
1

Hi Nathan,

Finally I replicated the issue in 7.3 as well. I am getting Oh no! error while copying the existing report. The errors occurs when the report is having Dependent Filters and when you removed the child filter upon copying the report. Attached is the Report XML which is based on Skiteam data source. So its easy for you to replicate the issue.


Below are the steps to replicate the issue.


1. create the report "ABC" with the dependent filters. Attahced is the report "Test Dependent Filter" based on ski team data source where country filter is Dependent On Region filter.

2. Save the Report "ABC".

3. Copy the report

4. Remove the Dependent Filter i.e child filter, In the attached XML, remove the Country Filter

5. Save the copied report "XYZ". Report will run successfully

6. Now If we try to edit the report "XYZ" oh no! error occurs.


below is the system information:

System InformationApplication Version:7.3Build:20170523Java Version:1.7.0_80Operating System:Linux 2.6.32-642.3.1.el6.x86_64 (amd64)

photo
1

Awesome replication information thank you.

I have raised this as a defect:

YFN-10078

In the meantime, you can avoid this by removing the parent filter's link to the child filter before saving. This should also be possible through the config DB if you currently have any reports that are inaccessible.

Regards,

Nathan

photo
1

Hi Nathan,

Thanks for logging the defect.

Regards

Jhansi

photo
1

Hi Nathan,

Can you please advise a tentative timeline for this defect to be resolved by development? This bug affects many of our clients, especially those that have edit access on reports.

Regards,

Gavin Rodrigues

Business Analyst

Tramada Systems

photo
1

Hi Gavin,

Unfortunately there has been no action on this ticket yet. I have noted its importance to you and it is currently raised as "High" priority.

That said, I was not able to replicate this in my tests on the latest 7.4, are you able to test a fresh 7.4 installation and see if this issue applies there for you as well?

Nathan

photo
photo
1

Just want to mention that I'm running into this issue in 7.3 build 20180226 as well.

Regards,

Alex

photo
1

Thanks Alex,

It is currently set as "high" priority. I will update this ticket when there is action on the JIRA task.

photo
1

Hi Nathan,

Do we have a workaround to mitigate the effects of this bug?

We've been having a difficult time editing and importing reports. We are entering the final phase of development where we are actively editing reports and importing fixes from development instances on daily basis, and this bug is in the way.

Regards,

Alex

photo
1

Hi Alex,

I will dig into this a bit today and see if there is a work around.

Nathan

photo
1

Hi Alex,

I just wanted to let you know that In my tests on the most recent branch of 7.4, this issue no longer exists. I will need to do a bit of setup to look for workarounds on the specific 7.3 build, but it appears that this issue has fixed itself (there is no action on the JIRA ticket)

That said, the work flow that lead to this error is quite elaborate, is there no way to avoid this process on your end? One thought is that you might be able to work around this by removing both parent and child filters in the report builder after the initial edit.

I am having a hard time finding the exact stack-trace generated. Do you have it by any chance?

Nathan

photo
1

Hi Nathan,

I've created a ticket for this issue, let's continue the conversation on https://community.yellowfinbi.com/ticket/8373.

Best wishes,

Alex

photo
1

Hi Alex and Nathan,

can you let me know if there has been any movement on this issue? Can I assume it is fixed on either version 7.3 or 7.4?

Cheers Peter

photo
1

Hi Peter,


I have conferred with Nathan, who confirmed the issue has been resolved in 7.4.


Thanks,

Eric

photo
1

Thank you.


Cheers Peter

photo