inception-project / inception

INCEpTION provides a semantic annotation platform offering intelligent annotation assistance and knowledge management.
https://inception-project.github.io
Apache License 2.0
588 stars 149 forks source link

Export doesn't work #3092

Closed dmilcevski closed 2 years ago

dmilcevski commented 2 years ago

Describe the bug When trying to export a project in INCEpTION 23.6, the export fails with an exception (See the section screenshots)

To Reproduce Steps to reproduce the behavior:

  1. Go to any project
  2. Click on 'Settings"
  3. Scroll down to 'Export'
  4. Click on 'Export' on the left side
  5. Click on 'Start export'

Expected behavior Tho have a visual feedback that an export is being prepared, however the UI doesn't show any visual feedback that something is happening. And when the export is ready to be able to download the export locally. This is not there.

Screenshots This is the error I get in the logs when clicking on the 'Start export'. Before this log error there are quite a few messages showing that the files are being exported. Tried with another project where there is no error in the log, but still the export doesn't show anything

Screen Shot 2022-06-03 at 08 50 21
PrimitiveAnalysisEngine_impl - Exception occurred
org.apache.uima.analysis_engine.AnalysisEngineProcessException: Annotator processing failed.
    at org.apache.uima.analysis_engine.impl.PrimitiveAnalysisEngine_impl.callAnalysisComponentProcess(PrimitiveAnalysisEngine_impl.java:406) ~[uimaj-core-3.2.0.jar!/:3.2.0]
    at org.apache.uima.analysis_engine.impl.PrimitiveAnalysisEngine_impl.processAndOutputNewCASes(PrimitiveAnalysisEngine_impl.java:299) ~[uimaj-core-3.2.0.jar!/:3.2.0]
    at org.apache.uima.analysis_engine.impl.AnalysisEngineImplBase.process(AnalysisEngineImplBase.java:272) ~[uimaj-core-3.2.0.jar!/:3.2.0]
    at de.tudarmstadt.ukp.inception.export.DocumentImportExportServiceImpl.exportCasToFile(DocumentImportExportServiceImpl.java:532) ~[inception-export-23.6.jar!/:?]
    at de.tudarmstadt.ukp.inception.export.DocumentImportExportServiceImpl.exportAnnotationDocument(DocumentImportExportServiceImpl.java:261) ~[inception-export-23.6.jar!/:?]
    at de.tudarmstadt.ukp.inception.export.DocumentImportExportServiceImpl$$FastClassBySpringCGLIB$$6bf689d0.invoke(<generated>) ~[inception-export-23.6.jar!/:?]
    at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218) ~[spring-core-5.3.20.jar!/:5.3.20]
    at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793) ~[spring-aop-5.3.20.jar!/:5.3.20]
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163) ~[spring-aop-5.3.20.jar!/:5.3.20]
    at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763) ~[spring-aop-5.3.20.jar!/:5.3.20]
    at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:123) ~[spring-tx-5.3.20.jar!/:5.3.20]
    at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:388) ~[spring-tx-5.3.20.jar!/:5.3.20]
    at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119) ~[spring-tx-5.3.20.jar!/:5.3.20]
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.3.20.jar!/:5.3.20]
    at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763) ~[spring-aop-5.3.20.jar!/:5.3.20]
    at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708) ~[spring-aop-5.3.20.jar!/:5.3.20]
    at de.tudarmstadt.ukp.inception.export.DocumentImportExportServiceImpl$$EnhancerBySpringCGLIB$$e68608fe.exportAnnotationDocument(<generated>) ~[inception-export-23.6.jar!/:?]
    at de.tudarmstadt.ukp.inception.export.exporters.AnnotationDocumentExporter.exportAnnotationDocumentContents(AnnotationDocumentExporter.java:265) ~[inception-export-23.6.jar!/:?]
    at de.tudarmstadt.ukp.inception.export.exporters.AnnotationDocumentExporter.exportData(AnnotationDocumentExporter.java:136) ~[inception-export-23.6.jar!/:?]
    at de.tudarmstadt.ukp.inception.project.export.ProjectExportServiceImpl.exportProjectToPath(ProjectExportServiceImpl.java:255) ~[inception-project-export-23.6.jar!/:?]
    at de.tudarmstadt.ukp.inception.project.export.ProjectExportServiceImpl.exportProject(ProjectExportServiceImpl.java:201) ~[inception-project-export-23.6.jar!/:?]
    at de.tudarmstadt.ukp.inception.project.export.ProjectExportServiceImpl.exportProject(ProjectExportServiceImpl.java:176) ~[inception-project-export-23.6.jar!/:?]
    at de.tudarmstadt.ukp.inception.project.export.ProjectExportServiceImpl$$FastClassBySpringCGLIB$$fe9018a4.invoke(<generated>) ~[inception-project-export-23.6.jar!/:?]
    at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218) ~[spring-core-5.3.20.jar!/:5.3.20]
    at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793) ~[spring-aop-5.3.20.jar!/:5.3.20]
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163) ~[spring-aop-5.3.20.jar!/:5.3.20]
    at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763) ~[spring-aop-5.3.20.jar!/:5.3.20]
    at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:123) ~[spring-tx-5.3.20.jar!/:5.3.20]
    at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:388) ~[spring-tx-5.3.20.jar!/:5.3.20]
    at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119) ~[spring-tx-5.3.20.jar!/:5.3.20]
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.3.20.jar!/:5.3.20]
    at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763) ~[spring-aop-5.3.20.jar!/:5.3.20]
    at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708) ~[spring-aop-5.3.20.jar!/:5.3.20]
    at de.tudarmstadt.ukp.inception.project.export.ProjectExportServiceImpl$$EnhancerBySpringCGLIB$$88899fa.exportProject(<generated>) ~[inception-project-export-23.6.jar!/:?]
    at de.tudarmstadt.ukp.inception.project.export.task.backup.BackupProjectExportTask.export(BackupProjectExportTask.java:45) ~[inception-project-export-23.6.jar!/:?]
    at de.tudarmstadt.ukp.inception.project.export.task.backup.BackupProjectExportTask.export(BackupProjectExportTask.java:31) ~[inception-project-export-23.6.jar!/:?]
    at de.tudarmstadt.ukp.inception.project.export.task.ProjectExportTask_ImplBase.run(ProjectExportTask_ImplBase.java:102) ~[inception-project-export-23.6.jar!/:?]
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) ~[?:?]
    at java.util.concurrent.FutureTask.run(FutureTask.java:264) ~[?:?]
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) ~[?:?]
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) ~[?:?]
    at java.lang.Thread.run(Thread.java:829) ~[?:?]
