Reports nicht erzeugt nach Upgrade auf 1.18: "Bei der Erzeugung des Reports ist ein Fehler aufgetreten"

Hallo,
ich habe unter Ubuntu 18.04 ein manuelles Upgrade von 1.16 auf 1.18 vorgenommen. Das bisherige workspace Verzeichnis mit einem kompletten über mehrere Jahre gepflegten Bestand habe ich dabei übernommen.

Wir nutzen verinice seit mehren Jahren in der ISM Ansicht für die Risikoanalyse.

Ich führe wie immer zunächst die Risikoanalyse durch (Rechtsklick auf den Firmenverbund, dort “Risikoanalyse durchführen”), dann validiere ich zusätzlich das Hauptelement des Verbunds und gehe über “Datei > Report erzeugen” zur Report Erzeugung.

Nun erhalte ich bei der Erstellung jeglicher Reports (egal ob eigene oder Standard Reports) zunächst den Hinweis “Nicht alle Felder wurden erfolgreich validiert” und beim Fortfahren die Fehlermeldung “Es ist ein Fehler aufgetreten: Bei der Erzeugung des Reports ist ein Fehler aufgetreten”, mit dem zusätzlichen Hinweis die Logfiles “workspace/log/verinice-client.log” und “workspace/.metadata/.log” zu prüfen. Im Test verwende ich aktuell “(S) ISM: Risikobehandlung (de)” als Report, aber andere Reports funktionieren genau so wenig. Den Report Cache setze ich vorsichtshalber jedes Mal zurück.

Das workspace/.metadata/.log enthält keine Fehlermeldung in Bezug auf dieses Problem.

Im workspace/log/verince-client.log erscheinen folgende Fehler, mit denen ich wenig anfangen kann:

2019-06-05 12:26:22,632 ERROR [ModalContext] (ExceptionUtil.java:60)     - Bei der Erzeugung des Reports ist ein Fehler aufgetreten
sernet.verinice.interfaces.report.ReportTypeException: org.eclipse.birt.report.engine.api.EngineException: Cannot get the result set metadata.
    org.eclipse.datatools.connectivity.oda.OdaException ;
    Sourced file: inline evaluation of: `` import sernet.gs.ui.rcp.main.service.crudcommands.*; // set top level element f . . . '' : Unknown class: LoadPolymorphicCnAElementById : at Line: 14 : in file: inline evaluation of: `` import sernet.gs.ui.rcp.main.service.crudcommands.*; // set top level element f . . . '' : new LoadPolymorphicCnAElementById ( new Integer [ ] { 

	at sernet.verinice.report.service.impl.security.ReportExecutionThread.handleExceptionsFromTask(ReportExecutionThread.java:105)
	at sernet.verinice.report.service.impl.security.ReportExecutionThread.runUntrustedCode(ReportExecutionThread.java:83)
	at sernet.verinice.report.service.impl.security.ReportExecutionThread.run(ReportExecutionThread.java:59)
	at sernet.verinice.report.service.impl.BIRTReportService.performRenderTask(BIRTReportService.java:332)
	at sernet.verinice.report.service.impl.GenericReportType.createReport(GenericReportType.java:166)
	at sernet.verinice.report.actions.ReportAction.runUIBlockingReportGeneration(ReportAction.java:204)
	at sernet.verinice.report.actions.ReportAction.access$0(ReportAction.java:199)
	at sernet.verinice.report.actions.ReportAction$1.run(ReportAction.java:98)
	at org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.java:119)
