Hello Orbeon,
I have the following MySQL DB configuration in my Config.groovy file in IntelliJ: grails.naming.entries = [ "jdbc/bsmysql": [ type: "javax.sql.DataSource", auth: "Container", driverClassName: "com.mysql.jdbc.Driver", url: "jdbc:mysql://192.168.48.128:3306/orbeon?useUnicode=true&characterEncoding=UTF8", username: "xx", password: "xx", maxActive: "10", maxIdle: "20", pooled: "true", dialect: "org.hibernate.dialect.MySQL5InnoDBDialect" ] ] When i run Orbeon Form editor and goes to the summary page, all the forms saved in the database are listed without any problem. But when I use the free text search I get following error: Unknown column 'data.xml' in 'where clause'. Can anyone tell me why I'm getting this error? Thanks in advance.. Se the full log below: ------------------------ orbeon log----------------------------- 2013-12-05 17:54:22,977 INFO ProcessorService - Servlet initialized. 2013-12-05 17:54:22,989 INFO ProcessorService - /xforms-server - Received request 2013-12-05 17:54:23,167 INFO ProcessorService - /fr/service/persistence/search/orbeon/builder - Received request 2013-12-05 17:54:23,191 INFO ProcessorService - /fr/service/mysql/search/orbeon/builder - Received request 2013-12-05 17:54:23,240 INFO ProcessorService - /fr/service/persistence/form/orbeon/builder - Received request 2013-12-05 17:54:23,250 INFO ProcessorService - /fr/service/resource/form/orbeon/builder - Received request 2013-12-05 17:54:23,261 INFO ProcessorService - /fr/service/resource/form/orbeon/builder - Timing: 11 2013-12-05 17:54:23,263 INFO ProcessorService - /fr/service/persistence/form/orbeon/builder - Timing: 23 2013-12-05 17:54:23,284 ERROR SQLProcessor - PreparedStatement: select ( select count(*) from orbeon_form_data data where ( app, form, document_id, last_modified_time, draft ) in ( select app, form, document_id, max(last_modified_time) last_modified_time, draft from orbeon_form_data where app = ? and form = ? group by app, form, document_id, draft ) and deleted = 'N' ) total, ( select count(*) from ( select d.created, d.last_modified_time, d.document_id, d.xml, d.username, d.groupname, d.draft, @rownum := @rownum + 1 row_number from ( ( select data.* from orbeon_form_data data, ( select max(last_modified_time) last_modified_time, app, form, document_id from orbeon_form_data where app = ? and form = ? and draft = 'N' group by app, form, document_id ) latest where data.last_modified_time = latest.last_modified_time and data.app = latest.app and data.form = latest.form and data.document_id = latest.document_id and data.deleted = 'N' and data.draft = 'N' and extractValue(xml, '/*/xh:head[1]/xf:model[@id = ''fr-form-model''][1]/xf:instance[@id = ''fr-form-metadata'']/*[1]/application-name[1] | /*/xhtml:head[1]/xforms:model[@id = ''fr-form-model''][1]/xforms:instance[@id = ''fr-form-metadata'']/*[1]/application-name[1]') = 'netcompany' and data.xml like ? ) union all ( select * from orbeon_form_data d1 where app = ? and form = ? and draft = 'Y' and extractValue(xml, '/*/xh:head[1]/xf:model[@id = ''fr-form-model''][1]/xf:instance[@id = ''fr-form-metadata'']/*[1]/application-name[1] | /*/xhtml:head[1]/xforms:model[@id = ''fr-form-model''][1]/xforms:instance[@id = ''fr-form-metadata'']/*[1]/application-name[1]') = 'netcompany' and data.xml like ? ) ) d , (select @rownum := 0) r order by d.created desc ) a ) search_total from dual 2013-12-05 17:54:23,319 ERROR PageFlowControllerProcessor - error caught {controller: "oxf:/apps/fr/page-flow.xml", method: "POST", path: "/fr/service/mysql/search/orbeon/builder"} 2013-12-05 17:54:23,367 ERROR PageFlowControllerProcessor - +----------------------------------------------------------------------------------------------------------------------+ |An Error has Occurred | |----------------------------------------------------------------------------------------------------------------------| |Unknown column 'data.xml' in 'where clause' | |----------------------------------------------------------------------------------------------------------------------| |Application Call Stack | |----------------------------------------------------------------------------------------------------------------------| |oxf:/apps/fr/page-flow.xml |reading page view data output | 48| |······················································································································| |element=<service path="/fr/service/(oracle|mysql|db2)/search/([^/^.]+)/([^/^.]+)" view="persistence/relational/search.| |view =persistence/relational/search.xpl | |----------------------------------------------------------------------------------------------------------------------| |oxf:/apps/fr/persistence/relational/search.xpl |reading processor output | 424| |······················································································································| |element=<p:output name="data" ref="data"/> | |name =data | |ref =data | |----------------------------------------------------------------------------------------------------------------------| |oxf:/apps/fr/persistence/relational/search.xpl |executing XSLT transformation | | |----------------------------------------------------------------------------------------------------------------------| |Exception: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException | |----------------------------------------------------------------------------------------------------------------------| |sun.reflect.NativeConstructorAccessorImpl |newInstance0 |NativeConstructorAccessorImpl.| | |sun.reflect.NativeConstructorAccessorImpl |newInstance |NativeConstructorAccessorImpl.| 57| |sun.reflect.DelegatingConstructorAccessorImpl |newInstance |DelegatingConstructorAccessorI| 45| |java.lang.reflect.Constructor |newInstance |Constructor.java | 526| |org.springsource.loaded.ri.ReflectiveInterceptor |jlrConstructorNewInstance |ReflectiveInterceptor.java | 991| |com.mysql.jdbc.Util |handleNewInstance |Util.java | 411| |com.mysql.jdbc.Util |getInstance |Util.java | 386| |com.mysql.jdbc.SQLError |createSQLException |SQLError.java |1054| |com.mysql.jdbc.MysqlIO |checkErrorPacket |MysqlIO.java |4190| |com.mysql.jdbc.MysqlIO |checkErrorPacket |MysqlIO.java |4122| |com.mysql.jdbc.MysqlIO |sendCommand |MysqlIO.java |2570| |com.mysql.jdbc.MysqlIO |sqlQueryDirect |MysqlIO.java |2731| |com.mysql.jdbc.ConnectionImpl |execSQL |ConnectionImpl.java |2818| |com.mysql.jdbc.PreparedStatement |executeInternal |PreparedStatement.java |2157| |com.mysql.jdbc.PreparedStatement |execute |PreparedStatement.java |1379| |org.apache.commons.dbcp.DelegatingPreparedStatement|execute |DelegatingPreparedStatement.ja| 172| |org.apache.commons.dbcp.DelegatingPreparedStatement|execute |DelegatingPreparedStatement.ja| 172| |eon.oxf.processor.sql.interpreters.QueryInterpreter|end |QueryInterpreter.java | 600| |rocessor.sql.SQLProcessor$InterpreterContentHandler|endElement |SQLProcessor.java | 540| |processor.sql.SQLProcessor$ForwardingContentHandler|endElement |SQLProcessor.java | 635| |rocessor.sql.SQLProcessor$InterpreterContentHandler|endElement |SQLProcessor.java | 542| |processor.sql.SQLProcessor$ForwardingContentHandler|endElement |SQLProcessor.java | 635| |rocessor.sql.SQLProcessor$InterpreterContentHandler|endElement |SQLProcessor.java | 542| |processor.sql.SQLProcessor$ForwardingContentHandler|endElement |SQLProcessor.java | 635| |rocessor.sql.SQLProcessor$InterpreterContentHandler|endElement |SQLProcessor.java | 542| |beon.oxf.processor.sql.SQLProcessor$RootInterpreter|endElement |SQLProcessor.java | 290| |org.orbeon.oxf.xml.SAXStore |replay |SAXStore.java | 321| |org.orbeon.oxf.xml.SAXStore |replay |SAXStore.java | 235| |org.orbeon.oxf.processor.sql.SQLProcessor |execute |SQLProcessor.java | 251| |org.orbeon.oxf.processor.sql.SQLProcessor$1 |readImpl |SQLProcessor.java | 89| |essor.impl.ProcessorOutputImpl$TopLevelOutputFilter|read |ProcessorOutputImpl.java | 258| |org.orbeon.oxf.processor.impl.ProcessorOutputImpl |read |ProcessorOutputImpl.java | 404| |org.orbeon.oxf.processor.ProcessorImpl |readInputAsSAX |ProcessorImpl.java | 262| |org.orbeon.oxf.processor.ProcessorImpl |readInputAsSAX |ProcessorImpl.java | 266| |on.oxf.processor.transformer.xslt.XSLTTransformer$1|runTransformer |XSLTTransformer.java | 467| |----------------------------------------------------------------------------------------------------------------------| |Exception: org.orbeon.oxf.common.ValidationException | |----------------------------------------------------------------------------------------------------------------------| |org.orbeon.oxf.common.OrbeonLocationException$ |wrapException |OrbeonLocationException.scala | 60| |org.orbeon.oxf.common.OrbeonLocationException |wrapException |OrbeonLocationException.scala | | |on.oxf.processor.transformer.xslt.XSLTTransformer$1|runTransformer |XSLTTransformer.java | 526| |on.oxf.processor.transformer.xslt.XSLTTransformer$1|readImpl |XSLTTransformer.java | 188| |essor.impl.ProcessorOutputImpl$TopLevelOutputFilter|read |ProcessorOutputImpl.java | 258| |org.orbeon.oxf.processor.impl.ProcessorOutputImpl |read |ProcessorOutputImpl.java | 404| |org.orbeon.oxf.processor.ProcessorImpl |readInputAsSAX |ProcessorImpl.java | 262| |orbeon.oxf.processor.pipeline.PipelineProcessor$1$1|run |PipelineProcessor.java | 93| |org.orbeon.oxf.processor.pipeline.PipelineProcessor|executeChildren |PipelineProcessor.java | 680| |org.orbeon.oxf.processor.pipeline.PipelineProcessor|access$000 |PipelineProcessor.java | 60| |g.orbeon.oxf.processor.pipeline.PipelineProcessor$1|readImpl |PipelineProcessor.java | 91| |essor.impl.ProcessorOutputImpl$TopLevelOutputFilter|read |ProcessorOutputImpl.java | 258| |org.orbeon.oxf.processor.impl.ProcessorOutputImpl |read |ProcessorOutputImpl.java | 404| |org.orbeon.oxf.processor.ProcessorImpl |readInputAsSAX |ProcessorImpl.java | 262| |org.orbeon.oxf.processor.ProcessorImpl |readInputAsSAX |ProcessorImpl.java | 266| |org.orbeon.oxf.processor.IdentityProcessor$1 |readImpl |IdentityProcessor.java | 33| |essor.impl.ProcessorOutputImpl$TopLevelOutputFilter|read |ProcessorOutputImpl.java | 258| |org.orbeon.oxf.processor.impl.ProcessorOutputImpl |read |ProcessorOutputImpl.java | 404| |org.orbeon.oxf.processor.ProcessorImpl |readInputAsSAX |ProcessorImpl.java | 262| |orbeon.oxf.processor.pipeline.PipelineProcessor$1$1|run |PipelineProcessor.java | 93| |---8<--------8<--------8<--------8<--------8<--------8<--------8<--------8<--------8<--------8<--------8<--------8<---| |org.apache.catalina.core.ApplicationFilterChain |internalDoFilter |ApplicationFilterChain.java | 243| |org.apache.catalina.core.ApplicationFilterChain |doFilter |ApplicationFilterChain.java | 210| |.springframework.web.filter.CharacterEncodingFilter|doFilterInternal |CharacterEncodingFilter.java | 88| |org.springframework.web.filter.OncePerRequestFilter|doFilter |OncePerRequestFilter.java | 76| |rg.springframework.web.filter.DelegatingFilterProxy|invokeDelegate |DelegatingFilterProxy.java | 346| |rg.springframework.web.filter.DelegatingFilterProxy|doFilter |DelegatingFilterProxy.java | 259| |org.apache.catalina.core.ApplicationFilterChain |internalDoFilter |ApplicationFilterChain.java | 243| |org.apache.catalina.core.ApplicationFilterChain |doFilter |ApplicationFilterChain.java | 210| |org.apache.catalina.core.StandardWrapperValve |invoke |StandardWrapperValve.java | 222| |org.apache.catalina.core.StandardContextValve |invoke |StandardContextValve.java | 123| |org.apache.catalina.core.StandardHostValve |invoke |StandardHostValve.java | 171| |org.apache.catalina.valves.ErrorReportValve |invoke |ErrorReportValve.java | 99| |org.apache.catalina.core.StandardEngineValve |invoke |StandardEngineValve.java | 118| |org.apache.catalina.connector.CoyoteAdapter |service |CoyoteAdapter.java | 408| |org.apache.coyote.http11.AbstractHttp11Processor |process |AbstractHttp11Processor.java |1023| |e.coyote.AbstractProtocol$AbstractConnectionHandler|process |AbstractProtocol.java | 589| |.apache.tomcat.util.net.JIoEndpoint$SocketProcessor|run |JIoEndpoint.java | 312| |java.util.concurrent.ThreadPoolExecutor |runWorker |ThreadPoolExecutor.java |1145| |java.util.concurrent.ThreadPoolExecutor$Worker |run |ThreadPoolExecutor.java | 615| |java.lang.Thread |run |Thread.java | 744| +----------------------------------------------------------------------------------------------------------------------+ {} 2013-12-05 17:54:23,368 INFO ProcessorService - /fr/service/mysql/search/orbeon/builder - Timing: 177 2013-12-05 17:54:23,370 INFO DatabaseContext - Committing JDBC connection for datasource: jdbc/bsmysql. 2013-12-05 17:54:23,373 INFO ProcessorService - /fr/service/persistence/search/orbeon/builder - Timing: 206 2013-12-05 17:54:23,385 ERROR XFormsServer - xforms-submit-error - setting throwable {throwable: " +----------------------------------------------------------------------------------------------------------------------+ |An Error has Occurred | |----------------------------------------------------------------------------------------------------------------------| |xf:submission for submission id: search-submission, error code received when submitting instance: 500 | |----------------------------------------------------------------------------------------------------------------------| |Application Call Stack | |----------------------------------------------------------------------------------------------------------------------| |----------------------------------------------------------------------------------------------------------------------| |Exception: org.orbeon.oxf.xforms.submission.XFormsSubmissionException | |----------------------------------------------------------------------------------------------------------------------| |.orbeon.oxf.xforms.submission.XFormsModelSubmission|getReplacer |XFormsModelSubmission.java | 731| |rg.orbeon.oxf.xforms.submission.RegularSubmission$1|call |RegularSubmission.java | 101| |rg.orbeon.oxf.xforms.submission.RegularSubmission$1|call |RegularSubmission.java | 71| |org.orbeon.oxf.xforms.submission.BaseSubmission |submitCallable |BaseSubmission.java | 99| |org.orbeon.oxf.xforms.submission.RegularSubmission |connect |RegularSubmission.java | 124| |.orbeon.oxf.xforms.submission.XFormsModelSubmission|doSubmit |XFormsModelSubmission.java | 464| |.orbeon.oxf.xforms.submission.XFormsModelSubmission|performDefaultAction |XFormsModelSubmission.java | 296| |ch$$anonfun$dispatchEvent$1$$anonfun$apply$mcV$sp$1|apply$mcV$sp |Dispatch.scala | 125| |ch$$anonfun$dispatchEvent$1$$anonfun$apply$mcV$sp$1|apply |Dispatch.scala | 74| |ch$$anonfun$dispatchEvent$1$$anonfun$apply$mcV$sp$1|apply |Dispatch.scala | 74| |org.orbeon.oxf.util.Logging$class |withDebug |Logging.scala | 50| |org.orbeon.oxf.xforms.event.Dispatch$ |withDebug |Dispatch.scala | 23| |.oxf.xforms.event.Dispatch$$anonfun$dispatchEvent$1|apply$mcV$sp |Dispatch.scala | 74| |.oxf.xforms.event.Dispatch$$anonfun$dispatchEvent$1|apply |Dispatch.scala | 73| |.oxf.xforms.event.Dispatch$$anonfun$dispatchEvent$1|apply |Dispatch.scala | 73| |org.orbeon.oxf.xforms.event.Dispatch$ |withEvent$1 |Dispatch.scala | 38| |org.orbeon.oxf.xforms.event.Dispatch$ |dispatchEvent |Dispatch.scala | 72| |g.orbeon.oxf.xforms.action.actions.XFormsSendAction|execute |XFormsSendAction.scala | 51| |org.orbeon.oxf.xforms.action.XFormsAction |execute |XFormsAction.scala | 36| |rg.orbeon.oxf.xforms.action.XFormsActionInterpreter|runSingleIteration |XFormsActionInterpreter.java | 205| |---8<--------8<--------8<--------8<--------8<--------8<--------8<--------8<--------8<--------8<--------8<--------8<---| |org.apache.catalina.core.ApplicationFilterChain |internalDoFilter |ApplicationFilterChain.java | 243| |org.apache.catalina.core.ApplicationFilterChain |doFilter |ApplicationFilterChain.java | 210| |.springframework.web.filter.CharacterEncodingFilter|doFilterInternal |CharacterEncodingFilter.java | 88| |org.springframework.web.filter.OncePerRequestFilter|doFilter |OncePerRequestFilter.java | 76| |rg.springframework.web.filter.DelegatingFilterProxy|invokeDelegate |DelegatingFilterProxy.java | 346| |rg.springframework.web.filter.DelegatingFilterProxy|doFilter |DelegatingFilterProxy.java | 259| |org.apache.catalina.core.ApplicationFilterChain |internalDoFilter |ApplicationFilterChain.java | 243| |org.apache.catalina.core.ApplicationFilterChain |doFilter |ApplicationFilterChain.java | 210| |org.apache.catalina.core.StandardWrapperValve |invoke |StandardWrapperValve.java | 222| |org.apache.catalina.core.StandardContextValve |invoke |StandardContextValve.java | 123| |org.apache.catalina.core.StandardHostValve |invoke |StandardHostValve.java | 171| |org.apache.catalina.valves.ErrorReportValve |invoke |ErrorReportValve.java | 99| |org.apache.catalina.core.StandardEngineValve |invoke |StandardEngineValve.java | 118| |org.apache.catalina.connector.CoyoteAdapter |service |CoyoteAdapter.java | 408| |org.apache.coyote.http11.AbstractHttp11Processor |process |AbstractHttp11Processor.java |1023| |e.coyote.AbstractProtocol$AbstractConnectionHandler|process |AbstractProtocol.java | 589| |.apache.tomcat.util.net.JIoEndpoint$SocketProcessor|run |JIoEndpoint.java | 312| |java.util.concurrent.ThreadPoolExecutor |runWorker |ThreadPoolExecutor.java |1145| |java.util.concurrent.ThreadPoolExecutor$Worker |run |ThreadPoolExecutor.java | 615| |java.lang.Thread |run |Thread.java | 744| +----------------------------------------------------------------------------------------------------------------------+"} 2013-12-05 17:54:23,468 INFO ProcessorService - /xforms-server - Timing: 479 |
Administrator
|
Does your orbeon_form_data table in MySQL have a column called "xml"? As in the following Orbeon Forms 4.3 and 4.4 DDL
https://github.com/orbeon/orbeon-forms/blob/master/src/resources/apps/fr/persistence/relational/ddl/mysql-4_3.sql https://github.com/orbeon/orbeon-forms/blob/master/src/resources/apps/fr/persistence/relational/ddl/mysql-4_4.sql Regards, -Erik |
Hi Erik,
Thanks for your answer.. Yes I have the xml column in the database.. I used the DDL script from the Orbeon github repository.. If I run the Orbeon Form outside grails and IntelliJ everything works fine.. I only get the error when I run Orbeon from IntelliJ using grails configuration and use the free text search.. but when I click on the "Show search option" and tried to search by application or formname it works fine... It seems like it has something to do with the grails connection setup in IntelliJ or maybe I'm missing a parameter.. regards Balatharan |
Administrator
|
Sorry I can't be of much help as I don't know how the grails/IntelliJ combo is supposed to work. But at least it's good that it's working outside of that.
-Erik |
Hi Erik,
Thanks for your answer.. Regards Balatharan |
Hi Erik,
It seems the issue is related to our authentication method. We have the following authentication configuration in our properties file: <property as="xs:string" name="oxf.fr.authentication.method" value="header"/> <property as="xs:string" name="oxf.fr.authentication.header.username" value="username-header"/> <property as="xs:string" name="oxf.fr.authentication.header.roles" value="group-header"/> <property as="xs:string" name="oxf.fr.authentication.header.group" value="role-header"/> <property as="xs:string" name="oxf.xforms.forward-submission-headers" value="username-header group-header role-header"/> This works well as far as authentication, roles and usernames are concerned. However, the last line (header forwarding) in particular seems to be causing the error in the free text search. The search functionality works as intended if we remove this line. Note that the normal search (Form Name / Form Title / Form Description) works in either case. |
Extra info:
We have found out that the error occurs when using the header forwarding, as mentioned above, in Form Builder, which conflicts with include-draft check in the search.xpl... The two code snippets below is activated, which they should not be when searching in form builder. Why is these two code snippets activated when using header forwarding in Orbeon Form Builder and how can I disable this, so the free-text search works.? <xsl:variable name="include-drafts" as="xs:boolean" select="(empty(/search/drafts) or /search/drafts = ('include', 'only')) and /search/@orbeon-username != ''"/> ... <xsl:if test="$include-drafts"> ( select * from orbeon_form_data d1 where app = <sql:param type="xs:string" select="/search/app"/> and form = <sql:param type="xs:string" select="/search/form"/> and draft = 'Y' <xsl:if test="exists(/search/drafts/@for-document-id)"> and document_id = <sql:param type="xs:string" select="/search/drafts/@for-document-id"/> </xsl:if> <xsl:if test="/search/drafts/@for-never-saved-document = 'true'"> and ( select count(*) from orbeon_form_data d2 where d2.app = <sql:param type="xs:string" select="/search/app"/> and d2.form = <sql:param type="xs:string" select="/search/form"/> and d2.draft = 'N' and d2.document_id = d1.document_id ) = 0 </xsl:if> <xsl:copy-of select="f:search-conditions(/)"/> <xsl:copy-of select="f:owner-group-condition('d1')"/> ) </xsl:if> |
Administrator
|
Hi Balatharan,
So, what we would be simplest set of steps for us to reproduce this? I gather from your message we would have to: - Use Orbeon Forms 4.4 - Set <property as="xs:string" name="oxf.xforms.forward-submission-headers" value="username-header group-header role-header"/> - Setup the persistence to use MySQL - Create a form, got the summary page for that form, and use the free text search Is that all? Alex
--
Follow Orbeon on Twitter: @orbeon Follow me on Twitter: @avernet |
Hi Alex,
The setup list you have mentioned is fine.. But you need to use the summary page, which is loaded when clicking the "Summary" button in Form Builder.. and not the summay page for a form. regards Balatharan |
Administrator
|
Balatharan,
So to reproduce, I should: - Use Orbeon Forms 4.4 - Set <property as="xs:string" name="oxf.xforms.forward-submission-headers" value="username-header group-header role-header"/> - Setup the persistence to use MySQL - Go to the Form Builder summary page (http://localhost:8080/orbeon/fr/orbeon/builder/summary) Is that it? Alex
--
Follow Orbeon on Twitter: @orbeon Follow me on Twitter: @avernet |
Hi Alex,
Yes, the setup is correct and you should reproduce the error now.. I look forward to your answer.. Regard Balatharan |
hi Alex,
Any status on this issue.. have you been able to reproduce the issue? I can see that you have created the issue : https://github.com/orbeon/orbeon-forms/issues/1541 regarding header and permission.. is my issue and the issue mentioned above the same or different.. |
Administrator
|
Hi Balatharan,
Sorry for the delay! So I now managed to reproduce the issue with 4.4; thank you for the hand holding! The problem still exist with our latest code, so I created the issue linked below. We'll see if we can fix it for 4.5, and post an update here when done. https://github.com/orbeon/orbeon-forms/issues/1569 Alex
--
Follow Orbeon on Twitter: @orbeon Follow me on Twitter: @avernet |
Administrator
|
In reply to this post by javaudvikling
Hi Balatharan,
Issue #1569 is now fixed, and the fix will be in 4.5. Thank you again for letting us know about this, and for the detailed steps on how to reproduce it. Alex
--
Follow Orbeon on Twitter: @orbeon Follow me on Twitter: @avernet |
Free forum by Nabble | Edit this page |