Caused by: java.lang.NullPointerException
    at de.tudarmstadt.ukp.clarin.webanno.tsv.internal.tsv3x.Tsv3XSerializer.writeRelationReference(Tsv3XSerializer.java:320) ~[inception-io-webanno-tsv-23.6.jar!/:?]
    at de.tudarmstadt.ukp.clarin.webanno.tsv.internal.tsv3x.Tsv3XSerializer.writeValue(Tsv3XSerializer.java:267) ~[inception-io-webanno-tsv-23.6.jar!/:?]
    at de.tudarmstadt.ukp.clarin.webanno.tsv.internal.tsv3x.Tsv3XSerializer.writeValues(Tsv3XSerializer.java:246) ~[inception-io-webanno-tsv-23.6.jar!/:?]
    at de.tudarmstadt.ukp.clarin.webanno.tsv.internal.tsv3x.Tsv3XSerializer.write(Tsv3XSerializer.java:226) ~[inception-io-webanno-tsv-23.6.jar!/:?]
    at de.tudarmstadt.ukp.clarin.webanno.tsv.internal.tsv3x.Tsv3XSerializer.write(Tsv3XSerializer.java:198) ~[inception-io-webanno-tsv-23.6.jar!/:?]
    at de.tudarmstadt.ukp.clarin.webanno.tsv.internal.tsv3x.Tsv3XSerializer.write(Tsv3XSerializer.java:79) ~[inception-io-webanno-tsv-23.6.jar!/:?]
    at de.tudarmstadt.ukp.clarin.webanno.tsv.WebannoTsv3XWriter.process(WebannoTsv3XWriter.java:67) ~[inception-io-webanno-tsv-23.6.jar!/:?]
    at org.apache.uima.analysis_component.JCasAnnotator_ImplBase.process(JCasAnnotator_ImplBase.java:48) ~[uimaj-core-3.2.0.jar!/:3.2.0]
    at org.apache.uima.analysis_engine.impl.AnalysisEngineImplBase.lambda$callProcessMethod$3(AnalysisEngineImplBase.java:623) ~[uimaj-core-3.2.0.jar!/:3.2.0]
    at org.apache.uima.analysis_engine.impl.AnalysisEngineImplBase.withContexts(AnalysisEngineImplBase.java:640) ~[uimaj-core-3.2.0.jar!/:3.2.0]
    at org.apache.uima.analysis_engine.impl.AnalysisEngineImplBase.callProcessMethod(AnalysisEngineImplBase.java:620) ~[uimaj-core-3.2.0.jar!/:3.2.0]
    at org.apache.uima.analysis_engine.impl.PrimitiveAnalysisEngine_impl.callAnalysisComponentProcess(PrimitiveAnalysisEngine_impl.java:381) ~[uimaj-core-3.2.0.jar!/:3.2.0]
    ... 41 more
