[
https://issues.jboss.org/browse/JBIDE-11584?page=com.atlassian.jira.plugi...
]
Tomas Vala commented on JBIDE-11584:
------------------------------------
Well I have done some investigation on my own and managed to find root of the problem.
Class org.jboss.tools.birt.oda.impl.Parameter makes use of deprecated and now unsupported
Hibernate API. See below.
Fragment of Parameter.java
{noformat}
static {
hibernateTypes.put(StringType, Hibernate.STRING);
hibernateTypes.put(IntegerType, Hibernate.INTEGER);
hibernateTypes.put(DoubleType, Hibernate.DOUBLE);
hibernateTypes.put(BigDecimalType, Hibernate.BIG_DECIMAL);
hibernateTypes.put(DateType, Hibernate.DATE);
hibernateTypes.put(TimeType, Hibernate.TIME);
hibernateTypes.put(TimestampType, Hibernate.TIMESTAMP);
hibernateTypes.put(BooleanType, Hibernate.BOOLEAN);
}
{noformat}
Should be modified to ...:
{noformat}
static {
hibernateTypes.put(StringType, StandardBasicTypes.STRING);
hibernateTypes.put(IntegerType, StandardBasicTypes.INTEGER);
hibernateTypes.put(DoubleType, StandardBasicTypes.DOUBLE);
hibernateTypes.put(BigDecimalType, StandardBasicTypes.BIG_DECIMAL);
hibernateTypes.put(DateType, StandardBasicTypes.DATE);
hibernateTypes.put(TimeType, StandardBasicTypes.TIME);
hibernateTypes.put(TimestampType, StandardBasicTypes.TIMESTAMP);
hibernateTypes.put(BooleanType, StandardBasicTypes.BOOLEAN);
}
{noformat}
... in order to comply with Hibernate 3.6+ API. Please note that refered class
StandardBasicTypes does not exist in pre-3.6, hence you may want be aware of that if
intending to support both pre-3.6 and post-3.6 Hibernate APIs in your JBoss BIRT
Integration module.
Any chance that a fix similar to this proposal becomes available in a stable or
development repository in a timely fashion?
Cheers,
Tomas
JBOSS BIRT Integration compatibility issue with Hibernate 3.6+
--------------------------------------------------------------
Key: JBIDE-11584
URL:
https://issues.jboss.org/browse/JBIDE-11584
Project: Tools (JBoss Tools)
Issue Type: Bug
Components: birt
Environment: JBoss BIRT Integration version 1.2.0.v20111025-0413-H201-Final
JBoss BIRT Integration version 1.3.0.v20120413-0659-H849-Beta3
JBoss Hibernate version 3.6.10.Final
BIRT Runtime version 3.7.1
Spring version 3.1.0.RELEASE
Reporter: Tomas Vala
Assignee: Snjezana Peco
Labels: birt, oda
BIRT report design utilizing Hibernate DataSource/DataSet with query parameter(s) will
trigger below listed error and fail.
This is believed to be consequence of this incompatible change in Hibernate 3.6, see
http://opensource.atlassian.com/projects/hibernate/browse/HHH-5138
Outcome of several test runs:
Hibernate 3.5.6 + BIRT Report w/o query parameter = OK
Hibernate 3.5.6 + BIRT Report with query parameter = OK
Hibernate 3.6.7 + BIRT Report w/o query parameter = OK
Hibernate 3.6.7 + BIRT Report with query parameter = ERROR
Hibernate 3.6.10 + BIRT Report w/o query parameter = OK
Hibernate 3.6.10 + BIRT Report with query parameter = ERROR
Tested with both stable and development versions of JBoss BIRT Integration jar (1.2.0,
1.3.0) - doesn't seem to have any impact on outcome.
19.4.2012 12:15:33 org.eclipse.birt.report.engine.api.impl.RunAndRenderTask doRun
SEVERE: Error happened while running the report.
java.lang.NoSuchFieldError: STRING
at org.jboss.tools.birt.oda.impl.Parameter.<clinit>(Parameter.java:26)
at
org.jboss.tools.birt.oda.impl.HibernateOdaQuery.setString(HibernateOdaQuery.java:220)
at
org.eclipse.datatools.connectivity.oda.consumer.helper.OdaQuery.setString(OdaQuery.java:738)
at
org.eclipse.birt.data.engine.odaconsumer.PreparedStatement.doSetString(PreparedStatement.java:4310)
at
org.eclipse.birt.data.engine.odaconsumer.PreparedStatement.setString(PreparedStatement.java:3919)
at
org.eclipse.birt.data.engine.odaconsumer.PreparedStatement.setParameterValue(PreparedStatement.java:3134)
at
org.eclipse.birt.data.engine.odaconsumer.PreparedStatement.setParameterValue(PreparedStatement.java:3070)
at
org.eclipse.birt.data.engine.executor.DataSourceQuery.setInputParameterBinding(DataSourceQuery.java:1124)
at
org.eclipse.birt.data.engine.executor.DataSourceQuery.addParameterDefns(DataSourceQuery.java:572)
at
org.eclipse.birt.data.engine.executor.DataSourceQuery.prepare(DataSourceQuery.java:290)
at
org.eclipse.birt.data.engine.impl.PreparedOdaDSQuery$OdaDSQueryExecutor.prepareOdiQuery(PreparedOdaDSQuery.java:455)
at
org.eclipse.birt.data.engine.impl.QueryExecutor.prepareExecution(QueryExecutor.java:341)
at org.eclipse.birt.data.engine.impl.PreparedQuery.doPrepare(PreparedQuery.java:455)
at
org.eclipse.birt.data.engine.impl.PreparedDataSourceQuery.produceQueryResults(PreparedDataSourceQuery.java:190)
at
org.eclipse.birt.data.engine.impl.PreparedDataSourceQuery.execute(PreparedDataSourceQuery.java:178)
at
org.eclipse.birt.data.engine.impl.PreparedOdaDSQuery.execute(PreparedOdaDSQuery.java:145)
at
org.eclipse.birt.report.data.adapter.impl.DataRequestSessionImpl.execute(DataRequestSessionImpl.java:620)
at
org.eclipse.birt.report.engine.data.dte.DteDataEngine.doExecuteQuery(DteDataEngine.java:152)
at
org.eclipse.birt.report.engine.data.dte.AbstractDataEngine.execute(AbstractDataEngine.java:267)
at
org.eclipse.birt.report.engine.executor.ExecutionContext.executeQuery(ExecutionContext.java:1905)
at
org.eclipse.birt.report.engine.executor.QueryItemExecutor.executeQuery(QueryItemExecutor.java:80)
at
org.eclipse.birt.report.engine.executor.DataItemExecutor.execute(DataItemExecutor.java:75)
at
org.eclipse.birt.report.engine.internal.executor.dup.SuppressDuplicateItemExecutor.execute(SuppressDuplicateItemExecutor.java:43)
at
org.eclipse.birt.report.engine.internal.executor.wrap.WrappedReportItemExecutor.execute(WrappedReportItemExecutor.java:46)
at
org.eclipse.birt.report.engine.internal.executor.l18n.LocalizedReportItemExecutor.execute(LocalizedReportItemExecutor.java:34)
at
org.eclipse.birt.report.engine.layout.html.HTMLBlockStackingLM.layoutNodes(HTMLBlockStackingLM.java:65)
at
org.eclipse.birt.report.engine.layout.html.HTMLStackingLM.layoutChildren(HTMLStackingLM.java:26)
at
org.eclipse.birt.report.engine.layout.html.HTMLAbstractLM.layout(HTMLAbstractLM.java:140)
at
org.eclipse.birt.report.engine.layout.html.HTMLInlineStackingLM.resumeLayout(HTMLInlineStackingLM.java:111)
at
org.eclipse.birt.report.engine.layout.html.HTMLInlineStackingLM.layoutNodes(HTMLInlineStackingLM.java:160)
at
org.eclipse.birt.report.engine.layout.html.HTMLStackingLM.layoutChildren(HTMLStackingLM.java:26)
at
org.eclipse.birt.report.engine.layout.html.HTMLAbstractLM.layout(HTMLAbstractLM.java:140)
at
org.eclipse.birt.report.engine.layout.html.HTMLBlockStackingLM.layoutNodes(HTMLBlockStackingLM.java:70)
at
org.eclipse.birt.report.engine.layout.html.HTMLStackingLM.layoutChildren(HTMLStackingLM.java:26)
at
org.eclipse.birt.report.engine.layout.html.HTMLTableLM.layoutChildren(HTMLTableLM.java:132)
at
org.eclipse.birt.report.engine.layout.html.HTMLAbstractLM.layout(HTMLAbstractLM.java:140)
at
org.eclipse.birt.report.engine.layout.html.HTMLBlockStackingLM.layoutNodes(HTMLBlockStackingLM.java:70)
at org.eclipse.birt.report.engine.layout.html.HTMLPageLM.layout(HTMLPageLM.java:92)
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:180)
at
org.eclipse.birt.report.engine.api.impl.RunAndRenderTask.run(RunAndRenderTask.java:77)
An example of simple JPQL query featuring problematic parameter:
SELECT
id,
attribute1,
attribute2
FROM
MyEntity my
WHERE
id = ?
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.jboss.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see:
http://www.atlassian.com/software/jira