Bug #5793
closed
SystemMetadata missing for updated EML doc
Added by ben leinfelder almost 12 years ago.
Updated almost 12 years ago.
Category:
morpho - general
Description
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]
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)
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.
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().
Original Bugzilla ID was 5793
Also available in: Atom
PDF