2022-06-03 06:42:25 ERROR [mdr2rng] BackupProjectExportTask - Unexpected error during project export
de.tudarmstadt.ukp.clarin.webanno.api.export.ProjectExportException: Project export failed
    at de.tudarmstadt.ukp.inception.project.export.ProjectExportServiceImpl.exportProjectToPath(ProjectExportServiceImpl.java:274) ~[inception-project-export-23.6.jar!/:?]
    at de.tudarmstadt.ukp.inception.project.export.ProjectExportServiceImpl.exportProject(ProjectExportServiceImpl.java:201) ~[inception-project-export-23.6.jar!/:?]
    at de.tudarmstadt.ukp.inception.project.export.ProjectExportServiceImpl.exportProject(ProjectExportServiceImpl.java:176) ~[inception-project-export-23.6.jar!/:?]
    at de.tudarmstadt.ukp.inception.project.export.ProjectExportServiceImpl$$FastClassBySpringCGLIB$$fe9018a4.invoke(<generated>) ~[inception-project-export-23.6.jar!/:?]
    at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218) ~[spring-core-5.3.20.jar!/:5.3.20]
    at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793) ~[spring-aop-5.3.20.jar!/:5.3.20]
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163) ~[spring-aop-5.3.20.jar!/:5.3.20]
    at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763) ~[spring-aop-5.3.20.jar!/:5.3.20]
    at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:123) ~[spring-tx-5.3.20.jar!/:5.3.20]
    at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:388) ~[spring-tx-5.3.20.jar!/:5.3.20]
    at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119) ~[spring-tx-5.3.20.jar!/:5.3.20]
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.3.20.jar!/:5.3.20]
    at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763) ~[spring-aop-5.3.20.jar!/:5.3.20]
    at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708) ~[spring-aop-5.3.20.jar!/:5.3.20]
    at de.tudarmstadt.ukp.inception.project.export.ProjectExportServiceImpl$$EnhancerBySpringCGLIB$$88899fa.exportProject(<generated>) ~[inception-project-export-23.6.jar!/:?]
    at de.tudarmstadt.ukp.inception.project.export.task.backup.BackupProjectExportTask.export(BackupProjectExportTask.java:45) ~[inception-project-export-23.6.jar!/:?]
    at de.tudarmstadt.ukp.inception.project.export.task.backup.BackupProjectExportTask.export(BackupProjectExportTask.java:31) ~[inception-project-export-23.6.jar!/:?]
    at de.tudarmstadt.ukp.inception.project.export.task.ProjectExportTask_ImplBase.run(ProjectExportTask_ImplBase.java:102) ~[inception-project-export-23.6.jar!/:?]
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) ~[?:?]
    at java.util.concurrent.FutureTask.run(FutureTask.java:264) ~[?:?]
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) ~[?:?]
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) ~[?:?]
    at java.lang.Thread.run(Thread.java:829) ~[?:?]