Caused by: org.eclipse.birt.report.engine.api.EngineException: Cannot get the result set metadata.
    org.eclipse.datatools.connectivity.oda.OdaException ;
    Sourced file: inline evaluation of: `` import sernet.gs.ui.rcp.main.service.crudcommands.*; // set top level element f . . . '' : Unknown class: LoadPolymorphicCnAElementById : at Line: 14 : in file: inline evaluation of: `` import sernet.gs.ui.rcp.main.service.crudcommands.*; // set top level element f . . . '' : new LoadPolymorphicCnAElementById ( new Integer [ ] { 

	at org.eclipse.birt.report.engine.executor.ExecutionContext.addException(ExecutionContext.java:1247)
	at org.eclipse.birt.report.engine.executor.ExecutionContext.addException(ExecutionContext.java:1226)
	at org.eclipse.birt.report.engine.executor.QueryItemExecutor.executeQuery(QueryItemExecutor.java:96)
	at org.eclipse.birt.report.engine.executor.GridItemExecutor.execute(GridItemExecutor.java:65)
	at org.eclipse.birt.report.engine.executor.ReportExecutorUtil.executeAll(ReportExecutorUtil.java:87)
	at org.eclipse.birt.report.engine.executor.ReportExecutorUtil.executeAll(ReportExecutorUtil.java:92)
	at org.eclipse.birt.report.engine.executor.ReportExecutor.createPageExecutor(ReportExecutor.java:229)
	at org.eclipse.birt.report.engine.internal.executor.dup.SuppressDuplciateReportExecutor.createPageExecutor(SuppressDuplciateReportExecutor.java:61)
	at org.eclipse.birt.report.engine.internal.executor.wrap.WrappedReportExecutor.createPageExecutor(WrappedReportExecutor.java:49)
	at org.eclipse.birt.report.engine.executor.ReportExecutorUtil.executeMasterPage(ReportExecutorUtil.java:63)
	at org.eclipse.birt.report.engine.layout.html.HTMLPageLM.start(HTMLPageLM.java:147)
	at org.eclipse.birt.report.engine.layout.html.HTMLPageLM.layout(HTMLPageLM.java:91)
	at org.eclipse.birt.report.engine.layout.html.HTMLReportLayoutEngine.layout(HTMLReportLayoutEngine.java:100)
	at org.eclipse.birt.report.engine.api.impl.RunAndRenderTask.doRun(RunAndRenderTask.java:181)
	at org.eclipse.birt.report.engine.api.impl.RunAndRenderTask.run(RunAndRenderTask.java:77)
	at sernet.verinice.report.service.impl.security.ReportExecutionThread.runUntrustedCode(ReportExecutionThread.java:81)
	... 7 more
Caused by: org.eclipse.birt.data.engine.odaconsumer.OdaDataException: Cannot get the result set metadata.
    org.eclipse.datatools.connectivity.oda.OdaException ;
    Sourced file: inline evaluation of: `` import sernet.gs.ui.rcp.main.service.crudcommands.*; // set top level element f . . . '' : Unknown class: LoadPolymorphicCnAElementById : at Line: 14 : in file: inline evaluation of: `` import sernet.gs.ui.rcp.main.service.crudcommands.*; // set top level element f . . . '' : new LoadPolymorphicCnAElementById ( new Integer [ ] { 

	at org.eclipse.birt.data.engine.odaconsumer.ExceptionHandler.newException(ExceptionHandler.java:52)
	at org.eclipse.birt.data.engine.odaconsumer.ExceptionHandler.throwException(ExceptionHandler.java:108)
	at org.eclipse.birt.data.engine.odaconsumer.ExceptionHandler.throwException(ExceptionHandler.java:84)
	at org.eclipse.birt.data.engine.odaconsumer.PreparedStatement.getRuntimeMetaData(PreparedStatement.java:414)
	at org.eclipse.birt.data.engine.odaconsumer.PreparedStatement.getProjectedColumns(PreparedStatement.java:377)
	at org.eclipse.birt.data.engine.odaconsumer.PreparedStatement.doGetMetaData(PreparedStatement.java:347)
	at org.eclipse.birt.data.engine.odaconsumer.PreparedStatement.execute(PreparedStatement.java:563)
	at org.eclipse.birt.data.engine.executor.DataSourceQuery.execute(DataSourceQuery.java:980)
	at org.eclipse.birt.data.engine.impl.PreparedOdaDSQuery$OdaDSQueryExecutor.executeOdiQuery(PreparedOdaDSQuery.java:607)
	at org.eclipse.birt.data.engine.impl.QueryExecutor.execute(QueryExecutor.java:1251)
	at org.eclipse.birt.data.engine.impl.ServiceForQueryResults.executeQuery(ServiceForQueryResults.java:233)
	at org.eclipse.birt.data.engine.impl.QueryResults.getResultIterator(QueryResults.java:178)
	at org.eclipse.birt.report.engine.data.dte.QueryResultSet.<init>(QueryResultSet.java:98)
	at org.eclipse.birt.report.engine.data.dte.DteDataEngine.doExecuteQuery(DteDataEngine.java:168)
	at org.eclipse.birt.report.engine.data.dte.AbstractDataEngine.execute(AbstractDataEngine.java:286)
	at org.eclipse.birt.report.engine.executor.ExecutionContext.executeQuery(ExecutionContext.java:1949)
	at org.eclipse.birt.report.engine.executor.QueryItemExecutor.executeQuery(QueryItemExecutor.java:80)
	... 20 more
