When trying to revoke a permission on a node in slide, the following error occurs: 18 Apr 2005 11:56:34 - org.apache.slide.store.impl.rdbms.StandardRDBMSAdapter - ERROR - SQL error 907 on /files/conference:ORA-00907: missing right parenthesis java.sql.SQLException: ORA-00907: missing right parenthesis at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:134) at oracle.jdbc.ttc7.TTIoer.processError(TTIoer.java:289) at oracle.jdbc.ttc7.Oall7.receive(Oall7.java:582) at oracle.jdbc.ttc7.TTC7Protocol.doOall7(TTC7Protocol.java:1986) at oracle.jdbc.ttc7.TTC7Protocol.parseExecuteFetch(TTC7Protocol.java:1144) at oracle.jdbc.driver.OracleStatement.executeNonQuery(OracleStatement.java:2152) at oracle.jdbc.driver.OracleStatement.doExecuteOther(OracleStatement.java:2035) at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:2876) at oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePreparedStatement.java:609) at org.apache.commons.dbcp.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:101) at org.apache.slide.store.impl.rdbms.CommonRDBMSAdapter.revokePermission(CommonRDBMSAdapter.java:235) at org.apache.slide.store.impl.rdbms.AbstractRDBMSStore.revokePermission(AbstractRDBMSStore.java:479) at org.apache.slide.store.AbstractStore.revokePermission(AbstractStore.java:759) at org.apache.slide.store.ExtendedStore.revokePermission(ExtendedStore.java:658) at org.apache.slide.security.SecurityImpl.revokePermission(SecurityImpl.java:369) at org.apache.slide.macro.MacroImpl.deleteObject(MacroImpl.java:814) at org.apache.slide.macro.MacroImpl.delete(MacroImpl.java:524) at org.apache.slide.macro.MacroImpl.delete(MacroImpl.java:482) at org.apache.slide.webdav.method.DeleteMethod.executeRequest(DeleteMethod.java:156) at org.apache.slide.webdav.method.AbstractWebdavMethod.run(AbstractWebdavMethod.java:405) at org.apache.slide.webdav.WebdavServlet.service(WebdavServlet.java:155) at javax.servlet.http.HttpServlet.service(HttpServlet.java:802) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) at org.apache.slide.webdav.filter.LogFilter.doFilter(LogFilter.java:141) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:407) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:825) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:738) at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:526) at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80) at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684) at java.lang.Thread.run(Thread.java:534) Looking at line of code, we get this wrong request: "delete from PERMISSIONS where PERMISSIONS.OBJECT_ID in (select ou.URI_ID from URI ou, URI su, URI au where ou.URI_STRING = ? and SUBJECT_ID = su.URI_ID and su.URI_STRING = ? and ACTION_ID = au.URI_ID and au.URI_STRING = ? and VERSION_NO" + ((revisionNumber == null) ? " IS NULL " : " = '" + revisionNumber.toString() + "'" where i think we should read this: "delete from PERMISSIONS where PERMISSIONS.OBJECT_ID in (select ou.URI_ID from URI ou, URI su, URI au where ou.URI_STRING = ? and SUBJECT_ID = su.URI_ID and su.URI_STRING = ? and ACTION_ID = au.URI_ID and au.URI_STRING = ? and VERSION_NO" + (((revisionNumber == null) ? " IS NULL " : " = '" + revisionNumber.toString() + "'") +")"
Already fixed in CVS by Stefan Lützkendorf, see URL.