List Archive Export Fails when list contains query metadata overide

LabKey Support Forum (Inactive)
List Archive Export Fails when list contains query metadata overide pelzc  2016-01-20 15:59
Status: Closed
 
I have a list with XML metadata defined for one column. When I try to do a list archive export, I get an empty archive and a null pointer exception in the labkey log. Here is the XML metadata:

<tables xmlns="http://labkey.org/data/xml">
    <table tableName="OmeroImages" tableDbType="NOT_IN_DB">
        <columns>
              <column columnName="OmeroId">
              </column>
          </columns>
    </table>
</tables>

Here is the logged stack trace:

ERROR ExceptionUtil 2016-01-20 15:46:52,813 ajp-bio-8009-exec-13 : Exception detected and logged to mothership
java.lang.NullPointerException
    at org.labkey.list.model.ListWriter$ListTableInfoWriter.writeColumn(ListWriter.java:366)
    at org.labkey.api.data.TableInfoWriter.writeTable(TableInfoWriter.java:66)
    at org.labkey.list.model.ListWriter$ListTableInfoWriter.writeTable(ListWriter.java:346)
    at org.labkey.list.model.ListWriter.write(ListWriter.java:134)
    at org.labkey.list.controllers.ListController$ExportListArchiveAction.export(ListController.java:1164)
    at org.labkey.list.controllers.ListController$ExportListArchiveAction.export(ListController.java:1143)
    at org.labkey.api.action.ExportAction.getView(ExportAction.java:53)
    at org.labkey.api.action.SimpleViewAction.handleRequest(SimpleViewAction.java:80)
    at org.labkey.api.action.BaseViewAction.handleRequest(BaseViewAction.java:214)
    at org.labkey.api.action.SpringActionController.handleRequest(SpringActionController.java:414)
    at org.labkey.api.module.DefaultModule.dispatch(DefaultModule.java:1218)
    at org.labkey.api.view.ViewServlet._service(ViewServlet.java:190)
    at org.labkey.api.view.ViewServlet.service(ViewServlet.java:124)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    at org.labkey.api.data.TransactionFilter.doFilter(TransactionFilter.java:38)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    at org.labkey.core.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:118)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    at org.labkey.api.module.ModuleLoader.doFilter(ModuleLoader.java:1121)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    at org.labkey.api.security.AuthFilter.doFilter(AuthFilter.java:160)
    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:171)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:931)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
    at org.apache.coyote.ajp.AjpProcessor.process(AjpProcessor.java:200)
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
    at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)
ERROR ExceptionUtil 2016-01-20 15:46:52,817 ajp-bio-8009-exec-13 : Unhandled exception: 500: Unexpected server error
java.lang.NullPointerException
    at org.labkey.list.model.ListWriter$ListTableInfoWriter.writeColumn(ListWriter.java:366)
    at org.labkey.api.data.TableInfoWriter.writeTable(TableInfoWriter.java:66)
    at org.labkey.list.model.ListWriter$ListTableInfoWriter.writeTable(ListWriter.java:346)
    at org.labkey.list.model.ListWriter.write(ListWriter.java:134)
    at org.labkey.list.controllers.ListController$ExportListArchiveAction.export(ListController.java:1164)
    at org.labkey.list.controllers.ListController$ExportListArchiveAction.export(ListController.java:1143)
    at org.labkey.api.action.ExportAction.getView(ExportAction.java:53)
    at org.labkey.api.action.SimpleViewAction.handleRequest(SimpleViewAction.java:80)
    at org.labkey.api.action.BaseViewAction.handleRequest(BaseViewAction.java:214)
    at org.labkey.api.action.SpringActionController.handleRequest(SpringActionController.java:414)
    at org.labkey.api.module.DefaultModule.dispatch(DefaultModule.java:1218)
    at org.labkey.api.view.ViewServlet._service(ViewServlet.java:190)
    at org.labkey.api.view.ViewServlet.service(ViewServlet.java:124)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    at org.labkey.api.data.TransactionFilter.doFilter(TransactionFilter.java:38)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    at org.labkey.core.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:118)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    at org.labkey.api.module.ModuleLoader.doFilter(ModuleLoader.java:1121)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    at org.labkey.api.security.AuthFilter.doFilter(AuthFilter.java:160)
    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:171)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:931)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
    at org.apache.coyote.ajp.AjpProcessor.process(AjpProcessor.java:200)
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
    at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)
 
 
Ben Bimber responded:  2016-01-20 16:11
just to add a little to that:

1) the above is metadata added through schema browser
2) it exports fine when this metadata is taken out
3) the above is the minimal metadata that was able to repro the error
4) the original list has about 4 columns, and the query.xml above only references 1 (which should be permissible).
5) this is on 15.3
 
Jon (LabKey DevOps) responded:  2016-01-22 13:27
Hi,

It looks like this was fixed in the upcoming 16.1 build which should be out in mid-March:

https://www.labkey.org/home/Developer/issues/issues-details.view?issueId=25367

If you would like to install our unstable trunk build that currently has this fix in it in lieu of waiting, please let us know.

Regards,

Jon