Caused by: org.eclipse.datatools.connectivity.oda.OdaException ;
    Sourced file: inline evaluation of: `` import sernet.gs.ui.rcp.main.service.crudcommands.*; // set top level element f . . . '' : Unknown class: LoadPolymorphicCnAElementById : at Line: 14 : in file: inline evaluation of: `` import sernet.gs.ui.rcp.main.service.crudcommands.*; // set top level element f . . . '' : new LoadPolymorphicCnAElementById ( new Integer [ ] { 

	at sernet.verinice.oda.driver.impl.Query.setTargetErrorAsCause(Query.java:434)
	at sernet.verinice.oda.driver.impl.Query.runQuery(Query.java:418)
	at sernet.verinice.oda.driver.impl.Query.getMetaData(Query.java:382)
	at org.eclipse.datatools.connectivity.oda.consumer.helper.OdaQuery.doGetMetaData(OdaQuery.java:423)
	at org.eclipse.datatools.connectivity.oda.consumer.helper.OdaQuery.getMetaData(OdaQuery.java:390)
	at org.eclipse.birt.data.engine.odaconsumer.PreparedStatement.getRuntimeMetaData(PreparedStatement.java:407)
	... 33 more
Caused by: Sourced file: inline evaluation of: `` import sernet.gs.ui.rcp.main.service.crudcommands.*; // set top level element f . . . '' : Unknown class: LoadPolymorphicCnAElementById : at Line: 14 : in file: inline evaluation of: `` import sernet.gs.ui.rcp.main.service.crudcommands.*; // set top level element f . . . '' : new LoadPolymorphicCnAElementById ( new Integer [ ] { 

	at bsh.BSHAllocationExpression.objectAllocation(Unknown Source)
	at bsh.BSHAllocationExpression.eval(Unknown Source)
	at bsh.BSHPrimaryExpression.eval(Unknown Source)
	at bsh.BSHPrimaryExpression.eval(Unknown Source)
	at bsh.BSHAssignment.eval(Unknown Source)
	at bsh.Interpreter.eval(Unknown Source)
	at bsh.Interpreter.eval(Unknown Source)
	at bsh.Interpreter.eval(Unknown Source)
	at sernet.verinice.oda.driver.impl.Query.doRunQuery(Query.java:425)
	at sernet.verinice.oda.driver.impl.Query.runQuery(Query.java:416)
	... 37 more
2019-06-05 12:35:23,384 ERROR [ModalContext] (ExceptionUtil.java:60)     - Bei der Erzeugung des Reports ist ein Fehler aufgetreten
sernet.verinice.interfaces.report.ReportTypeException: org.eclipse.birt.report.engine.api.EngineException: Cannot get the result set metadata.
    org.eclipse.datatools.connectivity.oda.OdaException ;
    Sourced file: inline evaluation of: `` import sernet.gs.ui.rcp.main.service.crudcommands.*; // set top level element f . . . '' : Unknown class: LoadPolymorphicCnAElementById : at Line: 14 : in file: inline evaluation of: `` import sernet.gs.ui.rcp.main.service.crudcommands.*; // set top level element f . . . '' : new LoadPolymorphicCnAElementById ( new Integer [ ] { 

	at sernet.verinice.report.service.impl.security.ReportExecutionThread.handleExceptionsFromTask(ReportExecutionThread.java:105)
	at sernet.verinice.report.service.impl.security.ReportExecutionThread.runUntrustedCode(ReportExecutionThread.java:83)
	at sernet.verinice.report.service.impl.security.ReportExecutionThread.run(ReportExecutionThread.java:59)
	at sernet.verinice.report.service.impl.BIRTReportService.performRenderTask(BIRTReportService.java:332)
	at sernet.verinice.report.service.impl.GenericReportType.createReport(GenericReportType.java:166)
	at sernet.verinice.report.actions.ReportAction.runUIBlockingReportGeneration(ReportAction.java:204)
	at sernet.verinice.report.actions.ReportAction.access$0(ReportAction.java:199)
	at sernet.verinice.report.actions.ReportAction$1.run(ReportAction.java:98)
	at org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.java:119)
