Hello,
I'm implementing a module in Java, and I'm having trouble getting the data to show in the Query Browser. If I click on the module name, I get a NullPointerException (The stack trace is below).
I've tried to use the debugger, but I'm getting a transaction cancelled error when I try to figure out which assertation is causing the exception. I would guess that this is coming from reading the schema XML file, but figured I would post a question here to make sure before heading down that rabbit hole.
We are currently developing against LabKey 11.2
java.lang.NullPointerException
at org.labkey.api.data.SchemaColumnMetaData.addColumn(SchemaColumnMetaData.java:207)
at org.labkey.api.data.SchemaColumnMetaData.loadColumnsFromXml(SchemaColumnMetaData.java:123)
at org.labkey.api.data.SchemaColumnMetaData.<init>(SchemaColumnMetaData.java:78)
at org.labkey.api.data.SchemaTableInfo.getColumnMetaData(SchemaTableInfo.java:320)
at org.labkey.api.data.SchemaTableInfo.getTitleColumn(SchemaTableInfo.java:209)
at org.labkey.api.data.ColumnInfo$SchemaForeignKey.createLookupColumn(ColumnInfo.java:1053)
at org.labkey.api.data.ColumnInfo.getDisplayField(ColumnInfo.java:478)
at org.labkey.api.data.ColumnInfo.getWidth(ColumnInfo.java:534)
at org.labkey.api.data.ColumnInfo.setExtraAttributesFrom(ColumnInfo.java:285)
at org.labkey.api.data.ColumnInfo.copyAttributesFrom(ColumnInfo.java:245)
at org.labkey.api.query.FilteredTable.wrapColumn(FilteredTable.java:215)
at org.labkey.api.query.FilteredTable.wrapColumn(FilteredTable.java:227)
at org.labkey.query.data.SimpleUserSchema$SimpleTable.wrapAllColumns(SimpleUserSchema.java:137)
at org.labkey.query.data.SimpleUserSchema$SimpleTable.<init>(SimpleUserSchema.java:125)
at org.labkey.query.data.SimpleUserSchema.createTable(SimpleUserSchema.java:89)
at org.labkey.query.data.SimpleUserSchema.createTable(SimpleUserSchema.java:84)
at org.labkey.api.query.UserSchema._getTableOrQuery(UserSchema.java:99)
at org.labkey.api.query.UserSchema.getTable(UserSchema.java:75)
at org.labkey.api.query.UserSchema.getTable(UserSchema.java:126)
at org.labkey.query.controllers.GetSchemaQueryTreeAction.execute(GetSchemaQueryTreeAction.java:132)
at org.labkey.query.controllers.GetSchemaQueryTreeAction.execute(GetSchemaQueryTreeAction.java:43)
at org.labkey.api.action.ApiAction.handlePost(ApiAction.java:147)
at org.labkey.api.action.ApiAction.handleRequest(ApiAction.java:98)
at org.labkey.api.action.BaseViewAction.handleRequestInternal(BaseViewAction.java:166)
at org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:153)
at org.labkey.api.action.SpringActionController.handleRequest(SpringActionController.java:346)
at org.labkey.api.module.DefaultModule.dispatch(DefaultModule.java:765)
at org.labkey.api.view.ViewServlet.service(ViewServlet.java:164)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.labkey.api.data.TransactionFilter.doFilter(TransactionFilter.java:36)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.labkey.core.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:118)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.labkey.api.module.ModuleLoader.doFilter(ModuleLoader.java:684)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.labkey.api.security.AuthFilter.doFilter(AuthFilter.java:143)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:172)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:879)
at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
at java.lang.Thread.run(Thread.java:662 |
|
jeckels responded: |
2012-03-19 10:46 |
Hello,
Yes, this is related to the schema XML metadata file. Looking at the code, it seems like this could happen if you have a <column> in your XML file without a columnName attribute, or perhaps if you have <column> that refers to a column name that doesn't exist in the underlying database.
The code in question has changed since 11.2 and it looks like we shouldn't hit this exception anymore.
Thanks,
Josh |
|
mpeterson responded: |
2012-03-20 08:00 |
Thank you - turned out I had a letter transposition in there that I missed in my lookthrough. My code is now working both on 11.2 and 11.3
Thanks,
Matt |
|
|
|