From 12/12/2011 to 01/10/2012


07:57 PM Revision 6878 (metacat): Initial outline for DataONE chapter.
Matt Jones
07:02 PM Revision 6877 (metacat): Added OAI-PMH chapter that was contributed by Duane Costa from LTER.
Matt Jones
05:04 PM Revision 6876 (metacat): Simplify setReplicationStatus() to not call updateReplicationMetadata() if a replica doesn't exist. Just create it and update the system metadata, which we already have a lock for.
Chris Jones
05:03 PM Revision 6875 (metacat): Minor null checks to avoid NPEs when calling replicate()
Chris Jones
05:01 PM Revision 6874 (metacat): Don't throw a NotAuthorized exception in isAdminAuthorized() - just return false.
Chris Jones


12:12 PM Revision 6873 (metacat): do not download and save remote data resources which are HTML but are not expected to be such (login or info/splash pages before data content). ben leinfelder
09:23 AM Bug #5536: Restore replicated data files that are 0 bytes
By removing replicated data files in my test environment (DEMO3 <-> fred) and removing the entries from the xml_docum... ben leinfelder
09:21 AM Bug #5532: Use strict build tag strategy for 2.0.0 release
updating the title to reflect bug as a reminder to remove "RC" from any of the tags we build the release from... ben leinfelder
01:06 AM Revision 6872 (metacat): Fixed formatting.
Matt Jones
01:00 AM Revision 6871 (metacat): Moving Metacat Sphinx RST documentation from docs/dev to docs/user directory.
Matt Jones
12:42 AM Revision 6870 (metacat): Merged most recent changes from trunk into the RST converted version of the Administrator's Guide. Now the Sphinx/RST version is up to date rlative to the most recent word document, and is now the active copy. The MS Word document will be deprecated and removed. All future changes should be made to the RST version.
Matt Jones
05:08 PM Revision 6869 (metacat): Update the CN methods to throw a VersionMismatch where the API changed (where serialVersion is a required parameter). These were previously throwing an InvalidRequest exception.
Change the exception handling for calls to Hazelcast to catch a RuntimeException (not Exception) so we don't catch ex... Chris Jones
04:59 PM Revision 6868 (metacat): Use a Logger instead of System.out for SystemMetadataMap.
Chris Jones


06:01 PM Revision 6867 (metacat): Don't lock() on the map.get() in isNodeAuthorized() (this assumes that the CN has queued the task already). Add more lock/unlock debug statements, and fix setReplicationStatus() - I missed a finally statement to unlock the pid.
Chris Jones


12:39 PM Revision 6866 (metacat): Modify CNReplication methods setReplicationStatus(), updateReplicationMetadata() and setReplicationPolicy() to allow administrative access from a Coordinating Node by calling isAdminAuthorized().
Chris Jones
12:34 PM Revision 6865 (metacat): Add isAdminAuthorized() to D1NodeService to check if the operation is being requested from a CN. Consult the NodeList from the CN and test the NodeType of the given node and the X509 certificate Subject. Perhaps we should expand this to also check for service-level access in the future.
Chris Jones


01:51 PM Revision 6864 (metacat): store D1 configuration properties in the main backup so that they persist between upgrades.
ben leinfelder
12:51 PM Revision 6863 (metacat): In registerSystemMetadata(), lock the pid prior to calling map.containsKey(pid) since a put to the map could occur between the check and the subsequent put().
Chris Jones
10:45 AM Revision 6862 (metacat): update authoritative member node id when we change it (reconfiguration) and when we initially register as a MN with the CN.
ben leinfelder
09:42 AM Revision 6861 (metacat): add description about what becoming a Member Node entails
ben leinfelder
07:40 AM Revision 6860 (metacat): Correctly deserialize the BaseException subclass in handling calls to setReplicationStatus()
Chris Jones
07:23 AM Revision 6859 (metacat): Use Lock instead of ILock to be consistent across classes.
Chris Jones
06:32 PM Revision 6858 (metacat): After reviewing CNodeService and D1NodeService prompted by Robert comparing the Hazelcast locking with the d1_synchronization locking, I've made a number of changes that will prevent locking problems:
1) Multiple methods contained try/catch blocks that would:
Chris Jones
06:02 PM Revision 6857 (metacat): Converted the metacat-properties chapter to RST format. Still need to merge in
newer changes from the trunk, as I was accidentally working from the 1.9.4
branch for this whole conversion process.
Matt Jones


