Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.

Bug 362714

Summary: Birt - Hive Data Access gives JDBCException
Product: z_Archived Reporter: Suhana <suhana_karim>
Component: BIRTAssignee: pshi <pshi>
Status: RESOLVED FIXED QA Contact: Sissi Zhu <szhu>
Severity: blocker    
Priority: P3 CC: Ajit.Tirumalasetti, bluesoldier, lchan, lshen, mwu, ompatel82, rod
Version: 3.7.0   
Target Milestone: 3.7.2   
Hardware: PC   
OS: Windows XP   
Whiteboard:

Description Suhana CLA 2011-11-02 14:46:49 EDT
Build Identifier: Version: Indigo Service Release 1 Build id: 20110916-0149

I have installed BIRT.
Established connection to Hive (version 0.7.0)
Connection returned successful
Created Data Source and Data sets
entered Query string
my columns are String and Decimal
selecting preview -would result in Error:
The following items have errors: 


Data (id = 302): 
+ Cannot get the decimal value from column: 7.
    org.eclipse.birt.report.data.oda.jdbc.JDBCException: Cannot get BigDecimal value in the result set.
SQL error #1:Method not supported
 ;
    java.sql.SQLException: Method not supported (Element ID:302) 
odaconsumer.CannotGetBigDecimalFromColumn ( 1 time(s) )
detail : org.eclipse.birt.report.engine.api.EngineException: Cannot get the decimal value from column: 7.
    org.eclipse.birt.report.data.oda.jdbc.JDBCException: Cannot get BigDecimal value in the result set.
SQL error #1:Method not supported
 ;
    java.sql.SQLException: Method not supported (Element ID:302)
	at org.eclipse.birt.report.engine.executor.ExecutionContext.addException(ExecutionContext.java:1214)
	at org.eclipse.birt.report.engine.executor.ExecutionContext.addException(ExecutionContext.java:1193)
	at org.eclipse.birt.report.engine.executor.QueryItemExecutor.executeQuery(QueryItemExecutor.java:96)
	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.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)
	at org.eclipse.birt.report.service.ReportEngineService.runAndRenderReport(ReportEngineService.java:929)
	at org.eclipse.birt.report.service.BirtViewerReportService.runAndRenderReport(BirtViewerReportService.java:973)
	at org.eclipse.birt.report.service.actionhandler.BirtGetPageAllActionHandler.__execute(BirtGetPageAllActionHandler.java:131)
	at org.eclipse.birt.report.service.actionhandler.AbstractBaseActionHandler.execute(AbstractBaseActionHandler.java:90)
	at org.eclipse.birt.report.soapengine.processor.AbstractBaseDocumentProcessor.__executeAction(AbstractBaseDocumentProcessor.java:47)
	at org.eclipse.birt.report.soapengine.processor.AbstractBaseComponentProcessor.executeAction(AbstractBaseComponentProcessor.java:143)
	at org.eclipse.birt.report.soapengine.processor.BirtDocumentProcessor.handleGetPageAll(BirtDocumentProcessor.java:183)
	at sun.reflect.GeneratedMethodAccessor25.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at org.eclipse.birt.report.soapengine.processor.AbstractBaseComponentProcessor.process(AbstractBaseComponentProcessor.java:112)
	at org.eclipse.birt.report.soapengine.endpoint.BirtSoapBindingImpl.getUpdatedObjects(BirtSoapBindingImpl.java:66)
	at sun.reflect.GeneratedMethodAccessor24.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at org.apache.axis.providers.java.RPCProvider.invokeMethod(RPCProvider.java:397)
	at org.apache.axis.providers.java.RPCProvider.processMessage(RPCProvider.java:186)
	at org.apache.axis.providers.java.JavaProvider.invoke(JavaProvider.java:323)
	at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32)
	at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118)
	at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83)
	at org.apache.axis.handlers.soap.SOAPService.invoke(SOAPService.java:454)
	at org.apache.axis.server.AxisServer.invoke(AxisServer.java:281)
	at org.apache.axis.transport.http.AxisServlet.doPost(AxisServlet.java:699)
	at org.eclipse.birt.report.servlet.BirtSoapMessageDispatcherServlet.doPost(BirtSoapMessageDispatcherServlet.java:265)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
	at org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java:327)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
	at org.eclipse.birt.report.servlet.BirtSoapMessageDispatcherServlet.service(BirtSoapMessageDispatcherServlet.java:122)
	at org.eclipse.equinox.http.registry.internal.ServletManager$ServletWrapper.service(ServletManager.java:180)
	at org.eclipse.equinox.http.servlet.internal.ServletRegistration.service(ServletRegistration.java:61)
	at org.eclipse.equinox.http.servlet.internal.ProxyServlet.processAlias(ProxyServlet.java:126)
	at org.eclipse.equinox.http.servlet.internal.ProxyServlet.service(ProxyServlet.java:60)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
	at org.eclipse.equinox.http.jetty.internal.HttpServerManager$InternalHttpServiceServlet.service(HttpServerManager.java:317)
	at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511)
	at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:390)
	at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)
	at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)
	at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
	at org.mortbay.jetty.Server.handle(Server.java:326)
	at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542)
	at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:939)
	at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:756)
	at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212)
	at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
	at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:409)
	at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582)
