NullPointerException in Schema Browser and Check

LabKey Support Forum
NullPointerException in Schema Browser and Check mpeterson  2012-03-16 15:16
Status: Closed
 
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