02:49 PM Revision 6856 (metacat): only delete replicated data files (server_location != 1)
ben leinfelder
02:15 PM Bug #5522: download linked KNB data and convert links in EML to ORE packages
I'm now downloading remote data that is referenced by EM documents, saving it on the MN with an "autogen" ID and incl... ben leinfelder
01:37 PM Revision 6855 (metacat): use inherited access control from EML for the data file we download from a remote source ben leinfelder
01:06 PM Revision 6854 (metacat): Removing unused screenshots that are duplicates of the others in the admin doc.
Matt Jones
12:53 PM Revision 6853 (metacat): Converted Harvester chapter to RST.
Matt Jones
12:06 PM Revision 6852 (metacat): download remote data and save locally when it is referenced by an EML package, then include it in the ORE map. ben leinfelder
12:05 PM Revision 6851 (metacat): remove systemmetadata replication option -- it is no longer a separate document in metacat
ben leinfelder
11:07 AM Bug #5520: Create replication integration test suite
These tests also cover access control updates. ben leinfelder
11:31 PM Revision 6850 (metacat): Added stub documents for chapters on DataONE and OAI-PMH (to be converted from
Duane's Word doc). Matt Jones
11:23 PM Revision 6849 (metacat): Small word choice change.
Matt Jones
11:18 PM Revision 6848 (metacat): Improved formatting for index.
Matt Jones
11:14 PM Revision 6847 (metacat): Added AuthInterface chapter, and a License chapter.
Matt Jones
10:53 PM Revision 6846 (metacat): Converted Event Logging and Sitemaps chapters to RST.
Matt Jones
10:41 PM Revision 6845 (metacat): Fixed table layout on geoserver and submission chapters. Converted Replication
chapter to RST. Matt Jones
09:57 PM Revision 6844 (metacat): Completed 'Submission' page conversion, and also converted GeoServer docs to
RST format. Matt Jones
04:07 PM Revision 6843 (metacat): Partial conversion of the accessing and submitting metadata section to RST.
More coming later. Matt Jones


02:48 PM Revision 6842 (metacat): include the EML and data tests in the suite
ben leinfelder
02:38 PM Revision 6841 (metacat): debugging data locking test
ben leinfelder
02:06 PM Revision 6840 (metacat): cannot check for deleted data since it is forever available (archived)
ben leinfelder
02:02 PM Bug #5520: Create replication integration test suite
current tests:
-certificates are valid and configured correctly between A and B
-data from A to B
-EML from A to B
ben leinfelder
01:22 PM Revision 6839 (metacat): Updated the configuration section, converted word doc to RST.
Matt Jones
11:28 AM Bug #5568: Get an exception during startup metacat
wasn't able to replicate this, but will keep an eye out. There's been quite a lot of churn around the DB tables, so i... ben leinfelder
08:02 PM Revision 6838 (metacat): Updated the Installation chapter, coverted to RST.
Matt Jones
07:32 PM Revision 6837 (metacat): When the requested count in a call to listObjects() is 0, return an empty object list, not a full one. Fixes
Chris Jones
07:30 PM Revision 6836 (metacat): Minor formatting for querySystemMetadata().
Chris Jones
04:50 PM Revision 6835 (metacat): Updated contributors.
Matt Jones
04:48 PM Revision 6834 (metacat): Modified index to fix typo.
Matt Jones
04:46 PM Revision 6833 (metacat): Edited introduction to Metacat admin guide, inserted figure.
Matt Jones
04:07 PM Revision 6832 (metacat): Screenshots from the Metacat admin guide.
Matt Jones


03:57 PM Revision 6831 (metacat): Updating Sphinx doc structure in prep for moving metacat admin guide to Sphinx.
Matt Jones
03:56 PM Revision 6830 (metacat): exapnd permissions on the _exisiting_ access rule not on the permission being checked. (hierarchical permissions)
ben leinfelder
03:38 PM Revision 6829 (metacat): defer to super class member variables
ben leinfelder
11:33 AM Revision 6828 (metacat): Upgrade to Hazelcast- to try to solve CLIENT_CONNECTION_LOST problems seen on the Coordinating Node.
Chris Jones
11:26 AM Bug #5568: Get an exception during startup metacat
It looks like this is due to a null SystemMetadata.size entry in the underlying table. I'm not sure how a null could ... ben leinfelder
11:11 AM Bug #5517: mark EcoGrid and Servlet APIs as deprecated
added notes to the user documentation indicating that these APIs are deprecated ben leinfelder
11:10 AM Revision 6827 (metacat): mark client/servlet API and EarthGrid API as deprecated ben leinfelder
10:59 AM Bug #5536: Restore replicated data files that are 0 bytes
I created another "upgrader" that will remove the empty replicated data files so that they can be re-replicated using... ben leinfelder
10:56 AM Revision 6826 (metacat): upgrade routine to purge empty replicated data files so that they can be re-replicated ben leinfelder


06:22 PM Revision 6825 (metacat): format the execution time to be a date.
Jing Tao


03:56 PM Revision 6824 (metacat): Use "post" to replace "get" to fix caching issue on IE.
Jing Tao
03:34 PM Revision 6823 (metacat): Make the display of the schedule table fit the IE browser.
Jing Tao


11:51 AM Revision 6822 (metacat): Make sure the local id isn't null when we try to get the object from the local instance.
Chris Jones
11:16 AM Revision 6821 (metacat): Simplify the error handling, and throw the exception once the CN is updated with the new status.
Chris Jones
11:13 AM Revision 6820 (metacat): Set the replica status to failed (not invalidated) when we get exceptions trying to read the object bytes. Not much of a difference, but only the CN, in theory, is supposed to be able to set the invalidated status.
Chris Jones
11:07 AM Revision 6819 (metacat): Set the replication status to invalidated when we have a localId, but getting the object bytes fails for any reason.
Chris Jones
10:51 AM Revision 6818 (metacat): Only call super.create() if there's no localId found on the MN (ie a replica is there from an out of band process).
Chris Jones
10:40 AM Revision 6817 (metacat): Get the object inputstream from the local metacat instance using MetacatHandler.get() rather than MN.getReplica() so we don't throw an InvalidToken exception when passing in a null Session. The D1Client object is never used for this local call.
Chris Jones
09:24 AM Revision 6816 (metacat): interpret permissions as hierarchical ben leinfelder


02:08 PM Bug #5569: The sanparks skin doesn't show welcome message when user login again (after doing logout)
It turns out, the html page showing after logout used a wrong js function for login.
After modifying the sanparksLog...
Jing Tao
01:41 PM Bug #5569 (Resolved): The sanparks skin doesn't show welcome message when user login again (after doing logout)
When user first time logins, the sanpark skin will show a welcome message, upload data link and search form.
Jing Tao
01:53 PM Bug #5523: setting authoritative MN and rightsHolder for KNB data on conversion
We decided to generate system metadata for every object housed in the KNB and use the KNB nodeId as the authoritative... ben leinfelder
01:50 PM Revision 6815 (metacat): Use submitLoginFormIntoDivAndReload to replace submitLoginFormIntoDiv js function.
Jing Tao
01:00 PM Revision 6814 (metacat): remove flag for independent system metadata replication -- these entries are replicated along with the data/metadata objects or via hazelcast when the actual object is not on the server.
ben leinfelder
12:33 PM Revision 6813 (metacat): update documentation to reflect changes to replication (client certificate) ben leinfelder
10:52 AM Revision 6812 (metacat): include SSL settings for client certificate-based replication
ben leinfelder
05:13 PM Revision 6811 (metacat): do not include the "v1" in the base url for the target MN
ben leinfelder


12:19 PM Revision 6810 (metacat): New D1 jars with a minor CNode.setReplicationStatus() bugfix.
Chris Jones
11:57 AM Bug #5567: Click the schedule button on sankparks skin got an blank page
In scheduleWorkflowRun.jsp file, it has code like:
String karId = LSIDUtil.getDocId(karLsid, false);
Jing Tao
11:52 AM Bug #5568 (Resolved): Get an exception during startup metacat
I got an exception when i started metacat. However, it seems that metacat still can work.
Jing Tao
11:29 AM Revision 6809 (metacat): The kar id will have version number.
Jing Tao
11:25 AM Revision 6808 (metacat): process the _current_ revision, not the latest!
use direct object/system metadata insertion for ORE maps. ben leinfelder
11:21 AM Revision 6807 (metacat): allow other Metacat process (system metadata and ORE generation) to directly insert objects and system metadata without having to go through the MN/CN methods.
ben leinfelder
11:19 AM Revision 6806 (metacat): sort the docids so that "old" revisions are processed before newer ones
ben leinfelder


01:07 PM Revision 6805 (metacat): only attempt to unlock a lock if it was created (in the finally block)
ben leinfelder
12:56 PM Revision 6804 (metacat): update tests to comply with these chenages:
new jars with many changes -- including new CN methods: ping, describe, listChecksumAlgorithm. Removed MN.setAccessPo... ben leinfelder


04:24 PM Revision 6803 (metacat): new jars with many changes -- including new CN methods: ping, describe, listChecksumAlgorithm. Removed MN.setAccessPolicy. Refactored CN.setOwner() to CN.setRightsHolder().
ben leinfelder


02:48 PM Bug #5560: Upgrade access control rules in Metacat DB
I'm now also forcing the shared System Metadata map to reload into memory all the system metadata for data objects th... ben leinfelder
12:21 PM Revision 6802 (metacat): refresh the SystemMetadata entry for EML and referenced data files when parsing EML access rules -- this ensures our in-memory system metadata map is up to date WRT the DB entries.
ben leinfelder
11:37 AM Revision 6801 (metacat): Using a branch name for the utilities project. This branch is a copy of the trunk and it uses the BSD license.
We will move this branch to a tag soon. Jing Tao
11:00 AM Revision 6800 (metacat): add revision history to the generated ORE objects -- we use the revision history of the EML package as a basis because the each ORE revision mirrors the revision of the EML package.
Add a placeholder for checking if an equivalent ORE map exists in the DataONE infrastructure - this will be a call to... ben leinfelder
10:03 AM Bug #5522: download linked KNB data and convert links in EML to ORE packages
From discussion yesterday:
Converting a node from KNB to D1
0. Ge...
ben leinfelder
09:56 AM Revision 6799 (metacat): Update the parameter names expected for listObjects() to reflect the MN API changes in the architecture docs.
Chris Jones
09:44 AM Revision 6798 (metacat): Change the query semantics such that we implement the MN.listObjects() where the lower datetime bound is inclusive (greater than or equal to" and the upper datetime bound in exclusive (less than). This allows easier paging in client applications.
Chris Jones
09:42 AM Revision 6797 (metacat): for test to compile, provide BaseException param for setReplicationStatus. I used a NotAuthorized instance.
ben leinfelder
09:37 AM Revision 6796 (metacat): adjust after refactoring tests that use EML queries
ben leinfelder
07:42 AM Revision 6795 (metacat): In the call to MNReplication.replicate(), call back to CNReplication.setReplicationStatus() and set the status to failed when we get local exceptions, exceptions from the source MN when calling getReplica(). Send back an exception with a description when setting the status. Add a private setReplicationStatus() method to refactor these calls out.
Chris Jones
07:36 AM Revision 6794 (metacat): Modify CNresourceHandler.setReplicationStatus() to use the new API signature, including the failure BaseException that is parsed out of the MMP as a file section. Log the exception message. Since this is an asynchronous call, ReplicationManager won't see a failed status, but the MNAuditTask eventually will.
Chris Jones
07:32 AM Revision 6793 (metacat): Add collectReplicationStatus() to CNResourcHandler to return the BaseException or it's subclass, if any, provided in the the call to setReplicationStatus. The exception will be reported on the CN.
Chris Jones
07:29 AM Revision 6792 (metacat): Change setReplicationStatus() to drop serialVersion and report the failure exception message in the CN log.
Chris Jones
07:13 AM Revision 6791 (metacat): Add new D1 jars with update CNreplication API changes to SetReplicationStatus().
Chris Jones
05:32 PM Revision 6790 (metacat): query for deleted metadata when testing that replication communicated the deletion. to check data, we try to update the data object on the target node (which should fail)
ben leinfelder
05:11 PM Revision 6789 (metacat): add test for data locking
ben leinfelder


01:59 PM Revision 6788 (metacat): delete data and eml on the home Metacat and check that the change propagates to the target
ben leinfelder
01:29 PM Revision 6787 (metacat): set SystemMetadata.archived=true on MN.delete
There is ongoing discussion on what the exact behavior should be here, but this mimics Metacat's delete-as-archive ac... ben leinfelder
12:22 PM Bug #5536: Restore replicated data files that are 0 bytes
Current proposal for upgrade script solution:
-find all data files in the configured data directory for Metacat
ben leinfelder
10:40 AM Bug #5561: Got a SQL error when click TPC workflows or TPC link on sanparks skin
Jing says it's fixed! ben leinfelder
10:31 AM Bug #5567 (Resolved): Click the schedule button on sankparks skin got an blank page
Click TPC worklfow link on the sanparks skin, user will get a list of workflows. Every workflow has three associated ... Jing Tao


08:48 AM Revision 6786 (metacat): In MNodeService.replicate(), check to see if we have a replica (via an out of band channel) before we call sourceMN.getReplica().
Chris Jones
05:28 PM Revision 6785 (metacat): actually include the test in the suite ben leinfelder
05:17 PM Revision 6784 (metacat): EML replication test with insert, update and set access ben leinfelder
05:06 PM Revision 6783 (metacat): only create guid->docid mapping during metadata replication if it does not already exist ben leinfelder
04:50 PM Revision 6782 (metacat): do not treat access change as an update -- it should not attempt to retrieve the contents of the object ben leinfelder
04:43 PM Bug #5563: Kepler can't get search result from metacat 2.0.0
It turned out that the ecogrid tag (1.2.2.rc4) which the trunk used has wrong version of ecogridToPathquery.xsl. The ... Jing Tao
04:36 PM Revision 6781 (metacat): Change the ecogrid tag to 1.2.2.RC5.
Jing Tao
04:18 PM Revision 6780 (metacat): only create guid->docid mapping during data replication if it does not already exist ben leinfelder


03:49 PM Bug #5534: Replication log somehow doesn't work.
As configured, all INFO level (and above) messages for ReplicationLogging will go to the replication log file and not... ben leinfelder
03:30 PM Revision 6779 (metacat): remove xml_acccess.docid reference (oops) ben leinfelder
03:15 PM Revision 6778 (metacat): test update and set access during replication from A->B ben leinfelder
03:09 PM Bug #5532: Use strict build tag strategy for 2.0.0 release
there is an Ecogrid change needed ben leinfelder
02:58 PM Bug #5516: continue updating user documentation
Also add in the OAI-PMH documentation contributed by Duane Costa. Matt Jones
12:22 PM Revision 6777 (metacat): updated D1 API -- removed Permission.REPLICATE and associated parameters
ben leinfelder
11:51 AM Revision 6776 (metacat): a minute for replication?
ben leinfelder
11:34 AM Revision 6775 (metacat): process system metadata before access rules (access control is now driven by GUID so the mapping needs to be there)
ben leinfelder
11:07 AM Bug #5566: Click View Run link get 0 result if user doesn't login on the sanparks skin
Now the cache key is using populated string with parameter values rather than just "?". It is working. Jing Tao
10:19 AM Bug #5566: Click View Run link get 0 result if user doesn't login on the sanparks skin
this is the way i am doing :)
Jing Tao
10:18 AM Bug #5566: Click View Run link get 0 result if user doesn't login on the sanparks skin
Good catch!
We can use the query string _after_ the parameter values are bound to the prepared statement.
Would look...
ben leinfelder
11:06 AM Revision 6774 (metacat): Change the key of query result cache. The key now has the real search value.
Jing Tao
10:58 AM Revision 6773 (metacat): include SerialVersion in describe response
NOTE: d1 jars should be replaced once all schema changes are finalized and th...
ben leinfelder
10:21 AM Bug #5547: Couldn't get the Register Data Form after login under Register Data tab on Sanparks skin
I played around with that, but it basically means the Perl code would have to act as a proxy for the browser session ... ben leinfelder
04:48 PM Bug #5547: Couldn't get the Register Data Form after login under Register Data tab on Sanparks skin
I like main page still keeping to use Java login. So user can do uploading data, schedule workflow et al without inst... Jing Tao
09:17 AM Revision 6772 (metacat): comment out B->A test ben leinfelder
04:33 PM Revision 6771 (metacat): use correct URLs for replication/Metacat client
ben leinfelder


02:57 PM Revision 6770 (metacat): simple tests for 2-way data replication ben leinfelder
01:51 PM Bug #5560: Upgrade access control rules in Metacat DB
Access control JUnit tests are all passing. I would like to test this from a 1.9.5 Metacat installation being upgrade... ben leinfelder
01:49 PM Bug #5532: Use strict build tag strategy for 2.0.0 release
okay, that's simple enough to have agreed on! ben leinfelder
01:49 PM Bug #5523: setting authoritative MN and rightsHolder for KNB data on conversion
More musing on the authoritative MN/replica policy for upgrading Metacat deployments:
-If we only generate SystemMeta...
ben leinfelder
01:22 PM Revision 6769 (metacat): ROLLBACK: check for non-public session in Metacat before showing the registry form ben leinfelder
12:41 PM Revision 6768 (metacat): check for non-public session in Metacat before showing the registry form ben leinfelder
12:22 PM Bug #5547: Couldn't get the Register Data Form after login under Register Data tab on Sanparks skin
I've fixed the first issue where after logging in from the "Register Data" you are now redirected to the registry for... ben leinfelder
11:00 AM Bug #5547: Couldn't get the Register Data Form after login under Register Data tab on Sanparks skin
And the login/logout action on the home page seems not affect the login status on the "Register Data" at all. Jing Tao
11:26 AM Revision 6767 (metacat): redirect to the registry form following successful login - but allow an override in case we only want to render the success and stay there (ajax call from main sanparks page).
ben leinfelder
10:50 AM Revision 6766 (metacat): include 'archived' system metadata element in backing DB store
ben leinfelder

Also available in: Atom