Caused by: org.eclipse.birt.report.engine.api.EngineException: Cannot get the result set metadata.
    org.eclipse.datatools.connectivity.oda.OdaException ;
    Sourced file: inline evaluation of: `` import sernet.gs.ui.rcp.main.service.crudcommands.*; // set top level element f . . . '' : Unknown class: LoadPolymorphicCnAElementById : at Line: 14 : in file: inline evaluation of: `` import sernet.gs.ui.rcp.main.service.crudcommands.*; // set top level element f . . . '' : new LoadPolymorphicCnAElementById ( new Integer [ ] { 

	at org.eclipse.birt.report.engine.executor.ExecutionContext.addException(ExecutionContext.java:1247)
	at org.eclipse.birt.report.engine.executor.ExecutionContext.addException(ExecutionContext.java:1226)
	at org.eclipse.birt.report.engine.executor.QueryItemExecutor.executeQuery(QueryItemExecutor.java:96)
	at org.eclipse.birt.report.engine.executor.GridItemExecutor.execute(GridItemExecutor.java:65)
	at org.eclipse.birt.report.engine.executor.ReportExecutorUtil.executeAll(ReportExecutorUtil.java:87)
	at org.eclipse.birt.report.engine.executor.ReportExecutorUtil.executeAll(ReportExecutorUtil.java:92)
	at org.eclipse.birt.report.engine.executor.ReportExecutor.createPageExecutor(ReportExecutor.java:229)
	at org.eclipse.birt.report.engine.internal.executor.dup.SuppressDuplciateReportExecutor.createPageExecutor(SuppressDuplciateReportExecutor.java:61)
	at org.eclipse.birt.report.engine.internal.executor.wrap.WrappedReportExecutor.createPageExecutor(WrappedReportExecutor.java:49)
	at org.eclipse.birt.report.engine.executor.ReportExecutorUtil.executeMasterPage(ReportExecutorUtil.java:63)
	at org.eclipse.birt.report.engine.layout.html.HTMLPageLM.start(HTMLPageLM.java:147)
	at org.eclipse.birt.report.engine.layout.html.HTMLPageLM.layout(HTMLPageLM.java:91)
	at org.eclipse.birt.report.engine.layout.html.HTMLReportLayoutEngine.layout(HTMLReportLayoutEngine.java:100)
	at org.eclipse.birt.report.engine.api.impl.RunAndRenderTask.doRun(RunAndRenderTask.java:181)
	at org.eclipse.birt.report.engine.api.impl.RunAndRenderTask.run(RunAndRenderTask.java:77)
	at sernet.verinice.report.service.impl.security.ReportExecutionThread.runUntrustedCode(ReportExecutionThread.java:81)
	... 7 more
