SmartClient Version: v8.3p_2013-06-22/PowerEdition Deployment (built 2013-06-22)
While testing RESTHandler, I've found that a remove operation with an empty criteria is allowed.
server side log:
adding operationBinding.allowMultiUpdate="false" didn't help.
an update operation without primary key is (correctly) not allowed.
While testing RESTHandler, I've found that a remove operation with an empty criteria is allowed.
server side log:
Code:
2013-06-28 15:09:54,361 DEBUG RestRequestParser Parsing json object: '{"endRow":10,"dataSource":"JPC_LISTINI","operationType":"delete","startRow":0,"data":{}}' 2013-06-28 15:09:54,369 DEBUG HttpSessionEventPublisher Publishing event: org.springframework.security.web.session.HttpSessionCreatedEvent[source=org.apache.catalina.session.StandardSessionFacade@3c18257c] 2013-06-28 15:09:54,370 INFO LegendRestHandler Performing 1 operation(s) 2013-06-28 15:10:14,594 INFO SQLWhereClause [builtinApplication.JPC_LISTINI_delete] empty condition 2013-06-28 15:10:14,605 INFO SQLDriver [builtinApplication.JPC_LISTINI_delete] Executing SQL update on 'dbJpcEP': DELETE FROM DBSALES.JPC_LISTINI WHERE ('1'='1') 2013-06-28 15:10:14,612 WARN RequestContext dsRequest.execute() failed: java.sql.SQLIntegrityConstraintViolationException: ORA-02292: restrizione di integrità violata (DBSALES.FK_SETTORI_TO_STAGIONI_PERIODI) - chiave figlia trovata at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:457) at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:400) at oracle.jdbc.driver.T4C8Oall.processError(T4C8Oall.java:926) at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:476) at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:200) at oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:543) at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:238) at oracle.jdbc.driver.T4CPreparedStatement.executeForRows(T4CPreparedStatement.java:1446) at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1757) at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:4372) at oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePreparedStatement.java:4539) at oracle.jdbc.driver.OraclePreparedStatementWrapper.executeUpdate(OraclePreparedStatementWrapper.java:5577) at org.apache.tomcat.dbcp.dbcp.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:105) at org.apache.tomcat.dbcp.dbcp.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:105) at org.apache.commons.dbcp.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:102) at com.isomorphic.sql.SQLDriver.doUpdate(SQLDriver.java:774) at com.isomorphic.sql.SQLDriver.update(SQLDriver.java:724) at com.isomorphic.sql.SQLDriver.executeUpdate(SQLDriver.java:848) at com.isomorphic.sql.SQLDataSource.executeNativeUpdate(SQLDataSource.java:427) at com.isomorphic.sql.SQLDataSource.SQLExecute(SQLDataSource.java:1476) at com.isomorphic.sql.SQLDataSource.processRequest(SQLDataSource.java:314) at com.isomorphic.sql.SQLDataSource.executeRemove(SQLDataSource.java:270) at com.isomorphic.datasource.DataSource.execute(DataSource.java:1376) at com.isomorphic.application.AppBase.executeDefaultDSOperation(AppBase.java:726) 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:2033) at com.isomorphic.servlet.RESTHandler.handleDSRequest(RESTHandler.java:341) at com.juve.legend.LegendRestHandler.handleDSRequest(LegendRestHandler.java:48) at com.isomorphic.servlet.RESTHandler.processRequest(RESTHandler.java:319) at com.isomorphic.servlet.RESTHandler.doPost(RESTHandler.java:259) 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:305) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at com.juve.utils.Log4jSessionFilter.doFilter(Log4jSessionFilter.java:65) 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.doFilter(FilterChainProxy.java:163) 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 com.isomorphic.servlet.CompressionFilter.doFilter(CompressionFilter.java:246) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at com.isomorphic.js.JSSyntaxScannerFilter.doFilter(JSSyntaxScannerFilter.java:241) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.jasig.cas.client.session.SingleSignOutFilter.doFilter(SingleSignOutFilter.java:76) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76) 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:222) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99) at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:929) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407) at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1002) at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:585) at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) at java.lang.Thread.run(Thread.java:722) 2013-06-28 15:10:18,931 DEBUG RPCManager Content type for RPC transaction: text/html; charset=UTF-8 2013-06-28 15:10:18,934 DEBUG RPCManager non-DMI response, dropExtraFields: false
an update operation without primary key is (correctly) not allowed.
Comment