Done
Details
Assignee
steve.osguthorpesteve.osguthorpeReporter
Owen StephensOwen StephensComponents
Priority
TBDSprint
NoneDevelopment Team
BienenvolkTestRail: Cases
Open TestRail: CasesTestRail: Runs
Open TestRail: Runs
Details
Details
Assignee
steve.osguthorpe
steve.osguthorpeReporter
Owen Stephens
Owen StephensComponents
Priority
Sprint
None
Development Team
Bienenvolk
TestRail: Cases
Open TestRail: Cases
TestRail: Runs
Open TestRail: Runs
Created March 13, 2020 at 10:06 AM
Updated March 23, 2020 at 11:20 AM
Resolved March 23, 2020 at 11:20 AM
When loading a KBART file, if the publication_type column is empty, the line should be skipped and the problem logged as an error: "Missing publication_type for title: <title line>, but the process should continue with any other lines in the file
Currently when a line is missing publication_type the whole load fails. e.g. trying to load the attached KBART file results in failure with no useful information to the user. The console reports:
2020-03-13 09:58:07.832 DEBUG --- [pool-4-thread-1] org.olf.ImportService : Attempting to import package from KBART file 2020-03-13 09:58:07.837 ERROR --- [pool-4-thread-1] org.olf.ImportService : Property [value] of class [class org.olf.dataimport.erm.Identifier] cannot be null 2020-03-13 09:58:07.838 ERROR --- [pool-4-thread-1] org.olf.ImportService : Property [value] of class [class org.olf.dataimport.erm.Identifier] cannot be null 2020-03-13 09:58:07.840 ERROR --- [pool-4-thread-1] org.olf.ImportService : Property [value] of class [class org.olf.dataimport.erm.Identifier] cannot be null 2020-03-13 09:58:07.842 ERROR --- [pool-4-thread-1] org.olf.ImportService : Property [value] of class [class org.olf.dataimport.erm.Identifier] cannot be null 2020-03-13 09:58:07.857 ERROR --- [pool-4-thread-1] org.olf.ImportService : Property [value] of class [class org.olf.dataimport.erm.Identifier] cannot be null 2020-03-13 09:58:07.869 ERROR --- [pool-4-thread-1] org.olf.ImportService : Property [value] of class [class org.olf.dataimport.erm.Identifier] cannot be null 2020-03-13 09:58:07.872 ERROR --- [pool-4-thread-1] org.olf.ImportService : Property [value] of class [class org.olf.dataimport.erm.Identifier] cannot be null 2020-03-13 09:58:07.877 ERROR --- [pool-4-thread-1] org.olf.ImportService : Property [value] of class [class org.olf.dataimport.erm.Identifier] cannot be null 2020-03-13 09:58:07.879 ERROR --- [pool-4-thread-1] org.olf.ImportService : Property [value] of class [class org.olf.dataimport.erm.Identifier] cannot be null 2020-03-13 09:58:07.893 ERROR --- [pool-4-thread-1] org.olf.ImportService : Property [value] of class [class org.olf.dataimport.erm.Identifier] cannot be null 2020-03-13 09:58:07.896 ERROR --- [pool-4-thread-1] org.olf.ImportService : Property [value] of class [class org.olf.dataimport.erm.Identifier] cannot be null 2020-03-13 09:58:07.898 ERROR --- [pool-4-thread-1] org.olf.ImportService : Property [value] of class [class org.olf.dataimport.erm.Identifier] cannot be null 2020-03-13 09:58:07.899 ERROR --- [pool-4-thread-1] org.olf.ImportService : Property [value] of class [class org.olf.dataimport.erm.Identifier] cannot be null 2020-03-13 09:58:07.900 ERROR --- [pool-4-thread-1] org.olf.ImportService : Property [value] of class [class org.olf.dataimport.erm.Identifier] cannot be null 2020-03-13 09:58:07.905 ERROR --- [pool-4-thread-1] org.olf.ImportService : Property [value] of class [class org.olf.dataimport.erm.Identifier] cannot be null 2020-03-13 09:58:07.942 ERROR --- [pool-4-thread-1] org.olf.ImportService : Property [value] of class [class org.olf.dataimport.erm.Identifier] cannot be null 2020-03-13 09:58:07.944 ERROR --- [pool-4-thread-1] org.olf.ImportService : Property [value] of class [class org.olf.dataimport.erm.Identifier] cannot be null 2020-03-13 09:58:07.946 ERROR --- [pool-4-thread-1] org.olf.ImportService : Property [value] of class [class org.olf.dataimport.erm.Identifier] cannot be null 2020-03-13 09:58:07.947 ERROR --- [pool-4-thread-1] org.olf.ImportService : Property [value] of class [class org.olf.dataimport.erm.Identifier] cannot be null 2020-03-13 09:58:07.974 ERROR --- [pool-4-thread-1] org.olf.ImportService : Property [value] of class [class org.olf.dataimport.erm.Identifier] cannot be null 2020-03-13 09:58:07.982 ERROR --- [pool-4-thread-1] org.olf.ImportService : Property [value] of class [class org.olf.dataimport.erm.Identifier] cannot be null 2020-03-13 09:58:07.984 ERROR --- [pool-4-thread-1] org.olf.ImportService : Property [value] of class [class org.olf.dataimport.erm.Identifier] cannot be null 2020-03-13 09:58:07.996 ERROR --- [pool-4-thread-1] org.olf.ImportService : Property [value] of class [class org.olf.dataimport.erm.Identifier] cannot be null 2020-03-13 09:58:07.998 ERROR --- [pool-4-thread-1] org.olf.ImportService : Property [value] of class [class org.olf.dataimport.erm.Identifier] cannot be null 2020-03-13 09:58:08.002 ERROR --- [pool-4-thread-1] org.olf.ImportService : Property [value] of class [class org.olf.dataimport.erm.Identifier] cannot be null 2020-03-13 09:58:08.009 ERROR --- [pool-4-thread-1] org.olf.ImportService : Property [value] of class [class org.olf.dataimport.erm.Identifier] cannot be null 2020-03-13 09:58:08.012 ERROR --- [pool-4-thread-1] org.olf.ImportService : Property [value] of class [class org.olf.dataimport.erm.Identifier] cannot be null 2020-03-13 09:58:08.015 ERROR --- [pool-4-thread-1] org.olf.ImportService : Property [value] of class [class org.olf.dataimport.erm.Identifier] cannot be null 2020-03-13 09:58:08.023 ERROR --- [pool-4-thread-1] org.olf.ImportService : Property [value] of class [class org.olf.dataimport.erm.Identifier] cannot be null 2020-03-13 09:58:08.027 ERROR --- [pool-4-thread-1] org.olf.ImportService : Property [value] of class [class org.olf.dataimport.erm.Identifier] cannot be null 2020-03-13 09:58:08.030 ERROR --- [pool-4-thread-1] org.olf.ImportService : Property [value] of class [class org.olf.dataimport.erm.Identifier] cannot be null 2020-03-13 09:58:08.043 ERROR --- [pool-4-thread-1] org.olf.ImportService : Property [value] of class [class org.olf.dataimport.erm.Identifier] cannot be null 2020-03-13 09:58:08.045 ERROR --- [pool-4-thread-1] org.olf.ImportService : Property [value] of class [class org.olf.dataimport.erm.Identifier] cannot be null 2020-03-13 09:58:08.049 ERROR --- [pool-4-thread-1] org.olf.ImportService : Property [value] of class [class org.olf.dataimport.erm.Identifier] cannot be null 2020-03-13 09:58:08.050 ERROR --- [pool-4-thread-1] org.olf.ImportService : Property [value] of class [class org.olf.dataimport.erm.Identifier] cannot be null 2020-03-13 09:58:08.051 ERROR --- [pool-4-thread-1] org.olf.ImportService : Property [value] of class [class org.olf.dataimport.erm.Identifier] cannot be null 2020-03-13 09:58:08.051 ERROR --- [pool-4-thread-1] org.olf.ImportService : Property [value] of class [class org.olf.dataimport.erm.Identifier] cannot be null 2020-03-13 09:58:08.052 ERROR --- [pool-4-thread-1] org.olf.ImportService : Property [value] of class [class org.olf.dataimport.erm.Identifier] cannot be null 2020-03-13 09:58:08.064 ERROR --- [pool-4-thread-1] org.olf.ImportService : Property [value] of class [class org.olf.dataimport.erm.Identifier] cannot be null 2020-03-13 09:58:08.081 DEBUG --- [ XNIO-2 task-7] c.k.o.s.OkapiAuthenticationFilter : Request is to process authentication 2020-03-13 09:58:08.081 DEBUG --- [ XNIO-2 task-7] c.k.o.s.OkapiAuthenticationFilter : Authentication success. Updating SecurityContextHolder to contain: com.k_int.okapi.springsecurity.OkapiAuthenticationToken@ca48de84: Principal: com.k_int.okapi.springsecurity.OkapiAuthenticationToken$OkapiUserDetails@390baad5; Credentials: [PROTECTED]; Authenticated: true; Details: null; Granted Authorities: okapi.erm.jobs.item.get 2020-03-13 09:58:08.084 DEBUG --- [ XNIO-2 task-7] com.k_int.okapi.OkapiInterceptor : OkapiInterceptor::performSchemaCheck(diku) 2020-03-13 09:58:08.099 DEBUG --- [ XNIO-2 task-7] com.k_int.okapi.OkapiTenantAdminService : Checking to see if diku is already present in getAllTenantIds() : true 2020-03-13 09:58:08.099 DEBUG --- [ XNIO-2 task-7] com.k_int.okapi.OkapiTenantAdminService : performSchemaCheck(diku) -- true - no action needed 2020-03-13 09:58:08.111 DEBUG --- [ XNIO-2 task-11] c.k.o.s.OkapiAuthenticationFilter : Request is to process authentication 2020-03-13 09:58:08.112 DEBUG --- [ XNIO-2 task-11] c.k.o.s.OkapiAuthenticationFilter : Authentication success. Updating SecurityContextHolder to contain: com.k_int.okapi.springsecurity.OkapiAuthenticationToken@3989eb8f: Principal: com.k_int.okapi.springsecurity.OkapiAuthenticationToken$OkapiUserDetails@540f956b; Credentials: [PROTECTED]; Authenticated: true; Details: null; Granted Authorities: okapi.erm.jobs.collection.get 2020-03-13 09:58:08.113 DEBUG --- [ XNIO-2 task-11] com.k_int.okapi.OkapiInterceptor : OkapiInterceptor::performSchemaCheck(diku) 2020-03-13 09:58:08.113 DEBUG --- [ XNIO-2 task-11] com.k_int.okapi.OkapiTenantAdminService : Checking to see if diku is already present in getAllTenantIds() : true 2020-03-13 09:58:08.113 DEBUG --- [ XNIO-2 task-11] com.k_int.okapi.OkapiTenantAdminService : performSchemaCheck(diku) -- true - no action needed 2020-03-13 09:58:08.114 DEBUG --- [ XNIO-2 task-11] c.k_int.web.toolkit.SimpleLookupService : Got comparision parts [eqOrIsNull, status.label, Queued] 2020-03-13 09:58:08.114 DEBUG --- [ XNIO-2 task-11] com.k_int.web.toolkit.utils.DomainUtils : Returning org.olf.general.jobs.PersistentJob:status.label from cache. 2020-03-13 09:58:08.114 DEBUG --- [ XNIO-2 task-11] c.k_int.web.toolkit.SimpleLookupService : Looking for property status.label 2020-03-13 09:58:08.115 DEBUG --- [ XNIO-2 task-11] c.k_int.web.toolkit.SimpleLookupService : Checking for status 2020-03-13 09:58:08.115 DEBUG --- [ XNIO-2 task-11] c.k_int.web.toolkit.SimpleLookupService : Full match not found... 2020-03-13 09:58:08.115 DEBUG --- [ XNIO-2 task-11] c.k_int.web.toolkit.SimpleLookupService : ...propStr: status 2020-03-13 09:58:08.115 DEBUG --- [ XNIO-2 task-11] c.k_int.web.toolkit.SimpleLookupService : ...alias: null 2020-03-13 09:58:08.115 DEBUG --- [ XNIO-2 task-11] c.k_int.web.toolkit.SimpleLookupService : Creating alias: status -> alias0 2020-03-13 09:58:08.115 DEBUG --- [ XNIO-2 task-11] c.k_int.web.toolkit.SimpleLookupService : Added quick string: status -> alias0 2020-03-13 09:58:08.115 DEBUG --- [ XNIO-2 task-11] c.k_int.web.toolkit.SimpleLookupService : Converted Queued into Queued 2020-03-13 09:58:08.115 DEBUG --- [ XNIO-2 task-11] c.k_int.web.toolkit.SimpleLookupService : Got comparision parts [eqOrIsNull, status.label, In progress] 2020-03-13 09:58:08.115 DEBUG --- [ XNIO-2 task-11] com.k_int.web.toolkit.utils.DomainUtils : Returning org.olf.general.jobs.PersistentJob:status.label from cache. 2020-03-13 09:58:08.149 DEBUG --- [ XNIO-2 task-11] c.k_int.web.toolkit.SimpleLookupService : Looking for property status.label 2020-03-13 09:58:08.149 DEBUG --- [ XNIO-2 task-11] c.k_int.web.toolkit.SimpleLookupService : Checking for status 2020-03-13 09:58:08.149 DEBUG --- [ XNIO-2 task-11] c.k_int.web.toolkit.SimpleLookupService : Converted In progress into In progress 2020-03-13 09:58:08.149 DEBUG --- [ XNIO-2 task-11] c.k_int.web.toolkit.SimpleLookupService : Got comparision parts [eqOrIsNull, status.label, Ended] 2020-03-13 09:58:08.149 DEBUG --- [ XNIO-2 task-11] com.k_int.web.toolkit.utils.DomainUtils : Returning org.olf.general.jobs.PersistentJob:status.label from cache. 2020-03-13 09:58:08.150 DEBUG --- [ XNIO-2 task-11] c.k_int.web.toolkit.SimpleLookupService : Looking for property status.label 2020-03-13 09:58:08.150 DEBUG --- [ XNIO-2 task-11] c.k_int.web.toolkit.SimpleLookupService : Checking for status 2020-03-13 09:58:08.150 DEBUG --- [ XNIO-2 task-11] c.k_int.web.toolkit.SimpleLookupService : Converted Ended into Ended 2020-03-13 09:58:08.150 DEBUG --- [ XNIO-2 task-11] com.k_int.web.toolkit.utils.DomainUtils : Returning org.olf.general.jobs.PersistentJob:started from cache. 2020-03-13 09:58:08.150 DEBUG --- [ XNIO-2 task-11] c.k_int.web.toolkit.SimpleLookupService : Looking for property started 2020-03-13 09:58:08.150 DEBUG --- [ XNIO-2 task-11] c.k_int.web.toolkit.SimpleLookupService : Sort on started desc. 2020-03-13 09:58:08.158 DEBUG --- [ XNIO-2 task-10] c.k.o.s.OkapiAuthenticationFilter : Request is to process authentication 2020-03-13 09:58:08.159 DEBUG --- [ XNIO-2 task-10] c.k.o.s.OkapiAuthenticationFilter : Authentication success. Updating SecurityContextHolder to contain: com.k_int.okapi.springsecurity.OkapiAuthenticationToken@3ce85f48: Principal: com.k_int.okapi.springsecurity.OkapiAuthenticationToken$OkapiUserDetails@67070299; Credentials: [PROTECTED]; Authenticated: true; Details: null; Granted Authorities: okapi.erm.refdata.collection.get 2020-03-13 09:58:08.160 DEBUG --- [ XNIO-2 task-10] com.k_int.okapi.OkapiInterceptor : OkapiInterceptor::performSchemaCheck(diku) 2020-03-13 09:58:08.160 DEBUG --- [ XNIO-2 task-10] com.k_int.okapi.OkapiTenantAdminService : Checking to see if diku is already present in getAllTenantIds() : true 2020-03-13 09:58:08.160 DEBUG --- [ XNIO-2 task-10] com.k_int.okapi.OkapiTenantAdminService : performSchemaCheck(diku) -- true - no action needed 2020-03-13 09:58:08.203 DEBUG --- [ XNIO-2 task-14] c.k.o.s.OkapiAuthenticationFilter : Request is to process authentication 2020-03-13 09:58:08.203 DEBUG --- [ XNIO-2 task-14] c.k.o.s.OkapiAuthenticationFilter : Authentication success. Updating SecurityContextHolder to contain: com.k_int.okapi.springsecurity.OkapiAuthenticationToken@7b2b8a20: Principal: com.k_int.okapi.springsecurity.OkapiAuthenticationToken$OkapiUserDetails@20c4d7f1; Credentials: [PROTECTED]; Authenticated: true; Details: null; Granted Authorities: okapi.erm.refdata.collection.get 2020-03-13 09:58:08.216 DEBUG --- [ XNIO-2 task-14] com.k_int.okapi.OkapiInterceptor : OkapiInterceptor::performSchemaCheck(diku) 2020-03-13 09:58:08.216 DEBUG --- [ XNIO-2 task-14] com.k_int.okapi.OkapiTenantAdminService : Checking to see if diku is already present in getAllTenantIds() : true 2020-03-13 09:58:08.216 DEBUG --- [ XNIO-2 task-14] com.k_int.okapi.OkapiTenantAdminService : performSchemaCheck(diku) -- true - no action needed 2020-03-13 09:58:08.279 ERROR --- [pool-4-thread-1] org.olf.general.jobs.JobRunnerService : null 2020-03-13 09:58:08.279 ERROR --- [pool-4-thread-1] org.olf.general.jobs.JobRunnerService : Job execution failed java.lang.NullPointerException: null at org.olf.ImportService.importPackageFromKbart(ImportService.groovy:231) at org.olf.ImportService$importPackageFromKbart.call(Unknown Source) at org.olf.general.jobs.KbartImportJob$_getWork_closure1$_closure4.doCall(KbartImportJob.groovy:57) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:98) at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325) at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:264) at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1034) at groovy.lang.Closure.call(Closure.java:420) at groovy.lang.Closure.call(Closure.java:436) at grails.gorm.transactions.GrailsTransactionTemplate$2.doInTransaction(GrailsTransactionTemplate.groovy:94) at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:133) at grails.gorm.transactions.GrailsTransactionTemplate.execute(GrailsTransactionTemplate.groovy:91) at org.grails.datastore.gorm.GormStaticApi.withTransaction(GormStaticApi.groovy:1014) at org.grails.datastore.gorm.GormStaticApi.withTransaction(GormStaticApi.groovy:877) at org.grails.datastore.gorm.GormEntity$Trait$Helper.withTransaction(GormEntity.groovy:939) at org.grails.datastore.gorm.GormEntity$Trait$Helper$withTransaction$7.call(Unknown Source) at org.olf.general.jobs.PersistentJob.withTransaction(PersistentJob.groovy) at org.olf.general.jobs.PersistentJob$withTransaction$8.call(Unknown Source) at org.olf.general.jobs.KbartImportJob$_getWork_closure1.doCall(KbartImportJob.groovy:26) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:98) at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325) at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:264) at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1034) at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1099) at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1034) at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1099) at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1034) at groovy.lang.Closure.call(Closure.java:420) at groovy.lang.Closure.call(Closure.java:414) at java_util_concurrent_Callable$call.call(Unknown Source) at org.olf.general.jobs.JobRunnerService$_enqueueJob_closure5$_closure7$_closure8.doCall(JobRunnerService.groovy:171) at sun.reflect.GeneratedMethodAccessor735.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:98) at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325) at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:264) at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1034) at groovy.lang.Closure.call(Closure.java:420) at groovy.lang.Closure.call(Closure.java:436) at grails.gorm.multitenancy.Tenants$_withId_closure2$_closure6.doCall(Tenants.groovy:265) at grails.gorm.multitenancy.Tenants$_withId_closure2$_closure6.call(Tenants.groovy) at org.grails.orm.hibernate.GrailsHibernateTemplate$1.doInHibernate(GrailsHibernateTemplate.java:153) at org.grails.orm.hibernate.GrailsHibernateTemplate.doExecute(GrailsHibernateTemplate.java:299) at org.grails.orm.hibernate.GrailsHibernateTemplate.execute(GrailsHibernateTemplate.java:243) at org.grails.orm.hibernate.GrailsHibernateTemplate.executeWithNewSession(GrailsHibernateTemplate.java:150) at org.grails.orm.hibernate.GrailsHibernateTemplate.executeWithExistingOrCreateNewSession(GrailsHibernateTemplate.java:209) at org.grails.orm.hibernate.AbstractHibernateDatastore.withNewSession(AbstractHibernateDatastore.java:369) at grails.gorm.multitenancy.Tenants$_withId_closure2.doCall(Tenants.groovy:258) at grails.gorm.multitenancy.Tenants$_withId_closure2.call(Tenants.groovy) at grails.gorm.multitenancy.Tenants$CurrentTenant.withTenant(Tenants.groovy:358) at grails.gorm.multitenancy.Tenants.withId(Tenants.groovy:236) at grails.gorm.multitenancy.Tenants.withId(Tenants.groovy:169) at grails.gorm.multitenancy.Tenants$withId.call(Unknown Source) at org.olf.general.jobs.JobRunnerService$_enqueueJob_closure5$_closure7.doCall(JobRunnerService.groovy:166) at sun.reflect.GeneratedMethodAccessor734.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:98) at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325) at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:264) at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1034) at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1099) at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1034) at groovy.lang.Closure.call(Closure.java:420) at groovy.lang.Closure.call(Closure.java:414) at groovy.lang.Closure.run(Closure.java:501) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at java.lang.Thread.run(Thread.java:748)