Caused by: org.eclipse.birt.data.engine.odaconsumer.OdaDataException: Cannot get the result set metadata.
    org.eclipse.datatools.connectivity.oda.OdaException ;
    Sourced file: inline evaluation of: `` import sernet.gs.ui.rcp.main.service.crudcommands.*; // set top level element f . . . '' : Unknown class: LoadPolymorphicCnAElementById : at Line: 14 : in file: inline evaluation of: `` import sernet.gs.ui.rcp.main.service.crudcommands.*; // set top level element f . . . '' : new LoadPolymorphicCnAElementById ( new Integer [ ] { 

	at org.eclipse.birt.data.engine.odaconsumer.ExceptionHandler.newException(ExceptionHandler.java:52)
	at org.eclipse.birt.data.engine.odaconsumer.ExceptionHandler.throwException(ExceptionHandler.java:108)
	at org.eclipse.birt.data.engine.odaconsumer.ExceptionHandler.throwException(ExceptionHandler.java:84)
	at org.eclipse.birt.data.engine.odaconsumer.PreparedStatement.getRuntimeMetaData(PreparedStatement.java:414)
	at org.eclipse.birt.data.engine.odaconsumer.PreparedStatement.getProjectedColumns(PreparedStatement.java:377)
	at org.eclipse.birt.data.engine.odaconsumer.PreparedStatement.doGetMetaData(PreparedStatement.java:347)
	at org.eclipse.birt.data.engine.odaconsumer.PreparedStatement.execute(PreparedStatement.java:563)
	at org.eclipse.birt.data.engine.executor.DataSourceQuery.execute(DataSourceQuery.java:980)
	at org.eclipse.birt.data.engine.impl.PreparedOdaDSQuery$OdaDSQueryExecutor.executeOdiQuery(PreparedOdaDSQuery.java:607)
	at org.eclipse.birt.data.engine.impl.QueryExecutor.execute(QueryExecutor.java:1251)
	at org.eclipse.birt.data.engine.impl.ServiceForQueryResults.executeQuery(ServiceForQueryResults.java:233)
	at org.eclipse.birt.data.engine.impl.QueryResults.getResultIterator(QueryResults.java:178)
	at org.eclipse.birt.report.engine.data.dte.QueryResultSet.<init>(QueryResultSet.java:98)
	at org.eclipse.birt.report.engine.data.dte.DteDataEngine.doExecuteQuery(DteDataEngine.java:168)
	at org.eclipse.birt.report.engine.data.dte.AbstractDataEngine.execute(AbstractDataEngine.java:286)
	at org.eclipse.birt.report.engine.executor.ExecutionContext.executeQuery(ExecutionContext.java:1949)
	at org.eclipse.birt.report.engine.executor.QueryItemExecutor.executeQuery(QueryItemExecutor.java:80)
	... 20 more
Caused by: org.eclipse.datatools.connectivity.oda.OdaException ;
    Sourced file: inline evaluation of: `` import sernet.gs.ui.rcp.main.service.crudcommands.*; // set top level element f . . . '' : Unknown class: LoadPolymorphicCnAElementById : at Line: 14 : in file: inline evaluation of: `` import sernet.gs.ui.rcp.main.service.crudcommands.*; // set top level element f . . . '' : new LoadPolymorphicCnAElementById ( new Integer [ ] { 

	at sernet.verinice.oda.driver.impl.Query.setTargetErrorAsCause(Query.java:434)
	at sernet.verinice.oda.driver.impl.Query.runQuery(Query.java:418)
	at sernet.verinice.oda.driver.impl.Query.getMetaData(Query.java:382)
	at org.eclipse.datatools.connectivity.oda.consumer.helper.OdaQuery.doGetMetaData(OdaQuery.java:423)
	at org.eclipse.datatools.connectivity.oda.consumer.helper.OdaQuery.getMetaData(OdaQuery.java:390)
	at org.eclipse.birt.data.engine.odaconsumer.PreparedStatement.getRuntimeMetaData(PreparedStatement.java:407)
	... 33 more
Caused by: Sourced file: inline evaluation of: `` import sernet.gs.ui.rcp.main.service.crudcommands.*; // set top level element f . . . '' : Unknown class: LoadPolymorphicCnAElementById : at Line: 14 : in file: inline evaluation of: `` import sernet.gs.ui.rcp.main.service.crudcommands.*; // set top level element f . . . '' : new LoadPolymorphicCnAElementById ( new Integer [ ] { 

	at bsh.BSHAllocationExpression.objectAllocation(Unknown Source)
	at bsh.BSHAllocationExpression.eval(Unknown Source)
	at bsh.BSHPrimaryExpression.eval(Unknown Source)
	at bsh.BSHPrimaryExpression.eval(Unknown Source)
	at bsh.BSHAssignment.eval(Unknown Source)
	at bsh.Interpreter.eval(Unknown Source)
	at bsh.Interpreter.eval(Unknown Source)
	at bsh.Interpreter.eval(Unknown Source)
	at sernet.verinice.oda.driver.impl.Query.doRunQuery(Query.java:425)
	at sernet.verinice.oda.driver.impl.Query.runQuery(Query.java:416)
	... 37 more

Habe ich beim Upgrade etwas übersehen? Weder das Handbuch noch das Forum geben Hinweise

Bei Aktivierung des Report-Logs (Debug) landen im Report Log auch die o.g. Fehlermeldungen.

Vielen Dank

Hallo xero,

