Revision 7024
Added by ben leinfelder over 12 years ago
MetacatHandler.java | ||
---|---|---|
1627 | 1627 |
* Handle the database putdocument request and write an XML document to the |
1628 | 1628 |
* database connection |
1629 | 1629 |
* @param userAgent |
1630 |
* @param generateSystemMetadata |
|
1630 | 1631 |
*/ |
1631 | 1632 |
public String handleInsertOrUpdateAction(String ipAddress, String userAgent, |
1632 | 1633 |
HttpServletResponse response, PrintWriter out, Hashtable<String, String[]> params, |
1633 |
String user, String[] groups) { |
|
1634 |
String user, String[] groups, boolean generateSystemMetadata) {
|
|
1634 | 1635 |
Logger logMetacat = Logger.getLogger(MetacatHandler.class); |
1635 | 1636 |
DBConnection dbConn = null; |
1636 | 1637 |
int serialNumber = -1; |
... | ... | |
1815 | 1816 |
mde.setGroups(groups); |
1816 | 1817 |
MetacatEventService.getInstance().notifyMetacatEventObservers(mde); |
1817 | 1818 |
|
1818 |
// Check for existing system metadata for the docid. Update |
|
1819 |
// or create it as necessary, but only for non-DataONE |
|
1820 |
// calls to handleInsertOrUpdateAction() |
|
1821 |
if ( !(ipAddress.contains("/d1")) ) { |
|
1819 |
// if it was called from Metacat API, we want to generate system metadata for it |
|
1820 |
if ( generateSystemMetadata ) { |
|
1822 | 1821 |
|
1823 | 1822 |
SystemMetadata sysMeta = null; |
1824 | 1823 |
// it's possible that system metadata exists although |
... | ... | |
2869 | 2868 |
params.put("doctext", doctextArr); |
2870 | 2869 |
//call the insert routine |
2871 | 2870 |
handleInsertOrUpdateAction(request.getRemoteAddr(), request.getHeader("User-Agent"), response, out, |
2872 |
params, username, groupnames); |
|
2871 |
params, username, groupnames, true);
|
|
2873 | 2872 |
} |
2874 | 2873 |
catch(Exception e) |
2875 | 2874 |
{ |
Also available in: Unified diff
only generate system metadata when the call comes from the legacy Metacat API, not the D1 API.
https://redmine.dataone.org/issues/2362 (I think this was the culprit)