Caused by: java.lang.NullPointerException: file
    at java.util.Objects.requireNonNull(Objects.java:246) ~[?:?]
    at org.apache.commons.io.FileUtils.forceDelete(FileUtils.java:1338) ~[commons-io-2.11.0.jar!/:2.11.0]
    at de.tudarmstadt.ukp.inception.export.exporters.AnnotationDocumentExporter.exportAnnotationDocumentContents(AnnotationDocumentExporter.java:272) ~[inception-export-23.6.jar!/:?]
    at de.tudarmstadt.ukp.inception.export.exporters.AnnotationDocumentExporter.exportData(AnnotationDocumentExporter.java:136) ~[inception-export-23.6.jar!/:?]
    at de.tudarmstadt.ukp.inception.project.export.ProjectExportServiceImpl.exportProjectToPath(ProjectExportServiceImpl.java:255) ~[inception-project-export-23.6.jar!/:?]
    ... 22 more

Please complete the following information:

Additional context Add any other context about the problem here.

reckart commented 2 years ago

Looks like a duplicate of https://github.com/inception-project/inception/issues/3066 but that should already be fixed in 23.6.

It is also interesting that you seem to have selected "no additional format", yet the TSV exporter seems to be invoked...

Do you get the error also if you select e.g. CAS XMI as additional format?

dmilcevski commented 2 years ago

I don't see the error when I chose CAS XMI 1.1 as an additional export format. Nonetheless I don't get any feedback in the UI that an export is prepared nor a zip is being downloaded after the export finishes. There is also not any meaningful error in the browser console, only this:

Firefox can’t establish a connection to the server at wss://<domain.com>/inception/ws. [vue3-sfc-loader.min-ver-717552FDF69A9157ACE1D07499BBC5F9.js line 92 > Function:37:20](https://inception.ai-know-platform-sandbox.de/inception/wicket/resource/de.tudarmstadt.ukp.inception.support.vue.VueBehavior/vue3-sfc-loader.min-ver-717552FDF69A9157ACE1D07499BBC5F9.js%20line%2092%20%3E%20Function)
Whoops! Lost connection to wss://<domain.com>/inception/ws: 
Object { event: close }
[webstomp.min-ver-2B0B110FE1C4F8C4F048C05A5F5FEB8A.js:1:6363](https://<domain.com>/inception/wicket/resource/de.agilecoders.wicket.webjars.request.resource.WebjarsJavaScriptResourceReference/webjars/webstomp-client/1.2.6/dist/webstomp.min-ver-2B0B110FE1C4F8C4F048C05A5F5FEB8A.js)
Websocket connection error: {"isTrusted":true}

I tried with different browsers, like Chrome, Mozilla and Safari. We had the same issue before, and I remember there was a configuration to roll back the export view to the old one, which I did, but now with the upgrade to 23.6 seems that the old export screen is gone. Or maybe there is a different configuration to get it back.

reckart commented 2 years ago

Use websocket.enabled=false.

reckart commented 2 years ago

I still don't understand why the system tried to export WebAnno TSV if the selection on the export page was set to "No additional format" - locally I cannot reproduce that.

But there is an error message now if WebSocket is not available.