NCEAS / morpho

Morpho metadata editor
GNU General Public License v2.0
3 stars 1 forks source link

SystemMetadata missing for updated EML doc #967

Closed mbjones closed 6 years ago

mbjones commented 6 years ago

Author Name: ben leinfelder (ben leinfelder) Original Redmine Issue: 5793, https://projects.ecoinformatics.org/ecoinfo/issues/5793 Original Date: 2013-01-18 Original Assignee: ben leinfelder


Following the procedure outlined in #5792, we do not see the record for SystemMetadata in the Metacat systemMetadata table. I can see an error when inserting it into the table, the odd thing is that it is present in the HZ map so you can actually retrieve the SM even though it does not show in the listObjects result or in the backing table.

knb 20130118-19:28:04: [ERROR]: Error while creating systemmetadata record: tao.392 [edu.ucsb.nceas.metacat.IdentifierManager]

mbjones commented 6 years ago

Original Redmine Comment Author Name: ben leinfelder (ben leinfelder) Original Date: 2013-01-18T21:51:04Z


Here is the full stacktrace:

knb 20130118-19:28:04: [ERROR]: Error while creating systemmetadata record: tao.392 [edu.ucsb.nceas.metacat.IdentifierManager] java.lang.NullPointerException at edu.ucsb.nceas.metacat.IdentifierManager.updateSystemMetadataFields(IdentifierManager.java:1082) at edu.ucsb.nceas.metacat.IdentifierManager.updateSystemMetadata(IdentifierManager.java:1190) at edu.ucsb.nceas.metacat.IdentifierManager.insertOrUpdateSystemMetadata(IdentifierManager.java:979) at edu.ucsb.nceas.metacat.dataone.hazelcast.SystemMetadataMap.store(SystemMetadataMap.java:44) at edu.ucsb.nceas.metacat.dataone.hazelcast.SystemMetadataMap.store(SystemMetadataMap.java:25) at com.hazelcast.impl.concurrentmap.MapStoreWrapper.store(MapStoreWrapper.java:114) at com.hazelcast.impl.ConcurrentMapManager$PutOperationHandler$PutStorer.doMapStoreOperation(ConcurrentMapManager.java:3156) at com.hazelcast.impl.ConcurrentMapManager$AbstractMapStoreOperation.run(ConcurrentMapManager.java:3860) at com.hazelcast.impl.executor.ParallelExecutorService$ParallelExecutorImpl$ExecutionSegment.run(ParallelExecutorService.java:212) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) at java.lang.Thread.run(Thread.java:662) at com.hazelcast.impl.ExecutorThreadFactory$1.run(ExecutorThreadFactory.java:38)

mbjones commented 6 years ago

Original Redmine Comment Author Name: ben leinfelder (ben leinfelder) Original Date: 2013-01-18T21:54:06Z


It looks like this is because the SM.serialVersion value was null. We can fix this in Morpho by using a real value, but Metacat should also handle the case where it is not provided.

mbjones commented 6 years ago

Original Redmine Comment Author Name: ben leinfelder (ben leinfelder) Original Date: 2013-01-18T23:12:41Z


Two pronged approach to this: -updated Metacat's MN.update() implementation to set the SM.serialVersion to default value if it is not provided. (MN.create() had already been setting the default) -updated Morpho to set SM.serialVersion if it is not set before calling either MN.create() or MN.update().

mbjones commented 6 years ago

Original Redmine Comment Author Name: Redmine Admin (Redmine Admin) Original Date: 2013-03-27T21:31:41Z


Original Bugzilla ID was 5793