vielleicht hilft Fehler beim Erzeugen von Reports nach verinice-Update weiter?

1 „Gefällt mir“

Vielen Dank für die schnelle Rückmeldung.

Diese Lösung hat tatsächlich für die o.g. Fehlermeldung geholfen.

Zunächst bin ich noch auf ein weiteres Problem gestossen, was dazu führte, dass die individuellen Reports trotz vorhandener *.rptdesign Dateien nicht angezeigt wurden. Die Lösung war das Löschen der *.properties Dateien, danach wurden die Reports wieder im Dropdown gelistet.

Einige unserer Vorlagen funktionieren nun, andere schlagen weiterhin mit der im Titel genannten Meldung fehl. Diesmal aber aufgrund eines Fehlers im Zusammenhang mit RiskAnalysisService.RISK_PRE_CONTROLS.

2019-06-05 19:16:20,883 ERROR [ModalContext] (ExceptionUtil.java:60)     - Bei der Erzeugung des Reports ist ein Fehler aufgetreten
sernet.verinice.interfaces.report.ReportTypeException: org.eclipse.birt.report.engine.api.EngineException: An exception occurred during processing. Please see the following message for details:
Failed to prepare the query execution for the data set: assetTrafficLightsPreControls
Cannot get the result set metadata.
    org.eclipse.datatools.connectivity.oda.OdaException ;
    Sourced file: inline evaluation of: ``import sernet.hui.common.*; import sernet.verinice.service.commands.crud.*; impo . . . '' : Class or variable not found: IRiskAnalysisService.RISK_PRE_CONTROLS : at Line: 22 : in file: inline evaluation of: ``import sernet.hui.common.*; import sernet.verinice.service.commands.crud.*; impo . . . '' : IRiskAnalysisService .RISK_PRE_CONTROLS 

Lässt sich dies auch durch eine Anpassung eines imports zum Laufen bringen?

Gibt es vielleicht sogar irgendwo eine Übersicht, wo man solche Änderungen einsehen kann? Ein ChangeLog habe ich im verinice-lin64.zip leider nicht gefunden.

Ja, bei einigen Reports sind noch weitere Anpassungen nötig, in den jeweiligen Templates müssen noch alle Vorkommen von “IRiskAnalysisService” durch
“RiskAnalysisHelper” ersetzt werden. Ich ergänze den Knowledge-Base-Artikel noch entsprechend.

Die Liste der Änderungen pro Version gibt es unter https://verinice.com/support/release-notes/, leider fehlt dort ein Hinweis auf die Inkompatibilität der Reports. Das Forum ist tatsächlich für die Lösungsfindung oft hilfreicher und ergiebiger.

Hallo jkemnade,

danke für die Ergänzungen.

Nach dem Austausch aller vier Ausdrücke aus Fehler beim Erzeugen von Reports nach verinice-Update, scheint der Aufruf von RiskAnalysisHelperImpl weiterhin noch unbekannt zu sein oder könnte ich noch etwas übersehen haben?

2019-06-17 13:47:38,092 ERROR [ModalContext] (ExceptionUtil.java:60)     - Bei der Erzeugung des Reports ist ein Fehler aufgetreten
sernet.verinice.interfaces.report.ReportTypeException: org.eclipse.birt.report.engine.api.EngineException: An exception occurred during processing. Please see the following message for details:
Failed to prepare the query execution for the data set: assetTrafficLightsPreControls
Cannot get the result set metadata.
    org.eclipse.datatools.connectivity.oda.OdaException ;
    Sourced file: inline evaluation of: ``import sernet.hui.common.*; import sernet.verinice.service.commands.crud.*; impo . . . '' : Unknown class: RiskAnalysisHelperImpl : at Line: 48 : in file: inline evaluation of: ``import sernet.hui.common.*; import sernet.verinice.service.commands.crud.*; impo . . . '' : new RiskAnalysisHelperImpl ( )

Nein, ich habe noch etwas übersehen, es sind noch mehr Anpassungen nötig, ich habe Fehler beim Erzeugen von Reports nach verinice-Update dempentsprechend ergänzt (ab Zeile 5 der Tabelle).

Super, vielen Dank. Damit scheint das Problem gelöst zu sein und die Reports werden wieder korrekt generiert. Damit kann dieser Beitrag geschlossen werden.