Caused by: org.eclipse.birt.data.engine.odaconsumer.OdaDataException: Cannot get the decimal value from column: 7.
    org.eclipse.birt.report.data.oda.jdbc.JDBCException: Cannot get BigDecimal value in the result set.
SQL error #1:Method not supported
 ;
    java.sql.SQLException: Method not supported
	at org.eclipse.birt.data.engine.odaconsumer.ExceptionHandler.newException(ExceptionHandler.java:55)
	at org.eclipse.birt.data.engine.odaconsumer.ExceptionHandler.throwException(ExceptionHandler.java:108)
	at org.eclipse.birt.data.engine.odaconsumer.ExceptionHandler.throwException(ExceptionHandler.java:96)
	at org.eclipse.birt.data.engine.odaconsumer.ResultSet.getBigDecimal(ResultSet.java:290)
	at org.eclipse.birt.data.engine.odaconsumer.ResultSet.fetch(ResultSet.java:181)
	at org.eclipse.birt.data.engine.executor.cache.OdiAdapter.fetch(OdiAdapter.java:214)
	at org.eclipse.birt.data.engine.executor.cache.RowResultSet.doNext(RowResultSet.java:113)
	at org.eclipse.birt.data.engine.executor.cache.RowResultSet.next(RowResultSet.java:91)
	at org.eclipse.birt.data.engine.executor.cache.ExpandableRowResultSet.next(ExpandableRowResultSet.java:63)
	at org.eclipse.birt.data.engine.executor.cache.SmartCacheHelper.populateData(SmartCacheHelper.java:316)
	at org.eclipse.birt.data.engine.executor.cache.SmartCacheHelper.initInstance(SmartCacheHelper.java:285)
	at org.eclipse.birt.data.engine.executor.cache.SmartCacheHelper.initOdaResult(SmartCacheHelper.java:154)
	at org.eclipse.birt.data.engine.executor.cache.SmartCacheHelper.getResultSetCache(SmartCacheHelper.java:79)
	at org.eclipse.birt.data.engine.executor.cache.SmartCache.<init>(SmartCache.java:57)
	at org.eclipse.birt.data.engine.executor.transform.pass.PassUtil.populateOdiResultSet(PassUtil.java:99)
	at org.eclipse.birt.data.engine.executor.transform.pass.PassUtil.pass(PassUtil.java:62)
	at org.eclipse.birt.data.engine.executor.transform.pass.PassManager.doSinglePass(PassManager.java:211)
	at org.eclipse.birt.data.engine.executor.transform.pass.PassManager.prepareDataSetResultSet(PassManager.java:94)
	at org.eclipse.birt.data.engine.executor.transform.pass.PassManager.pass(PassManager.java:125)
	at org.eclipse.birt.data.engine.executor.transform.pass.PassManager.populateResultSet(PassManager.java:74)
	at org.eclipse.birt.data.engine.executor.transform.ResultSetPopulator.populateResultSet(ResultSetPopulator.java:198)
	at org.eclipse.birt.data.engine.executor.transform.CachedResultSet.<init>(CachedResultSet.java:97)
	at org.eclipse.birt.data.engine.executor.DataSourceQuery.execute(DataSourceQuery.java:1025)
	at org.eclipse.birt.data.engine.impl.PreparedOdaDSQuery$OdaDSQueryExecutor.executeOdiQuery(PreparedOdaDSQuery.java:441)
	at org.eclipse.birt.data.engine.impl.QueryExecutor.execute(QueryExecutor.java:1124)
	at org.eclipse.birt.data.engine.impl.ServiceForQueryResults.executeQuery(ServiceForQueryResults.java:232)
	at org.eclipse.birt.data.engine.impl.QueryResults.getResultIterator(QueryResults.java:173)
	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: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)
	... 57 more
