Edit: it is not a bug! I've picked up only one jar from the snapshot -> not supported!
I'm working with SmartClient 8.0 Power. Due to this bug http://forums.smartclient.com/showthread.php?t=16840
I need to use the isomorphic_core_rpc.jar from a nightly build.
I've tried the SNAPSHOT-2011-07-05 and SmartClient_SC_SNAPSHOT-2011-06-07 (the older I have got), but they seem to introduce a bug.
As you can see in the test case, it generates a select with a () where clause:
SELECT SUPPLYITEM.ITEMID, SUPPLYITEM.ITEMNAME FROM SUPPLYITEM WHERE ()
QUEUEDORDERITEM.ds.xml :
SUPPLYITEM.DS.XML :
client side log:
server side log:
I'm working with SmartClient 8.0 Power. Due to this bug http://forums.smartclient.com/showthread.php?t=16840
I need to use the isomorphic_core_rpc.jar from a nightly build.
I've tried the SNAPSHOT-2011-07-05 and SmartClient_SC_SNAPSHOT-2011-06-07 (the older I have got), but they seem to introduce a bug.
As you can see in the test case, it generates a select with a () where clause:
SELECT SUPPLYITEM.ITEMID, SUPPLYITEM.ITEMNAME FROM SUPPLYITEM WHERE ()
Code:
<%@ page contentType="text/html; charset=UTF-8"%>
<%@ taglib uri="/WEB-INF/iscTaglib.xml" prefix="isomorphic" %>
<HTML><HEAD><TITLE>test</TITLE>
<isomorphic:loadISC skin="Graphite"/>
</HEAD><BODY>
<SCRIPT>
isc.Page.setAppImgDir("../graphics/");
<isomorphic:XML>
<DataSource>
<loadID>QUEUEDORDERITEM</loadID>
</DataSource>
<DataSource>
<loadID>SUPPLYITEM</loadID>
</DataSource>
<ListGrid dataSource="QUEUEDORDERITEM" ID="ListGrid0" autoDraw="false">
<fields>
<ListGridField name="ITEMID" title="Itemid">
<optionDataSource>SUPPLYITEM</optionDataSource>
<valueField>ITEMID</valueField>
<displayField>ITEMNAME</displayField>
</ListGridField>
</fields>
<listEndEditAction>next</listEndEditAction>
<showFilterEditor>true</showFilterEditor>
<canEdit>true</canEdit>
<autoFetchData>true</autoFetchData>
<canRemoveRecords>true</canRemoveRecords>
<xsi:type>ListGrid</xsi:type>
</ListGrid>
<DataView ID="DataView0" overflow="hidden" autoDraw="true">
<members><Canvas ref="ListGrid0"/>
</members>
<width>100%</width>
<height>100%</height>
</DataView>
</isomorphic:XML></SCRIPT>
</BODY></HTML>
Code:
<DataSource
ID="QUEUEDORDERITEM"
serverType="sql"
tableName="QUEUEDORDERITEM"
dbName="dbInviti"
>
<fields>
<field name="PK" type="sequence" primaryKey="true" hidden="true" />
<field name="ITEMID" type="integer" foreignKey="SUPPLYITEM.ITEMID" title="Item Name"/>
</fields>
</DataSource>
Code:
<DataSource
ID="SUPPLYITEM"
serverType="sql"
tableName="SUPPLYITEM"
dbName="dbInviti"
>
<fields>
<field name="ITEMID" type="sequence" hidden="true" primaryKey="true"/>
<field name="ITEMNAME" type="text" length="128" required="true"/>
</fields>
</DataSource>
Code:
16:13:27.421:INFO:Log:initialized
16:13:27.421:WARN:Page:NOTE: isc.Page.getWidth() called before <BODY> tag was written out -- value cannot be determined. Returning 500
16:13:27.421:WARN:Page:NOTE: isc.Page.getHeight() called before <BODY> tag was written out -- value cannot be determined. Returning 500
16:13:27.562:WARN:AutoObserver:Use addInterfaceProperties() to add methods to interface [Class AutoObserver]
16:13:28.859:INFO:Log:isc.Page is loaded
16:13:29.453:XRP8:WARN:RPCManager:ORA-00936: espressione mancante
, response: {operationId: "custom",
clientContext: Obj,
context: Obj,
transactionNum: 0,
httpResponseCode: 200,
httpResponseText: "//isc_RPCResponseStart-->[{endRow:3,queu..."[575],
xmlHttpRequest: Obj,
transport: "xmlHttpRequest",
status: -1,
clientOnly: undef,
httpHeaders: Obj,
isStructured: true,
callbackArgs: null,
results: Obj,
queueStatus: -1,
isDSResponse: true,
invalidateCache: false,
data: "ORA-00936: espressione mancante
"}
Code:
=== 2011-07-05 16:02:49,390 [c-23] DEBUG RPCManager - Processing 3 requests.
=== 2011-07-05 16:02:49,390 [c-23] DEBUG RPCManager - Request #1 (DSRequest) payload: {
criteria:{
},
operationConfig:{
dataSource:"QUEUEDORDERITEM",
operationType:"fetch",
textMatchStyle:"substring"
},
startRow:0,
endRow:75,
componentId:"ListGrid0",
appID:"builtinApplication",
operation:"QUEUEDORDERITEM_fetch",
oldValues:{
}
}
=== 2011-07-05 16:02:49,390 [c-23] DEBUG RPCManager - Request #2 (DSRequest) payload: {
criteria:"",
operationConfig:{
dataSource:"SUPPLYITEM",
operationType:"fetch"
},
appID:"builtinApplication",
operation:"SUPPLYITEM_fetch",
oldValues:""
}
=== 2011-07-05 16:02:49,390 [c-23] DEBUG RPCManager - Request #3 (DSRequest) payload: {
criteria:{
},
operationConfig:{
dataSource:"SUPPLYITEM",
operationType:"fetch",
textMatchStyle:"startsWith"
},
componentId:"isc_PickListMenu_0",
appID:"builtinApplication",
operation:"SUPPLYITEM_fetch",
oldValues:{
}
}
=== 2011-07-05 16:02:49,390 [c-23] INFO IDACall - Performing 3 operation(s)
=== 2011-07-05 16:02:49,390 [c-23] DEBUG AppBase - [builtinApplication.QUEUEDORDERITEM_fetch] No userTypes defined, allowing anyone access to all operations for this application
=== 2011-07-05 16:02:49,390 [c-23] DEBUG AppBase - [builtinApplication.QUEUEDORDERITEM_fetch] No public zero-argument method named '_QUEUEDORDERITEM_fetch' found, performing generic datasource operation
=== 2011-07-05 16:02:49,390 [c-23] INFO SQLDataSource - [builtinApplication.QUEUEDORDERITEM_fetch] Performing fetch operation with
criteria: {} values: {}
=== 2011-07-05 16:02:49,390 [c-23] INFO SQLWhereClause - [builtinApplication.QUEUEDORDERITEM_fetch] empty condition
=== 2011-07-05 16:02:49,390 [c-23] INFO SQLDataSource - [builtinApplication.QUEUEDORDERITEM_fetch] derived query: SELECT $defaultSelectClause FROM $defaultTableClause WHERE $defaultWhereClause
=== 2011-07-05 16:02:49,390 [c-23] DEBUG SQLDataSource - [builtinApplication.QUEUEDORDERITEM_fetch] Executing row count query: SELECT COUNT(*) FROM $defaultTableClause WHERE $defaultWhereClause
=== 2011-07-05 16:02:49,390 [c-23] DEBUG SQLDataSource - [builtinApplication.QUEUEDORDERITEM_fetch] Eval'd row count query: SELECT COUNT(*) FROM QUEUEDORDERITEM WHERE ('1'='1')
=== 2011-07-05 16:02:49,390 [c-23] DEBUG PoolableSQLConnectionFactory - [builtinApplication.QUEUEDORDERITEM_fetch] Returning pooled Connection
=== 2011-07-05 16:02:49,390 [c-23] INFO SQLDriver - [builtinApplication.QUEUEDORDERITEM_fetch] Executing SQL query on 'dbInviti': SELECT COUNT(*) FROM QUEUEDORDERITEM WHERE ('1'='1')
=== 2011-07-05 16:02:49,390 [c-23] WARN SQLDataSource - [builtinApplication.QUEUEDORDERITEM_fetch] DataSource 'QUEUEDORDERITEM': sqlPaging was explicitly specified as 'sqlLimit', but the underlying database (oracle) does not support SQL limit queries. Falling back to 'jdbcScroll'
=== 2011-07-05 16:02:49,390 [c-23] DEBUG SQLDataSource - [builtinApplication.QUEUEDORDERITEM_fetch] JDBC driver windowed select rows 0->75, result size 75. Query: SELECT QUEUEDORDERITEM.ITEMID, QUEUEDORDERITEM.PK FROM QUEUEDORDERITEM WHERE ('1'='1')
=== 2011-07-05 16:02:49,390 [c-23] INFO DSResponse - [builtinApplication.QUEUEDORDERITEM_fetch] DSResponse: List with 3 items
=== 2011-07-05 16:02:49,390 [c-23] DEBUG AppBase - [builtinApplication.SUPPLYITEM_fetch] No userTypes defined, allowing anyone access to all operations for this application
=== 2011-07-05 16:02:49,390 [c-23] DEBUG AppBase - [builtinApplication.SUPPLYITEM_fetch] No public zero-argument method named '_SUPPLYITEM_fetch' found, performing generic datasource operation
=== 2011-07-05 16:02:49,390 [c-23] INFO SQLDataSource - [builtinApplication.SUPPLYITEM_fetch] Performing fetch operation with
criteria: "" values: ""
=== 2011-07-05 16:02:49,390 [c-23] INFO SQLDataSource - [builtinApplication.SUPPLYITEM_fetch] derived query: SELECT $defaultSelectClause FROM $defaultTableClause WHERE $defaultWhereClause
=== 2011-07-05 16:02:49,406 [c-23] DEBUG PoolableSQLConnectionFactory - [builtinApplication.SUPPLYITEM_fetch] Returning pooled Connection
=== 2011-07-05 16:02:49,406 [c-23] INFO SQLDriver - [builtinApplication.SUPPLYITEM_fetch] Executing SQL query on 'dbInviti': SELECT SUPPLYITEM.ITEMID, SUPPLYITEM.ITEMNAME FROM SUPPLYITEM WHERE ()
=== 2011-07-05 16:02:49,421 [c-23] INFO SQLDriver - [builtinApplication.SUPPLYITEM_fetch] Execute of select: SELECT SUPPLYITEM.ITEMID, SUPPLYITEM.ITEMNAME FROM SUPPLYITEM WHERE () on db: dbInviti threw exception: java.sql.SQLSyntaxErrorException: ORA-00936: espressione mancante
- assuming stale connection and retrying query.
=== 2011-07-05 16:02:49,421 [c-23] DEBUG PoolableSQLConnectionFactory - [builtinApplication.SUPPLYITEM_fetch] Returning pooled Connection
=== 2011-07-05 16:02:49,437 [c-23] WARN RequestContext - dsRequest.execute() failed:
java.sql.SQLSyntaxErrorException: ORA-00936: espressione mancante
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:452)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:400)
at oracle.jdbc.driver.T4C8Oall.processError(T4C8Oall.java:884)
at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:471)
at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:199)
at oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:535)
at oracle.jdbc.driver.T4CStatement.doOall8(T4CStatement.java:197)
at oracle.jdbc.driver.T4CStatement.executeForDescribe(T4CStatement.java:1165)
at oracle.jdbc.driver.OracleStatement.executeMaybeDescribe(OracleStatement.java:1444)
at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1662)
at oracle.jdbc.driver.OracleStatement.doScrollExecuteCommon(OracleStatement.java:8752)
at oracle.jdbc.driver.OracleStatement.doScrollStmtExecuteQuery(OracleStatement.java:8966)
at oracle.jdbc.driver.OracleStatement.executeQuery(OracleStatement.java:1965)
at oracle.jdbc.driver.OracleStatementWrapper.executeQuery(OracleStatementWrapper.java:1695)
at org.apache.tomcat.dbcp.dbcp.DelegatingStatement.executeQuery(DelegatingStatement.java:208)
at org.apache.tomcat.dbcp.dbcp.DelegatingStatement.executeQuery(DelegatingStatement.java:208)
at org.apache.commons.dbcp.DelegatingStatement.executeQuery(DelegatingStatement.java:208)
at com.isomorphic.sql.SQLDriver.getTransformedResults(SQLDriver.java:324)
at com.isomorphic.sql.SQLDriver.executeQuery(SQLDriver.java:552)
at com.isomorphic.sql.SQLDataSource.executeNativeQuery(SQLDataSource.java:375)
at com.isomorphic.sql.SQLDataSource.executeNativeQuery(SQLDataSource.java:370)
at com.isomorphic.sql.SQLDataSource.SQLExecute(SQLDataSource.java:1291)
at com.isomorphic.sql.SQLDataSource.processRequest(SQLDataSource.java:280)
at com.isomorphic.sql.SQLDataSource.executeFetch(SQLDataSource.java:224)
at com.isomorphic.datasource.DataSource.execute(DataSource.java:1154)
at com.isomorphic.application.AppBase.executeDefaultDSOperation(AppBase.java:721)
at com.isomorphic.application.AppBase.executeAppOperation(AppBase.java:658)
at com.isomorphic.application.AppBase.execute(AppBase.java:491)
at com.isomorphic.datasource.DSRequest.execute(DSRequest.java:1653)
at com.isomorphic.servlet.IDACall.handleDSRequest(IDACall.java:199)
at com.isomorphic.servlet.IDACall.processRPCTransaction(IDACall.java:156)
at com.isomorphic.servlet.IDACall.processRequest(IDACall.java:121)
at com.isomorphic.servlet.IDACall.doPost(IDACall.java:73)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:641)
at com.isomorphic.servlet.BaseServlet.service(BaseServlet.java:152)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at com.isomorphic.servlet.CompressionFilter.doFilter(CompressionFilter.java:259)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:368)
at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:109)
at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:83)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:97)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:100)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:54)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:35)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
at org.springframework.security.web.authentication.www.BasicAuthenticationFilter.doFilter(BasicAuthenticationFilter.java:177)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
at org.springframework.security.web.authentication.ui.DefaultLoginPageGeneratingFilter.doFilter(DefaultLoginPageGeneratingFilter.java:91)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:187)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:187)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:105)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:79)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
at org.springframework.security.web.session.ConcurrentSessionFilter.doFilter(ConcurrentSessionFilter.java:109)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
at org.springframework.security.web.access.channel.ChannelProcessingFilter.doFilter(ChannelProcessingFilter.java:109)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:169)
at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:237)
at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:167)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:240)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:164)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:498)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:562)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:394)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:243)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:188)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:302)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:662)
=== 2011-07-05 16:02:49,437 [c-23] DEBUG AppBase - [builtinApplication.SUPPLYITEM_fetch] No userTypes defined, allowing anyone access to all operations for this application
=== 2011-07-05 16:02:49,437 [c-23] DEBUG AppBase - [builtinApplication.SUPPLYITEM_fetch] No public zero-argument method named '_SUPPLYITEM_fetch' found, performing generic datasource operation
=== 2011-07-05 16:02:49,437 [c-23] INFO SQLDataSource - [builtinApplication.SUPPLYITEM_fetch] Performing fetch operation with
criteria: {} values: {}
=== 2011-07-05 16:02:49,437 [c-23] INFO SQLWhereClause - [builtinApplication.SUPPLYITEM_fetch] empty condition
=== 2011-07-05 16:02:49,437 [c-23] INFO SQLDataSource - [builtinApplication.SUPPLYITEM_fetch] derived query: SELECT $defaultSelectClause FROM $defaultTableClause WHERE $defaultWhereClause
=== 2011-07-05 16:02:49,437 [c-23] DEBUG PoolableSQLConnectionFactory - [builtinApplication.SUPPLYITEM_fetch] Returning pooled Connection
=== 2011-07-05 16:02:49,437 [c-23] INFO SQLDriver - [builtinApplication.SUPPLYITEM_fetch] Executing SQL query on 'dbInviti': SELECT SUPPLYITEM.ITEMID, SUPPLYITEM.ITEMNAME FROM SUPPLYITEM WHERE ('1'='1')
=== 2011-07-05 16:02:49,437 [c-23] INFO DSResponse - [builtinApplication.SUPPLYITEM_fetch] DSResponse: List with 6 items
Comment