Caused by: org.eclipse.birt.report.data.oda.jdbc.JDBCException: Cannot get BigDecimal value in the result set.
SQL error #1:Method not supported
 ;
    java.sql.SQLException: Method not supported
	at org.eclipse.birt.report.data.oda.jdbc.ResultSet.getBigDecimal(ResultSet.java:377)
	at org.eclipse.datatools.connectivity.oda.consumer.helper.OdaResultSet.getBigDecimal(OdaResultSet.java:444)
	at org.eclipse.birt.data.engine.odaconsumer.ResultSet.getBigDecimal(ResultSet.java:286)
	... 85 more
Caused by: java.sql.SQLException: Method not supported
	at org.apache.hadoop.hive.jdbc.HiveBaseResultSet.getBigDecimal(HiveBaseResultSet.java:105)
	at org.eclipse.birt.report.data.oda.jdbc.ResultSet.getBigDecimal(ResultSet.java:362)
	... 87 more

					


Reproducible: Always

Steps to Reproduce:
1.install BIRT
2.create Report Project
3.create Data Source
4.connect to Hive 
5Create data set
6.enter query string 
7.select preview
Comment 1 Om Patel CLA 2011-11-19 09:36:05 EST
HI,
 I have used BIRT3.7.  I want create data set with stored procedure with cursor but
data not retrieve errors are:
A BIRT exception occurred.
  Plug-in Provider:Eclipse BIRT Project
  Plug-in Name:BIRT Data Engine
  Plug-in ID:org.eclipse.birt.data
  Version:3.7.1.v20110905
  Error Code:odaconsumer.CannotExecuteStatement
  Error Message:Cannot execute the statement.
    org.eclipse.birt.report.data.oda.jdbc.JDBCException: SQL statement does not return a ResultSet object.
SQL error #1:Protocol violation
 ;
    java.sql.SQLException: Protocol violation
Comment 2 pshi CLA 2011-12-15 00:48:24 EST
Fixed. We will transfer the bigint datatype to decimal. While the hive does not support decimal, so caused this bug. In ResultSet use getObject instead of getDecimal
Comment 3 Maggie Shen CLA 2011-12-22 02:58:31 EST
verified on build 3.7.2.v20111222-1437
Comment 4 Linda Chan CLA 2012-01-20 19:55:47 EST
*** Bug 369267 has been marked as a duplicate of this bug. ***
Comment 5 Linda Chan CLA 2012-01-23 14:06:16 EST
*** Bug 369267 has been marked as a duplicate of this bug. ***
Comment 6 Linda Chan CLA 2012-01-23 14:07:33 EST
The fix implementation is not yet available in BIRT Git repo.
Comment 7 Linda Chan CLA 2012-01-31 15:27:51 EST
(In reply to comment #6)

The fix patch is included in 3.7.2 RC2 milestone release.
Comment 8 Ajit Tirumalasetti CLA 2012-02-01 09:38:02 EST
When will this be available for users? I am unable to find this version on you site http://download.eclipse.org/birt/downloads/
Please provide a link where I can download this from.
Comment 9 Linda Chan CLA 2012-02-01 13:20:55 EST
(In reply to comment #8)

See http://download.eclipse.org/birt/downloads/build_list.php

Get the Stable Build 3_7_2-S20120130, which will likely be the final 3.7.2 RC2 version.
Comment 10 Ajit Tirumalasetti CLA 2012-02-02 06:24:11 EST
Is there a link for downloading 64 bit Linux version? The version present in the link provided is only for 32 bit and it fails on my 64 bit Linux Ubuntu.
Thanks!!
Comment 11 Xiaoying Gu CLA 2012-02-02 21:48:50 EST
(In reply to comment #10)
> Is there a link for downloading 64 bit Linux version? The version present in
> the link provided is only for 32 bit and it fails on my 64 bit Linux Ubuntu.
> Thanks!!

The 3.7.2 RC2 stable build now is available at http://download.eclipse.org/birt/downloads/build.php?build=M-R1-3.7.2RC2-201201301545

We don't have a 64-bit BIRT all-in-one.
But you can still launch the 32-bit BIRT all-in-one on 64bit Linux, if using a 32-bit JVM.
Comment 12 Ajit Tirumalasetti CLA 2012-02-13 05:23:42 EST
FYI: 
The build throws a run time error
The library with the namespace ThemesReportItems is not found.