76 |
76 |
import edu.ucsb.nceas.metacat.accesscontrol.AccessControlException;
|
77 |
77 |
import edu.ucsb.nceas.metacat.accesscontrol.AccessControlForSingleFile;
|
78 |
78 |
import edu.ucsb.nceas.metacat.accesscontrol.AccessControlInterface;
|
79 |
|
import edu.ucsb.nceas.metacat.accesscontrol.AccessControlList;
|
80 |
79 |
import edu.ucsb.nceas.metacat.cart.CartManager;
|
81 |
80 |
import edu.ucsb.nceas.metacat.database.DBConnection;
|
82 |
81 |
import edu.ucsb.nceas.metacat.database.DBConnectionPool;
|
... | ... | |
86 |
85 |
import edu.ucsb.nceas.metacat.properties.SkinPropertyService;
|
87 |
86 |
import edu.ucsb.nceas.metacat.replication.ForceReplicationHandler;
|
88 |
87 |
import edu.ucsb.nceas.metacat.replication.ReplicationService;
|
89 |
|
import edu.ucsb.nceas.metacat.scheduler.SchedulerService;
|
90 |
88 |
import edu.ucsb.nceas.metacat.service.ServiceService;
|
91 |
89 |
import edu.ucsb.nceas.metacat.service.SessionService;
|
92 |
90 |
import edu.ucsb.nceas.metacat.service.XMLSchemaService;
|
... | ... | |
94 |
92 |
import edu.ucsb.nceas.metacat.shared.BaseException;
|
95 |
93 |
import edu.ucsb.nceas.metacat.shared.HandlerException;
|
96 |
94 |
import edu.ucsb.nceas.metacat.shared.MetacatUtilException;
|
97 |
|
//import edu.ucsb.nceas.metacat.shared.AccessException;
|
98 |
95 |
import edu.ucsb.nceas.metacat.spatial.SpatialHarvester;
|
99 |
96 |
import edu.ucsb.nceas.metacat.spatial.SpatialQuery;
|
100 |
97 |
import edu.ucsb.nceas.metacat.util.AuthUtil;
|
... | ... | |
287 |
284 |
|
288 |
285 |
private static final long serialVersionUID = 1L;
|
289 |
286 |
private Timer timer = null;
|
290 |
|
private static boolean sitemapScheduled;
|
291 |
|
private static boolean firstHalfInitialized = false;
|
292 |
|
private static boolean fullyInitialized = false;
|
|
287 |
private static boolean _sitemapScheduled;
|
|
288 |
private static boolean _firstHalfInitialized = false;
|
|
289 |
private static boolean _fullyInitialized = false;
|
293 |
290 |
|
294 |
291 |
// Constants -- these should be final in a servlet
|
295 |
292 |
private static final String PROLOG = "<?xml version=\"1.0\"?>";
|
... | ... | |
311 |
308 |
public void init(ServletConfig config) throws ServletException {
|
312 |
309 |
Logger logMetacat = Logger.getLogger(MetaCatServlet.class);
|
313 |
310 |
try {
|
314 |
|
if(firstHalfInitialized) {
|
|
311 |
if(_firstHalfInitialized) {
|
315 |
312 |
return;
|
316 |
313 |
}
|
317 |
314 |
|
... | ... | |
321 |
318 |
context.setAttribute("APPLICATION_NAME", APPLICATION_NAME);
|
322 |
319 |
|
323 |
320 |
ServiceService serviceService = ServiceService.getInstance(context);
|
324 |
|
logMetacat.debug("ServiceService singleton created " + serviceService);
|
|
321 |
logMetacat.debug("MetaCatServlet.init - ServiceService singleton created " + serviceService);
|
325 |
322 |
|
326 |
323 |
// Initialize the properties file
|
327 |
324 |
String dirPath = ServiceService.getRealConfigDir();
|
... | ... | |
341 |
338 |
return;
|
342 |
339 |
}
|
343 |
340 |
|
344 |
|
firstHalfInitialized = true;
|
|
341 |
_firstHalfInitialized = true;
|
345 |
342 |
|
346 |
343 |
initSecondHalf(context);
|
347 |
344 |
|
348 |
345 |
} catch (ServiceException se) {
|
349 |
346 |
String errorMessage =
|
350 |
347 |
"Service problem while intializing MetaCat Servlet: " + se.getMessage();
|
351 |
|
logMetacat.error(errorMessage);
|
|
348 |
logMetacat.error("MetaCatServlet.init - " + errorMessage);
|
352 |
349 |
throw new ServletException(errorMessage);
|
353 |
350 |
} catch (MetacatUtilException mue) {
|
354 |
351 |
String errorMessage = "Metacat utility problem while intializing MetaCat Servlet: "
|
355 |
352 |
+ mue.getMessage();
|
356 |
|
logMetacat.error(errorMessage);
|
|
353 |
logMetacat.error("MetaCatServlet.init - " + errorMessage);
|
357 |
354 |
throw new ServletException(errorMessage);
|
358 |
355 |
}
|
359 |
356 |
}
|
... | ... | |
375 |
372 |
|
376 |
373 |
// initialize DBConnection pool
|
377 |
374 |
DBConnectionPool connPool = DBConnectionPool.getInstance();
|
378 |
|
logMetacat.debug("DBConnection pool initialized: " + connPool.toString());
|
|
375 |
logMetacat.debug("MetaCatServlet.initSecondHalf - DBConnection pool initialized: " + connPool.toString());
|
379 |
376 |
|
380 |
377 |
ServiceService.registerService("XMLSchemaService", XMLSchemaService.getInstance());
|
381 |
378 |
// ServiceService.registerService("SchedulerService", SchedulerService.getInstance());
|
... | ... | |
383 |
380 |
// check if eml201 document were corrected or not. if not, correct eml201 documents.
|
384 |
381 |
// Before Metacat 1.8.1, metacat uses tag RELEASE_EML_2_0_1_UPDATE_6 as eml
|
385 |
382 |
// schema, which accidentily points to wrong version of eml-resource.xsd.
|
386 |
|
String correctedEML201Doc = PropertyService
|
387 |
|
.getProperty("document.eml201DocumentCorrected");
|
|
383 |
String correctedEML201Doc = PropertyService.getProperty("document.eml201DocumentCorrected");
|
388 |
384 |
if (correctedEML201Doc != null && correctedEML201Doc.equals(FALSE)) {
|
389 |
|
logMetacat.info("===Start to correct eml201 documents");
|
|
385 |
logMetacat.info("MetaCatServlet.initSecondHalf - Start to correct eml201 documents");
|
390 |
386 |
EML201DocumentCorrector correct = new EML201DocumentCorrector();
|
391 |
387 |
boolean success = correct.run();
|
392 |
388 |
if (success) {
|
393 |
389 |
PropertyService.setProperty("document.eml201DocumentCorrected", TRUE);
|
394 |
390 |
}
|
395 |
|
logMetacat.info("====Finish to correct eml201 documents");
|
|
391 |
logMetacat.info("MetaCatServlet.initSecondHalf - Finish to correct eml201 documents");
|
396 |
392 |
}
|
397 |
393 |
|
398 |
394 |
// Index the paths specified in the metacat.properties
|
... | ... | |
437 |
433 |
|
438 |
434 |
// End timer
|
439 |
435 |
long after = System.currentTimeMillis();
|
440 |
|
logMetacat.info(" ------ Spatial Harvester Time "
|
|
436 |
logMetacat.info("MetaCatServlet.initSecondHalf - Spatial Harvester Time "
|
441 |
437 |
+ (after - before) + "ms");
|
442 |
438 |
|
443 |
439 |
} else {
|
444 |
|
logMetacat.info(" \n **** Spatial cache is not set to regenerate on restart");
|
|
440 |
logMetacat.info("MetaCatServlet.initSecondHalf - Spatial cache is not set to regenerate on restart");
|
445 |
441 |
}
|
446 |
442 |
|
447 |
443 |
// Set up the replication log file by setting the "replication.logfile.name"
|
... | ... | |
454 |
450 |
}
|
455 |
451 |
|
456 |
452 |
if (FileUtil.getFileStatus(replicationLogPath) < FileUtil.EXISTS_READ_WRITABLE) {
|
457 |
|
logMetacat.error("Replication log file: " + replicationLogPath
|
|
453 |
logMetacat.error("MetaCatServlet.initSecondHalf - Replication log file: " + replicationLogPath
|
458 |
454 |
+ " does not exist read/writable.");
|
459 |
455 |
}
|
460 |
456 |
|
461 |
457 |
System.setProperty("replication.logfile.name", replicationLogPath);
|
462 |
458 |
PropertyConfigurator.configureAndWatch(LOG_CONFIG_NAME);
|
463 |
459 |
|
464 |
|
sitemapScheduled = false;
|
|
460 |
_sitemapScheduled = false;
|
465 |
461 |
|
466 |
|
fullyInitialized = true;
|
|
462 |
_fullyInitialized = true;
|
467 |
463 |
|
468 |
|
logMetacat.warn("Metacat (" + MetacatVersion.getVersionID()
|
|
464 |
logMetacat.warn("MetaCatServlet.initSecondHalf - Metacat (" + MetacatVersion.getVersionID()
|
469 |
465 |
+ ") initialized.");
|
470 |
466 |
|
471 |
467 |
} catch (SQLException e) {
|
472 |
468 |
String errorMessage = "SQL problem while intializing MetaCat Servlet: "
|
473 |
469 |
+ e.getMessage();
|
474 |
|
logMetacat.error(errorMessage);
|
|
470 |
logMetacat.error("MetaCatServlet.initSecondHalf - " + errorMessage);
|
475 |
471 |
throw new ServletException(errorMessage);
|
476 |
472 |
} catch (IOException ie) {
|
477 |
473 |
String errorMessage = "IO problem while intializing MetaCat Servlet: "
|
478 |
474 |
+ ie.getMessage();
|
479 |
|
logMetacat.error(errorMessage);
|
|
475 |
logMetacat.error("MetaCatServlet.initSecondHalf - " + errorMessage);
|
480 |
476 |
throw new ServletException(errorMessage);
|
481 |
477 |
} catch (GeneralPropertyException gpe) {
|
482 |
478 |
String errorMessage = "Could not retrieve property while intializing MetaCat Servlet: "
|
483 |
479 |
+ gpe.getMessage();
|
484 |
|
logMetacat.error(errorMessage);
|
|
480 |
logMetacat.error("MetaCatServlet.initSecondHalf - " + errorMessage);
|
485 |
481 |
throw new ServletException(errorMessage);
|
486 |
482 |
} catch (ServiceException se) {
|
487 |
483 |
String errorMessage = "Service problem while intializing MetaCat Servlet: "
|
488 |
484 |
+ se.getMessage();
|
489 |
|
logMetacat.error(errorMessage);
|
|
485 |
logMetacat.error("MetaCatServlet.initSecondHalf - " + errorMessage);
|
490 |
486 |
throw new ServletException(errorMessage);
|
491 |
487 |
} catch (UtilException ue) {
|
492 |
488 |
String errorMessage = "Utility problem while intializing MetaCat Servlet: "
|
493 |
489 |
+ ue.getMessage();
|
494 |
|
logMetacat.error(errorMessage);
|
|
490 |
logMetacat.error("MetaCatServlet.initSecondHalf - " + errorMessage);
|
495 |
491 |
throw new ServletException(errorMessage);
|
496 |
492 |
}
|
497 |
493 |
}
|
... | ... | |
505 |
501 |
ServiceService.stopAllServices();
|
506 |
502 |
|
507 |
503 |
// Close all db connection
|
508 |
|
logMetacat.warn("Destroying MetacatServlet");
|
|
504 |
logMetacat.warn("MetaCatServlet.destroy - Destroying MetacatServlet");
|
509 |
505 |
timer.cancel();
|
510 |
506 |
IndexingQueue.getInstance().setMetacatRunning(false);
|
511 |
507 |
DBConnectionPool.release();
|
... | ... | |
539 |
535 |
}
|
540 |
536 |
catch (MetacatUtilException ue) {
|
541 |
537 |
pathsForIndexing = null;
|
542 |
|
logMetacat.error("Could not find index paths. Setting "
|
|
538 |
logMetacat.error("MetaCatServlet.checkIndexPaths - not find index paths. Setting "
|
543 |
539 |
+ "pathsForIndexing to null: " + ue.getMessage());
|
544 |
540 |
}
|
545 |
541 |
|
546 |
542 |
if (pathsForIndexing != null && !pathsForIndexing.isEmpty()) {
|
547 |
543 |
|
548 |
|
logMetacat.debug("Indexing paths specified in metacat.properties....");
|
|
544 |
logMetacat.debug("MetaCatServlet.checkIndexPaths - Indexing paths specified in metacat.properties....");
|
549 |
545 |
|
550 |
546 |
DBConnection conn = null;
|
551 |
547 |
int serialNumber = -1;
|
... | ... | |
554 |
550 |
ResultSet rs = null;
|
555 |
551 |
|
556 |
552 |
for (String pathIndex : pathsForIndexing) {
|
557 |
|
logMetacat.debug("Checking if '" + pathIndex + "' is indexed.... ");
|
|
553 |
logMetacat.debug("MetaCatServlet.checkIndexPaths - Checking if '" + pathIndex + "' is indexed.... ");
|
558 |
554 |
|
559 |
555 |
try {
|
560 |
556 |
//check out DBConnection
|
... | ... | |
570 |
566 |
rs = pstmt.getResultSet();
|
571 |
567 |
|
572 |
568 |
if (!rs.next()) {
|
573 |
|
logMetacat.debug(".....not indexed yet.");
|
|
569 |
logMetacat.debug("MetaCatServlet.checkIndexPaths - not indexed yet.");
|
574 |
570 |
rs.close();
|
575 |
571 |
pstmt.close();
|
576 |
572 |
conn.increaseUsageCount(1);
|
577 |
573 |
|
578 |
|
logMetacat.debug("Inserting following path in xml_path_index: "
|
|
574 |
logMetacat.debug("MetaCatServlet.checkIndexPaths - Inserting following path in xml_path_index: "
|
579 |
575 |
+ pathIndex);
|
580 |
576 |
if(pathIndex.indexOf("@")<0){
|
581 |
577 |
pstmt = conn.prepareStatement("SELECT DISTINCT n.docid, "
|
... | ... | |
595 |
591 |
rs = pstmt.getResultSet();
|
596 |
592 |
|
597 |
593 |
int count = 0;
|
598 |
|
logMetacat.debug("Executed the select statement for: "
|
|
594 |
logMetacat.debug("MetaCatServlet.checkIndexPaths - Executed the select statement for: "
|
599 |
595 |
+ pathIndex);
|
600 |
596 |
|
601 |
597 |
try {
|
... | ... | |
627 |
623 |
}
|
628 |
624 |
}
|
629 |
625 |
} catch (Exception e) {
|
630 |
|
logMetacat.error("Exception:" + e.getMessage());
|
|
626 |
logMetacat.error("MetaCatServlet.checkIndexPaths - Exception:" + e.getMessage());
|
631 |
627 |
e.printStackTrace();
|
632 |
628 |
}
|
633 |
629 |
|
... | ... | |
635 |
631 |
pstmt.close();
|
636 |
632 |
conn.increaseUsageCount(1);
|
637 |
633 |
|
638 |
|
logMetacat.info("Indexed " + count + " records from xml_nodes for '"
|
|
634 |
logMetacat.info("MetaCatServlet.checkIndexPaths - Indexed " + count + " records from xml_nodes for '"
|
639 |
635 |
+ pathIndex + "'");
|
640 |
636 |
|
641 |
637 |
} else {
|
642 |
|
logMetacat.debug(".....already indexed.");
|
|
638 |
logMetacat.debug("MetaCatServlet.checkIndexPaths - already indexed.");
|
643 |
639 |
}
|
644 |
640 |
|
645 |
641 |
rs.close();
|
... | ... | |
647 |
643 |
conn.increaseUsageCount(1);
|
648 |
644 |
|
649 |
645 |
} catch (Exception e) {
|
650 |
|
logMetacat.error("Error in MetaCatServlet.checkIndexPaths: "
|
|
646 |
logMetacat.error("MetaCatServlet.checkIndexPaths - Error in MetaCatServlet.checkIndexPaths: "
|
651 |
647 |
+ e.getMessage());
|
652 |
648 |
}finally {
|
653 |
649 |
//check in DBonnection
|
... | ... | |
657 |
653 |
|
658 |
654 |
}
|
659 |
655 |
|
660 |
|
logMetacat.debug("Path Indexing Completed");
|
|
656 |
logMetacat.debug("MetaCatServlet.checkIndexPaths - Path Indexing Completed");
|
661 |
657 |
}
|
662 |
658 |
}
|
663 |
659 |
|
664 |
660 |
/**
|
665 |
661 |
* Control servlet response depending on the action parameter specified
|
666 |
662 |
*/
|
|
663 |
@SuppressWarnings("unchecked")
|
667 |
664 |
private void handleGetOrPost(HttpServletRequest request,
|
668 |
665 |
HttpServletResponse response) throws ServletException, IOException {
|
669 |
666 |
Logger logMetacat = Logger.getLogger(MetaCatServlet.class);
|
... | ... | |
691 |
688 |
// if we get here, metacat is configured. If we have not completed the
|
692 |
689 |
// second half of the initialization, do so now. This allows us to initially
|
693 |
690 |
// configure metacat without a restart.
|
694 |
|
if (!fullyInitialized) {
|
|
691 |
if (!_fullyInitialized) {
|
695 |
692 |
initSecondHalf(request.getSession().getServletContext());
|
696 |
693 |
}
|
697 |
694 |
|
... | ... | |
707 |
704 |
|
708 |
705 |
// Debug message to print out the method which have a busy DBConnection
|
709 |
706 |
try {
|
|
707 |
@SuppressWarnings("unused")
|
710 |
708 |
DBConnectionPool pool = DBConnectionPool.getInstance();
|
711 |
|
pool.printMethodNameHavingBusyDBConnection();
|
|
709 |
// pool.printMethodNameHavingBusyDBConnection();
|
712 |
710 |
} catch (SQLException e) {
|
713 |
|
logMetacat.error("Error in MetacatServlet.handleGetOrPost: " + e.getMessage());
|
|
711 |
logMetacat.error("MetaCatServlet.handleGetOrPost - Error in MetacatServlet.handleGetOrPost: " + e.getMessage());
|
714 |
712 |
e.printStackTrace();
|
715 |
713 |
}
|
716 |
714 |
|
... | ... | |
738 |
736 |
String docidToRead = path[1];
|
739 |
737 |
String docs[] = new String[1];
|
740 |
738 |
docs[0] = docidToRead;
|
741 |
|
logMetacat.debug("READING DOCID FROM PATHINFO: " + docs[0]);
|
|
739 |
logMetacat.debug("MetaCatServlet.handleGetOrPost - READING DOCID FROM PATHINFO: " + docs[0]);
|
742 |
740 |
params.put("docid", docs);
|
743 |
741 |
String skin = null;
|
744 |
742 |
if (path.length > 2) {
|
... | ... | |
794 |
792 |
}
|
795 |
793 |
|
796 |
794 |
String action = (params.get("action"))[0];
|
797 |
|
logMetacat.info("Action is: " + action);
|
|
795 |
logMetacat.info("MetaCatServlet.handleGetOrPost - Action is: " + action);
|
798 |
796 |
|
799 |
797 |
// This block handles session management for the servlet
|
800 |
798 |
// by looking up the current session information for all actions
|
... | ... | |
859 |
857 |
sessionId = sessionData.getId();
|
860 |
858 |
}
|
861 |
859 |
|
862 |
|
logMetacat.info("The user is : " + userName);
|
|
860 |
logMetacat.info("MetaCatServlet.handleGetOrPost - The user is : " + userName);
|
863 |
861 |
}
|
864 |
862 |
// Now that we know the session is valid, we can delegate the
|
865 |
863 |
// request to a particular action handler
|
... | ... | |
881 |
879 |
} else if (action.trim().equals("spatial_query")) {
|
882 |
880 |
|
883 |
881 |
logMetacat
|
884 |
|
.debug("******************* SPATIAL QUERY ********************");
|
|
882 |
.debug("MetaCatServlet.handleGetOrPost - ******************* SPATIAL QUERY ********************");
|
885 |
883 |
ServletOutputStream streamOut = response.getOutputStream();
|
886 |
884 |
PrintWriter out = new PrintWriter(streamOut);
|
887 |
885 |
handleSpatialQuery(out, params, response, userName, groupNames, sessionId);
|
... | ... | |
889 |
887 |
|
890 |
888 |
} else if (action.trim().equals("dataquery")) {
|
891 |
889 |
|
892 |
|
logMetacat.debug("******************* DATA QUERY ********************");
|
|
890 |
logMetacat.debug("MetaCatServlet.handleGetOrPost - ******************* DATA QUERY ********************");
|
893 |
891 |
handleDataquery(params, response, sessionId);
|
894 |
892 |
} else if (action.trim().equals("editcart")) {
|
895 |
|
logMetacat.debug("******************* EDIT CART ********************");
|
|
893 |
logMetacat.debug("MetaCatServlet.handleGetOrPost - ******************* EDIT CART ********************");
|
896 |
894 |
handleEditCart(params, response, sessionId);
|
897 |
895 |
} else if (action.equals("export")) {
|
898 |
896 |
|
... | ... | |
1110 |
1108 |
|
1111 |
1109 |
} catch (PropertyNotFoundException pnfe) {
|
1112 |
1110 |
String errorString = "Critical property not found: " + pnfe.getMessage();
|
1113 |
|
logMetacat.error(errorString);
|
|
1111 |
logMetacat.error("MetaCatServlet.handleGetOrPost - " + errorString);
|
1114 |
1112 |
throw new ServletException(errorString);
|
1115 |
1113 |
} catch (MetacatUtilException ue) {
|
1116 |
1114 |
String errorString = "Utility error: " + ue.getMessage();
|
1117 |
|
logMetacat.error(errorString);
|
|
1115 |
logMetacat.error("MetaCatServlet.handleGetOrPost - " + errorString);
|
1118 |
1116 |
throw new ServletException(errorString);
|
1119 |
1117 |
} catch (ServiceException ue) {
|
1120 |
1118 |
String errorString = "Service error: " + ue.getMessage();
|
1121 |
|
logMetacat.error(errorString);
|
|
1119 |
logMetacat.error("MetaCatServlet.handleGetOrPost - " + errorString);
|
1122 |
1120 |
throw new ServletException(errorString);
|
1123 |
1121 |
} catch (HandlerException he) {
|
1124 |
1122 |
String errorString = "Handler error: " + he.getMessage();
|
1125 |
|
logMetacat.error(errorString);
|
|
1123 |
logMetacat.error("MetaCatServlet.handleGetOrPost - " + errorString);
|
1126 |
1124 |
throw new ServletException(errorString);
|
1127 |
1125 |
} catch (ErrorSendingErrorException esee) {
|
1128 |
1126 |
String errorString = "Error sending error message: " + esee.getMessage();
|
1129 |
|
logMetacat.error(errorString);
|
|
1127 |
logMetacat.error("MetaCatServlet.handleGetOrPost - " + errorString);
|
1130 |
1128 |
throw new ServletException(errorString);
|
1131 |
1129 |
} catch (ErrorHandledException ehe) {
|
1132 |
1130 |
// Nothing to do here. We assume if we get here, the error has been
|
... | ... | |
1284 |
1282 |
} catch (java.lang.NullPointerException e) {
|
1285 |
1283 |
// should be "default" but keep this for backwards compatibility
|
1286 |
1284 |
// with knp site
|
1287 |
|
logMetacat.warn("No SKIN specified for metacat actions=spatial_query... defaulting to 'knp' skin !\n");
|
|
1285 |
logMetacat.warn("MetaCatServlet.handleSpatialQuery - No SKIN specified for metacat actions=spatial_query... defaulting to 'knp' skin !\n");
|
1288 |
1286 |
qformatArray[0] = "knp";
|
1289 |
1287 |
}
|
1290 |
1288 |
params.put("qformat", qformatArray);
|
... | ... | |
1339 |
1337 |
}
|
1340 |
1338 |
|
1341 |
1339 |
String un = (params.get("username"))[0];
|
1342 |
|
logMetacat.info("user " + un + " is trying to login");
|
|
1340 |
logMetacat.info("MetaCatServlet.handleLoginAction - user " + un + " is trying to login");
|
1343 |
1341 |
String pw = (params.get("password"))[0];
|
1344 |
1342 |
|
1345 |
1343 |
String qformat = "xml";
|
... | ... | |
1350 |
1348 |
try {
|
1351 |
1349 |
sess = new AuthSession();
|
1352 |
1350 |
} catch (Exception e) {
|
1353 |
|
String errorMsg = "MetacatServlet.handleLoginAction()- Problem in MetacatServlet.handleLoginAction() authenicating session: "
|
|
1351 |
String errorMsg = "MetacatServlet.handleLoginAction - Problem in MetacatServlet.handleLoginAction() authenicating session: "
|
1354 |
1352 |
+ e.getMessage();
|
1355 |
1353 |
logMetacat.error(errorMsg);
|
1356 |
1354 |
out.println(errorMsg);
|
... | ... | |
1363 |
1361 |
HttpSession session = sess.getSessions();
|
1364 |
1362 |
String id = session.getId();
|
1365 |
1363 |
|
1366 |
|
logMetacat.debug("Store session id " + id
|
|
1364 |
logMetacat.debug("MetaCatServlet.handleLoginAction - Store session id " + id
|
1367 |
1365 |
+ " which has username" + session.getAttribute("username")
|
1368 |
1366 |
+ " into hash in login method");
|
1369 |
1367 |
try {
|
... | ... | |
1373 |
1371 |
(String) session.getAttribute("password"),
|
1374 |
1372 |
(String) session.getAttribute("name"));
|
1375 |
1373 |
} catch (ServiceException se) {
|
1376 |
|
String errorMsg = "MetacatServlet.handleLoginAction()- service problem registering session: "
|
|
1374 |
String errorMsg = "MetacatServlet.handleLoginAction - service problem registering session: "
|
1377 |
1375 |
+ se.getMessage();
|
1378 |
|
logMetacat.error(errorMsg);
|
|
1376 |
logMetacat.error("MetaCatServlet.handleLoginAction - " + errorMsg);
|
1379 |
1377 |
out.println(errorMsg);
|
1380 |
1378 |
return;
|
1381 |
1379 |
}
|
... | ... | |
1393 |
1391 |
"-//NCEAS//login//EN", "-//W3C//HTML//EN", qformat,
|
1394 |
1392 |
out, null, null);
|
1395 |
1393 |
} catch (Exception e) {
|
1396 |
|
logMetacat.error("Error in MetaCatServlet.handleLoginAction: "
|
|
1394 |
logMetacat.error("MetaCatServlet.handleLoginAction - General error"
|
1397 |
1395 |
+ e.getMessage());
|
1398 |
1396 |
}
|
1399 |
1397 |
}
|
... | ... | |
1412 |
1410 |
|
1413 |
1411 |
// close the connection
|
1414 |
1412 |
HttpSession sess = request.getSession(false);
|
1415 |
|
logMetacat.info("After get session in logout request");
|
|
1413 |
logMetacat.info("MetaCatServlet.handleLogoutAction - After get session in logout request");
|
1416 |
1414 |
if (sess != null) {
|
1417 |
|
logMetacat.info("The session id " + sess.getId()
|
|
1415 |
logMetacat.info("MetaCatServlet.handleLogoutAction - The session id " + sess.getId()
|
1418 |
1416 |
+ " will be invalidate in logout action");
|
1419 |
|
logMetacat.info("The session contains user "
|
|
1417 |
logMetacat.info("MetaCatServlet.handleLogoutAction - The session contains user "
|
1420 |
1418 |
+ sess.getAttribute("username")
|
1421 |
1419 |
+ " will be invalidate in logout action");
|
1422 |
1420 |
sess.invalidate();
|
... | ... | |
1443 |
1441 |
out, null, null);
|
1444 |
1442 |
} catch (Exception e) {
|
1445 |
1443 |
logMetacat.error(
|
1446 |
|
"Error in MetaCatServlet.handleLogoutAction"
|
|
1444 |
"MetaCatServlet.handleLogoutAction - General error: "
|
1447 |
1445 |
+ e.getMessage());
|
1448 |
1446 |
}
|
1449 |
1447 |
}
|
... | ... | |
1464 |
1462 |
private void handleSQuery(PrintWriter out, Hashtable<String, String[]> params,
|
1465 |
1463 |
HttpServletResponse response, String user, String[] groups,
|
1466 |
1464 |
String sessionid) throws PropertyNotFoundException {
|
1467 |
|
double startTime = System.currentTimeMillis() / 1000;
|
|
1465 |
Logger logMetacat = Logger.getLogger(MetaCatServlet.class);
|
|
1466 |
long squeryWarnLimit = Long.parseLong(PropertyService.getProperty("database.squeryTimeWarnLimit"));
|
|
1467 |
|
|
1468 |
long startTime = System.currentTimeMillis();
|
1468 |
1469 |
DBQuery queryobj = new DBQuery();
|
1469 |
1470 |
queryobj.findDocuments(response, out, params, user, groups, sessionid);
|
1470 |
|
double outPutTime = System.currentTimeMillis() / 1000;
|
1471 |
|
Logger logMetacat = Logger.getLogger(MetaCatServlet.class);
|
1472 |
|
logMetacat.warn("Total search time for action 'squery': "
|
1473 |
|
+ (outPutTime - startTime));
|
1474 |
|
MetacatUtil.writeDebugToFile("---------------------------------------------------------------------------------"+
|
1475 |
|
"-------------------------------------------------------------------------------Total search time for "
|
1476 |
|
+ (outPutTime - startTime));
|
1477 |
|
MetacatUtil.writeDebugToDelimiteredFile(" "+ (outPutTime - startTime), true);
|
|
1471 |
long outPutTime = System.currentTimeMillis();
|
|
1472 |
long runTime = outPutTime - startTime;
|
|
1473 |
|
|
1474 |
if (runTime > squeryWarnLimit) {
|
|
1475 |
logMetacat.warn("MetaCatServlet.handleSQuery - Long running squery. Total time: " + runTime +
|
|
1476 |
" ms, squery: " + ((String[])params.get("query"))[0]);
|
|
1477 |
}
|
|
1478 |
logMetacat.debug("MetaCatServlet.handleSQuery - squery: " + ((String[])params.get("query"))[0] +
|
|
1479 |
" ran in " + runTime + " ms");
|
1478 |
1480 |
}
|
1479 |
1481 |
|
1480 |
1482 |
/**
|
... | ... | |
1488 |
1490 |
private void handleQuery(PrintWriter out, Hashtable<String, String[]> params,
|
1489 |
1491 |
HttpServletResponse response, String user, String[] groups,
|
1490 |
1492 |
String sessionid) throws PropertyNotFoundException {
|
|
1493 |
Logger logMetacat = Logger.getLogger(MetaCatServlet.class);
|
|
1494 |
long queryWarnLimit = Long.parseLong(PropertyService.getProperty("database.queryTimeWarnLimit"));
|
|
1495 |
|
1491 |
1496 |
//create the query and run it
|
1492 |
1497 |
String xmlquery = DBQuery.createSQuery(params);
|
1493 |
1498 |
String[] queryArray = new String[1];
|
1494 |
1499 |
queryArray[0] = xmlquery;
|
1495 |
1500 |
params.put("query", queryArray);
|
1496 |
|
double startTime = System.currentTimeMillis() / 1000;
|
|
1501 |
long startTime = System.currentTimeMillis();
|
1497 |
1502 |
DBQuery queryobj = new DBQuery();
|
1498 |
1503 |
queryobj.findDocuments(response, out, params, user, groups, sessionid);
|
1499 |
|
double outPutTime = System.currentTimeMillis() / 1000;
|
1500 |
|
Logger logMetacat = Logger.getLogger(MetaCatServlet.class);
|
1501 |
|
logMetacat.warn("Total search time for action 'query': "
|
1502 |
|
+ (outPutTime - startTime));
|
1503 |
|
MetacatUtil.writeDebugToFile("---------------------------------------------------------------------------------"+
|
1504 |
|
"-------------------------------------------------------------------------------Total search time is "
|
1505 |
|
+ (outPutTime - startTime));
|
1506 |
|
MetacatUtil.writeDebugToDelimiteredFile(" "+ (outPutTime - startTime), true);
|
1507 |
|
|
1508 |
|
//handleSQuery(out, params, response,user, groups, sessionid);
|
|
1504 |
long outPutTime = System.currentTimeMillis();
|
|
1505 |
long runTime = outPutTime -startTime;
|
|
1506 |
|
|
1507 |
if (runTime > queryWarnLimit) {
|
|
1508 |
logMetacat.warn("MetaCatServlet.handleQuery - Long running squery. Total time: " + runTime +
|
|
1509 |
" ms, squery: " + ((String[])params.get("query"))[0]);
|
|
1510 |
}
|
|
1511 |
logMetacat.debug("MetaCatServlet.handleQuery - query: " + ((String[])params.get("query"))[0] +
|
|
1512 |
" ran in " + runTime + " ms");
|
1509 |
1513 |
}
|
1510 |
1514 |
|
1511 |
1515 |
// END OF SQUERY & QUERY SECTION
|
... | ... | |
1588 |
1592 |
zOut.close();
|
1589 |
1593 |
}
|
1590 |
1594 |
} catch (IOException ioe) {
|
1591 |
|
logMetacat.error("Problem with the servlet output "
|
1592 |
|
+ "in MetacatServlet.handleExportAction: "
|
|
1595 |
logMetacat.error("MetaCatServlet.handleExportAction - Problem with the servlet output: "
|
1593 |
1596 |
+ ioe.getMessage());
|
1594 |
1597 |
}
|
1595 |
1598 |
|
1596 |
|
logMetacat.error(
|
1597 |
|
"Error in MetacatServlet.handleExportAction: "
|
|
1599 |
logMetacat.error("MetaCatServlet.handleExportAction - General error: "
|
1598 |
1600 |
+ e.getMessage());
|
1599 |
1601 |
e.printStackTrace(System.out);
|
1600 |
1602 |
|
... | ... | |
1697 |
1699 |
out.close();
|
1698 |
1700 |
}
|
1699 |
1701 |
} catch (IOException ioe) {
|
1700 |
|
logMetacat.error("Problem with the servlet output "
|
1701 |
|
+ "in MetacatServlet.handleExportAction: "
|
|
1702 |
logMetacat.error("MetaCatServlet.handleReadInlineDataAction - Problem with the servlet output: "
|
1702 |
1703 |
+ ioe.getMessage());
|
1703 |
1704 |
}
|
1704 |
|
logMetacat.error(
|
1705 |
|
"Error in MetacatServlet.handleReadInlineDataAction: "
|
|
1705 |
logMetacat.error("MetaCatServlet.handleReadInlineDataAction - General error: "
|
1706 |
1706 |
+ e.getMessage());
|
1707 |
1707 |
}
|
1708 |
1708 |
}
|
... | ... | |
1812 |
1812 |
// the docid which didn't be found
|
1813 |
1813 |
String notFoundDocId = notFoundE.getUnfoundDocId();
|
1814 |
1814 |
String notFoundRevision = notFoundE.getUnfoundRevision();
|
1815 |
|
logMetacat.warn("Missed id: " + notFoundDocId);
|
1816 |
|
logMetacat.warn("Missed rev: " + notFoundRevision);
|
|
1815 |
logMetacat.warn("MetaCatServlet.handleReadAction - Missed id: " + notFoundDocId);
|
|
1816 |
logMetacat.warn("MetaCatServlet.handleReadAction - Missed rev: " + notFoundRevision);
|
1817 |
1817 |
try {
|
1818 |
1818 |
// read docid from remote server
|
1819 |
1819 |
readFromRemoteMetaCat(response, notFoundDocId,
|
... | ... | |
1828 |
1828 |
}
|
1829 |
1829 |
|
1830 |
1830 |
} catch (Exception exc) {
|
1831 |
|
logMetacat.error(
|
1832 |
|
"Erorr in MetacatServlet.hanldReadAction: "
|
|
1831 |
logMetacat.error("MetaCatServlet.handleReadAction - General error: "
|
1833 |
1832 |
+ exc.getMessage());
|
1834 |
1833 |
try {
|
1835 |
1834 |
if (out != null) {
|
... | ... | |
1861 |
1860 |
zout.close();
|
1862 |
1861 |
}
|
1863 |
1862 |
} catch (IOException ie) {
|
1864 |
|
logMetacat.error("Problem with the servlet output "
|
1865 |
|
+ "in MetacatServlet.handleReadAction: "
|
|
1863 |
logMetacat.error("MetaCatServlet.handleReadAction - Problem with the servlet output: "
|
1866 |
1864 |
+ ie.getMessage());
|
1867 |
1865 |
}
|
1868 |
1866 |
}
|
... | ... | |
1896 |
1894 |
zout.close();
|
1897 |
1895 |
}
|
1898 |
1896 |
|
1899 |
|
} catch (IOException ioe) {
|
1900 |
|
logMetacat.error("Problem with the servlet output "
|
1901 |
|
+ "in MetacatServlet.handleReadAction: "
|
1902 |
|
+ ioe.getMessage());
|
1903 |
|
ioe.printStackTrace(System.out);
|
|
1897 |
} catch (Exception e2) {
|
|
1898 |
logMetacat.error("MetaCatServlet.handleReadAction - Problem with the servlet output: "
|
|
1899 |
+ e2.getMessage());
|
|
1900 |
e2.printStackTrace(System.out);
|
1904 |
1901 |
|
1905 |
1902 |
}
|
1906 |
1903 |
|
1907 |
|
logMetacat.error(
|
1908 |
|
"Error in MetacatServlet.handleReadAction: "
|
|
1904 |
logMetacat.error("MetaCatServlet.handleReadAction - General error: "
|
1909 |
1905 |
+ e.getMessage());
|
1910 |
1906 |
//e.printStackTrace(System.out);
|
1911 |
1907 |
}
|
... | ... | |
1962 |
1958 |
ContentTypeProvider provider = new ContentTypeProvider(
|
1963 |
1959 |
docid);
|
1964 |
1960 |
contentType = provider.getContentType();
|
1965 |
|
logMetacat.info("Final contenttype is: "
|
|
1961 |
logMetacat.info("MetaCatServlet.readFromMetacat - Final contenttype is: "
|
1966 |
1962 |
+ contentType);
|
1967 |
1963 |
}
|
1968 |
1964 |
|
... | ... | |
2041 |
2037 |
} catch (Exception e) {
|
2042 |
2038 |
// any exceptions in reading the xml from disc, and we go back to the
|
2043 |
2039 |
// old way of creating the xml directly.
|
2044 |
|
logMetacat.error("could not read from document file " + docid
|
|
2040 |
logMetacat.error("MetaCatServlet.readFromMetacat - could not read from document file " + docid
|
2045 |
2041 |
+ ": " + e.getMessage());
|
2046 |
2042 |
PrintWriter out = new PrintWriter(streamOut);
|
2047 |
2043 |
doc.toXmlFromDb(out, user, groups, withInlineData);
|
... | ... | |
2291 |
2287 |
out.println("<error>");
|
2292 |
2288 |
out.println("Docid not specified");
|
2293 |
2289 |
out.println("</error>");
|
2294 |
|
logMetacat.error("Docid not specified");
|
|
2290 |
logMetacat.error("MetaCatServlet.handleInsertOrUpdateAction - Docid not specified");
|
2295 |
2291 |
return;
|
2296 |
2292 |
}
|
2297 |
2293 |
|
... | ... | |
2301 |
2297 |
out.println("<error>");
|
2302 |
2298 |
out.println("User '" + user + "' not allowed to insert and update");
|
2303 |
2299 |
out.println("</error>");
|
2304 |
|
logMetacat.error("User '" + user + "' not allowed to insert and update");
|
|
2300 |
logMetacat.error("MetaCatServlet.handleInsertOrUpdateAction - User '" + user + "' not allowed to insert and update");
|
2305 |
2301 |
return;
|
2306 |
2302 |
}
|
2307 |
2303 |
} catch (MetacatUtilException ue) {
|
2308 |
|
logMetacat.error("Could not determine if user could insert or update: "
|
|
2304 |
logMetacat.error("MetaCatServlet.handleInsertOrUpdateAction - Could not determine if user could insert or update: "
|
2309 |
2305 |
+ ue.getMessage());
|
2310 |
2306 |
}
|
2311 |
2307 |
|
2312 |
2308 |
try {
|
2313 |
2309 |
// Get the document indicated
|
2314 |
|
logMetacat.debug("params: " + params.toString());
|
|
2310 |
logMetacat.debug("MetaCatServlet.handleInsertOrUpdateAction - params: " + params.toString());
|
2315 |
2311 |
|
2316 |
2312 |
String[] doctext = params.get("doctext");
|
2317 |
2313 |
String pub = null;
|
... | ... | |
2338 |
2334 |
return;
|
2339 |
2335 |
}
|
2340 |
2336 |
|
2341 |
|
logMetacat.debug("======the xml document in metacat servlet (before parsing):\n"+doctext[0]);
|
|
2337 |
logMetacat.debug("MetaCatServlet.handleInsertOrUpdateAction - the xml document in metacat servlet (before parsing):\n" + doctext[0]);
|
2342 |
2338 |
StringReader xml = new StringReader(doctext[0]);
|
2343 |
2339 |
boolean validate = false;
|
2344 |
2340 |
DocumentImplWrapper documentWrapper = null;
|
... | ... | |
2362 |
2358 |
// set eml2 base validation parser
|
2363 |
2359 |
String rule = DocumentImpl.EML200;
|
2364 |
2360 |
// using emlparser to check id validation
|
2365 |
|
EMLParser parser = new EMLParser(doctext[0]);
|
|
2361 |
@SuppressWarnings("unused")
|
|
2362 |
EMLParser parser = new EMLParser(doctext[0]);
|
2366 |
2363 |
documentWrapper = new DocumentImplWrapper(rule, true);
|
2367 |
2364 |
} else if (namespace.compareTo(
|
2368 |
2365 |
DocumentImpl.EML2_1_0NAMESPACE) == 0) {
|
2369 |
2366 |
// set eml2 base validation parser
|
2370 |
2367 |
String rule = DocumentImpl.EML210;
|
2371 |
2368 |
// using emlparser to check id validation
|
2372 |
|
EMLParser parser = new EMLParser(doctext[0]);
|
|
2369 |
@SuppressWarnings("unused")
|
|
2370 |
EMLParser parser = new EMLParser(doctext[0]);
|
2373 |
2371 |
documentWrapper = new DocumentImplWrapper(rule, true);
|
2374 |
2372 |
} else {
|
2375 |
2373 |
// set schema base validation parser
|
... | ... | |
2401 |
2399 |
// write the document to the database and disk
|
2402 |
2400 |
try {
|
2403 |
2401 |
String accNumber = docid[0];
|
2404 |
|
logMetacat.debug("" + doAction + " "
|
|
2402 |
logMetacat.debug("MetaCatServlet.handleInsertOrUpdateAction - " + doAction + " "
|
2405 |
2403 |
+ accNumber + "...");
|
2406 |
2404 |
if (accNumber.equals("")) {
|
2407 |
2405 |
accNumber = null;
|
... | ... | |
2414 |
2412 |
user, accNumber, action[0]);
|
2415 |
2413 |
} catch (NullPointerException npe) {
|
2416 |
2414 |
// MCD this seems a bit dubious, since many things can throw npe
|
2417 |
|
logMetacat.warn("writing with null acnumber");
|
|
2415 |
logMetacat.warn("MetaCatServlet.handleInsertOrUpdateAction - writing with null acnumber");
|
2418 |
2416 |
newdocid = documentWrapper.write(dbConn, xml, pub, dtd,
|
2419 |
2417 |
doAction, null, user, groups);
|
2420 |
2418 |
EventLog.getInstance().log(request.getRemoteAddr(),
|
... | ... | |
2438 |
2436 |
output += "<error>";
|
2439 |
2437 |
output += npe.getMessage();
|
2440 |
2438 |
output += "</error>";
|
2441 |
|
logMetacat.warn("Error in writing eml document to the database" + npe.getMessage());
|
|
2439 |
logMetacat.warn("MetaCatServlet.handleInsertOrUpdateAction - Error in writing eml document to the database" + npe.getMessage());
|
2442 |
2440 |
npe.printStackTrace();
|
2443 |
2441 |
}
|
2444 |
2442 |
} catch (Exception e) {
|
... | ... | |
2447 |
2445 |
output += "<error>";
|
2448 |
2446 |
output += e.getMessage();
|
2449 |
2447 |
output += "</error>";
|
2450 |
|
logMetacat.warn("Error in writing eml document to the database" + e.getMessage());
|
|
2448 |
logMetacat.warn("MetaCatServlet.handleInsertOrUpdateAction - Error in writing eml document to the database" + e.getMessage());
|
2451 |
2449 |
e.printStackTrace();
|
2452 |
2450 |
}
|
2453 |
2451 |
|
... | ... | |
2463 |
2461 |
out, null, null);
|
2464 |
2462 |
} catch (Exception e) {
|
2465 |
2463 |
|
2466 |
|
logMetacat.error(
|
2467 |
|
"Error in MetaCatServlet.handleLoginAction: "
|
|
2464 |
logMetacat.error("MetaCatServlet.handleInsertOrUpdateAction - General error: "
|
2468 |
2465 |
+ e.getMessage());
|
2469 |
2466 |
}
|
2470 |
2467 |
}
|
... | ... | |
2529 |
2526 |
}
|
2530 |
2527 |
}
|
2531 |
2528 |
|
2532 |
|
logMetacat.info("Validation for dtd is " + validate);
|
|
2529 |
logMetacat.info("MetaCatServlet.needDTDValidation - Validation for dtd is " + validate);
|
2533 |
2530 |
return validate;
|
2534 |
2531 |
}
|
2535 |
2532 |
|
... | ... | |
2551 |
2548 |
out.println("<error>");
|
2552 |
2549 |
out.println("Docid not specified.");
|
2553 |
2550 |
out.println("</error>");
|
2554 |
|
logMetacat.error("Docid not specified for the document to be deleted.");
|
|
2551 |
logMetacat.error("MetaCatServlet.handleDeleteAction - Docid not specified for the document to be deleted.");
|
2555 |
2552 |
} else {
|
2556 |
2553 |
|
2557 |
2554 |
// delete the document from the database
|
... | ... | |
2567 |
2564 |
out.println("<success>");
|
2568 |
2565 |
out.println("Document deleted.");
|
2569 |
2566 |
out.println("</success>");
|
2570 |
|
logMetacat.info("Document deleted.");
|
|
2567 |
logMetacat.info("MetaCatServlet.handleDeleteAction - Document deleted.");
|
2571 |
2568 |
|
2572 |
2569 |
// Delete from spatial cache if runningSpatialOption
|
2573 |
2570 |
if ( PropertyService.getProperty("spatial.runSpatialOption").equals("true") ) {
|
... | ... | |
2583 |
2580 |
//out.println("Error deleting document!!!");
|
2584 |
2581 |
out.println(ane.getMessage());
|
2585 |
2582 |
out.println("</error>");
|
2586 |
|
logMetacat.error("Document could not be deleted: "
|
|
2583 |
logMetacat.error("MetaCatServlet.handleDeleteAction - Document could not be deleted: "
|
2587 |
2584 |
+ ane.getMessage());
|
2588 |
2585 |
}
|
2589 |
2586 |
} catch (Exception e) {
|
... | ... | |
2592 |
2589 |
out.println("<error>");
|
2593 |
2590 |
out.println(e.getMessage());
|
2594 |
2591 |
out.println("</error>");
|
2595 |
|
logMetacat.error("Document could not be deleted: "
|
|
2592 |
logMetacat.error("MetaCatServlet.handleDeleteAction - Document could not be deleted: "
|
2596 |
2593 |
+ e.getMessage());
|
2597 |
2594 |
}
|
2598 |
2595 |
}
|
... | ... | |
2714 |
2711 |
String actualDocId = LSIDUtil.getDocId(docid, false);
|
2715 |
2712 |
docid = actualDocId;
|
2716 |
2713 |
} catch (ParseLSIDException ple) {
|
2717 |
|
logMetacat.error("MetaCatServlet.handleGetAccessControlAction - " +
|
|
2714 |
logMetacat.error("MetaCatServlet.handleGetAccessControlAction - MetaCatServlet.handleGetAccessControlAction - " +
|
2718 |
2715 |
"could not parse lsid: " + docid + " : " + ple.getMessage());
|
2719 |
2716 |
}
|
2720 |
2717 |
}
|
... | ... | |
2957 |
2954 |
endDate = new Timestamp((format.parse(end)).getTime());
|
2958 |
2955 |
}
|
2959 |
2956 |
} catch (ParseException e) {
|
2960 |
|
logMetacat.error("Failed to created Timestamp from input.");
|
|
2957 |
logMetacat.error("MetaCatServlet.handleGetLogAction - Failed to created Timestamp from input.");
|
2961 |
2958 |
}
|
2962 |
2959 |
|
2963 |
2960 |
// Request the report by passing the filter parameters
|
... | ... | |
2965 |
2962 |
docid, event, startDate, endDate));
|
2966 |
2963 |
out.close();
|
2967 |
2964 |
} catch (IOException e) {
|
2968 |
|
logMetacat.error("Could not open http response for writing: "
|
|
2965 |
logMetacat.error("MetaCatServlet.handleGetLogAction - Could not open http response for writing: "
|
2969 |
2966 |
+ e.getMessage());
|
2970 |
2967 |
} catch (MetacatUtilException ue) {
|
2971 |
|
logMetacat.error("Could not determine if user is administrator: "
|
|
2968 |
logMetacat.error("MetaCatServlet.handleGetLogAction - Could not determine if user is administrator: "
|
2972 |
2969 |
+ ue.getMessage());
|
2973 |
2970 |
}
|
2974 |
2971 |
}
|
... | ... | |
3034 |
3031 |
out.println("</success>");
|
3035 |
3032 |
out.close();
|
3036 |
3033 |
} catch (IOException e) {
|
3037 |
|
logMetacat.error(
|
3038 |
|
"Could not open http response for writing: "
|
|
3034 |
logMetacat.error("MetaCatServlet.handleBuildIndexAction - Could not open http response for writing: "
|
3039 |
3035 |
+ e.getMessage());
|
3040 |
3036 |
} catch (MetacatUtilException ue) {
|
3041 |
|
logMetacat.error("Could not determine if user is administrator: "
|
|
3037 |
logMetacat.error("MetaCatServlet.handleBuildIndexAction - Could not determine if user is administrator: "
|
3042 |
3038 |
+ ue.getMessage());
|
3043 |
3039 |
}
|
3044 |
3040 |
}
|
... | ... | |
3084 |
3080 |
sizeLimit =
|
3085 |
3081 |
(new Integer(PropertyService.getProperty("replication.datafilesizelimit"))).intValue();
|
3086 |
3082 |
} catch (PropertyNotFoundException pnfe) {
|
3087 |
|
logMetacat.error("Could not determine data file size limit. Using 1000. "
|
|
3083 |
logMetacat.error("MetaCatServlet.handleMultipartForm - Could not determine data file size limit. Using 1000. "
|
3088 |
3084 |
+ pnfe.getMessage());
|
3089 |
3085 |
}
|
3090 |
|
logMetacat.debug("The size limit of uploaded data files is: " + sizeLimit);
|
|
3086 |
logMetacat.debug("MetaCatServlet.handleMultipartForm - The size limit of uploaded data files is: " + sizeLimit);
|
3091 |
3087 |
|
3092 |
3088 |
try {
|
3093 |
3089 |
MultipartParser mp = new MultipartParser(request,
|
... | ... | |
3118 |
3114 |
fileList.put("filename", fileName);
|
3119 |
3115 |
fileList.put("name", fileTempLocation);
|
3120 |
3116 |
} else {
|
3121 |
|
logMetacat.info("Upload name '" + name + "' was empty.");
|
|
3117 |
logMetacat.info("MetaCatServlet.handleMultipartForm - Upload name '" + name + "' was empty.");
|
3122 |
3118 |
}
|
3123 |
3119 |
}
|
3124 |
3120 |
} catch (IOException ioe) {
|
3125 |
3121 |
try {
|
3126 |
3122 |
out = response.getWriter();
|
3127 |
3123 |
} catch (IOException ioe2) {
|
3128 |
|
logMetacat.fatal("Fatal Error: couldn't get response output stream.");
|
|
3124 |
logMetacat.fatal("MetaCatServlet.handleMultipartForm - Fatal Error: couldn't get response output stream.");
|
3129 |
3125 |
}
|
3130 |
3126 |
out.println("<?xml version=\"1.0\"?>");
|
3131 |
3127 |
out.println("<error>");
|
... | ... | |
3165 |
3161 |
try {
|
3166 |
3162 |
out = response.getWriter();
|
3167 |
3163 |
} catch (IOException ioe2) {
|
3168 |
|
logMetacat.error("Fatal Error: couldn't get response "
|
|
3164 |
logMetacat.error("MetaCatServlet.handleMultipartForm - Fatal Error: couldn't get response "
|
3169 |
3165 |
+ "output stream.");
|
3170 |
3166 |
}
|
3171 |
3167 |
|
... | ... | |
3181 |
3177 |
}
|
3182 |
3178 |
} else if(action.equals("insertmultipart")) {
|
3183 |
3179 |
if (username != null && !username.equals("public")) {
|
3184 |
|
logMetacat.debug("!!!!!!!!!!handling multipart insert");
|
|
3180 |
logMetacat.debug("MetaCatServlet.handleMultipartForm - handling multipart insert");
|
3185 |
3181 |
handleInsertMultipartAction(request, response,
|
3186 |
3182 |
out, params, fileList, username, groupnames);
|
3187 |
3183 |
} else {
|
... | ... | |
3239 |
3235 |
// Make sure we have a docid and datafile
|
3240 |
3236 |
if (docid != null && fileList.containsKey("datafile"))
|
3241 |
3237 |
{
|
3242 |
|
logMetacat.info("Uploading data docid: " + docid);
|
|
3238 |
logMetacat.info("MetaCatServlet.handleInsertMultipartAction - Uploading data docid: " + docid);
|
3243 |
3239 |
// Get a reference to the file part of the form
|
3244 |
3240 |
//FilePart filePart = (FilePart) fileList.get("datafile");
|
3245 |
3241 |
String fileName = fileList.get("filename");
|
3246 |
|
logMetacat.debug("Uploading filename: " + fileName);
|
|
3242 |
logMetacat.debug("MetaCatServlet.handleInsertMultipartAction - Uploading filename: " + fileName);
|
3247 |
3243 |
// Check if the right file existed in the uploaded data
|
3248 |
3244 |
if (fileName != null)
|
3249 |
3245 |
{
|
... | ... | |
3270 |
3266 |
{
|
3271 |
3267 |
newFile = new File(newFileName);
|
3272 |
3268 |
fileExists = newFile.exists();
|
3273 |
|
logMetacat.info("new file status is: " + fileExists);
|
|
3269 |
logMetacat.info("MetaCatServlet.handleInsertMultipartAction - new file status is: " + fileExists);
|
3274 |
3270 |
if(fileExists)
|
3275 |
3271 |
{
|
3276 |
3272 |
newFile.delete();
|
... | ... | |
3287 |
3283 |
}
|
3288 |
3284 |
catch (IOException ioe)
|
3289 |
3285 |
{
|
3290 |
|
logMetacat.error("IO Exception copying file: " +
|
|
3286 |
logMetacat.error("MetaCatServlet.handleInsertMultipartAction - IO Exception copying file: " +
|
3291 |
3287 |
ioe.getMessage());
|
3292 |
3288 |
}
|
3293 |
3289 |
size = newFile.length();
|
3294 |
3290 |
if (size == 0)
|
3295 |
3291 |
{
|
3296 |
|
throw new IOException("Uploaded file is 0 bytes!");
|
|
3292 |
throw new IOException("MetaCatServlet.handleInsertMultipartAction - Uploaded file is 0 bytes!");
|
3297 |
3293 |
}
|
3298 |
3294 |
}
|
3299 |
|
logMetacat.info("Uploading the following to Metacat:" +
|
|
3295 |
logMetacat.info("MetaCatServlet.handleInsertMultipartAction - Uploading the following to Metacat:" +
|
3300 |
3296 |
fileName + ", " + docid + ", " +
|
3301 |
3297 |
username + ", " + groupnames);
|
3302 |
3298 |
FileReader fr = new FileReader(newFile);
|
... | ... | |
3336 |
3332 |
}
|
3337 |
3333 |
catch(Exception e)
|
3338 |
3334 |
{
|
3339 |
|
logMetacat.error("error uploading text file via multipart: " + e.getMessage());
|
|
3335 |
logMetacat.error("MetaCatServlet.handleInsertMultipartAction - error uploading text file via multipart: " + e.getMessage());
|
3340 |
3336 |
e.printStackTrace();
|
3341 |
3337 |
}
|
3342 |
3338 |
}
|
... | ... | |
3375 |
3371 |
|
3376 |
3372 |
// Make sure we have a docid and datafile
|
3377 |
3373 |
if (docid != null && fileList.containsKey("datafile")) {
|
3378 |
|
logMetacat.info("Uploading data docid: " + docid);
|
|
3374 |
logMetacat.info("MetaCatServlet.handleUploadAction - Uploading data docid: " + docid);
|
3379 |
3375 |
// Get a reference to the file part of the form
|
3380 |
3376 |
//FilePart filePart = (FilePart) fileList.get("datafile");
|
3381 |
3377 |
String fileName = fileList.get("filename");
|
3382 |
|
logMetacat.info("Uploading filename: " + fileName);
|
|
3378 |
logMetacat.info("MetaCatServlet.handleUploadAction - Uploading filename: " + fileName);
|
3383 |
3379 |
// Check if the right file existed in the uploaded data
|
3384 |
3380 |
if (fileName != null) {
|
3385 |
3381 |
|
... | ... | |
3402 |
3398 |
try {
|
3403 |
3399 |
newFile = new File(newFileName);
|
3404 |
3400 |
fileExists = newFile.exists();
|
3405 |
|
logMetacat.info("new file status is: " + fileExists);
|
|
3401 |
logMetacat.info("MetaCatServlet.handleUploadAction - new file status is: " + fileExists);
|
3406 |
3402 |
if ( fileExists == false ) {
|
3407 |
3403 |
// copy file to desired output location
|
3408 |
3404 |
try {
|
... | ... | |
3416 |
3412 |
throw new IOException("Uploaded file is 0 bytes!");
|
3417 |
3413 |
}
|
3418 |
3414 |
}
|
3419 |
|
logMetacat.info("Uploading the following to Metacat:" +
|
|
3415 |
logMetacat.info("MetaCatServlet.handleUploadAction - Uploading the following to Metacat:" +
|
3420 |
3416 |
fileName + ", " + docid + ", " +
|
3421 |
3417 |
username + ", " + groupnames);
|
3422 |
3418 |
//register the file in the database (which generates
|
... | ... | |
3432 |
3428 |
if ( fileExists == false ) {
|
3433 |
3429 |
newFile.delete();
|
3434 |
3430 |
}
|
3435 |
|
logMetacat.info("in Exception: fileExists is " + fileExists);
|
3436 |
|
logMetacat.error("Upload Error: " + ee.getMessage());
|
|
3431 |
logMetacat.info("MetaCatServlet.handleUploadAction - in Exception: fileExists is " + fileExists);
|
|
3432 |
logMetacat.error("MetaCatServlet.handleUploadAction - Upload Error: " + ee.getMessage());
|
3437 |
3433 |
throw ee;
|
3438 |
3434 |
}
|
3439 |
3435 |
|
... | ... | |
3448 |
3444 |
// not get force replication info from another metacat
|
3449 |
3445 |
ForceReplicationHandler frh = new ForceReplicationHandler(
|
3450 |
3446 |
docid, "insert", false, null);
|
3451 |
|
logMetacat.debug("ForceReplicationHandler created: " + frh.toString());
|
|
3447 |
logMetacat.debug("MetaCatServlet.handleUploadAction - ForceReplicationHandler created: " + frh.toString());
|
3452 |
3448 |
|
3453 |
3449 |
// set content type and other response header fields
|
3454 |
3450 |
// first
|
... | ... | |
3494 |
3490 |
out, null, null);
|
3495 |
3491 |
} catch (Exception e) {
|
3496 |
3492 |
|
3497 |
|
logMetacat.error(
|
3498 |
|
"Error in MetaCatServlet.handleLoginAction: "
|
|
3493 |
logMetacat.error("MetaCatServlet.handleUploadAction - General error: "
|
3499 |
3494 |
+ e.getMessage());
|
3500 |
3495 |
}
|
3501 |
3496 |
}
|
... | ... | |
3589 |
3584 |
String actualDocId = LSIDUtil.getDocId(docid, false);
|
3590 |
3585 |
docid = actualDocId;
|
3591 |
3586 |
} catch (ParseLSIDException ple) {
|
3592 |
|
logMetacat.error("MetaCatServlet.handleGetAccessControlAction - " +
|
|
3587 |
logMetacat.error("MetaCatServlet.handleSetAccessAction - " +
|
3593 |
3588 |
"could not parse lsid: " + docid + " : " + ple.getMessage());
|
3594 |
3589 |
}
|
3595 |
3590 |
}
|
... | ... | |
3716 |
3711 |
+ accessionNumber);
|
3717 |
3712 |
}
|
3718 |
3713 |
} catch (Exception e) {
|
3719 |
|
logMetacat.error(
|
3720 |
|
"Exception in MetacatServlet.getPublicIdForDoc: "
|
|
3714 |
logMetacat.error("MetaCatServlet.getFieldValueForDoc - General error: "
|
3721 |
3715 |
+ e.getMessage());
|
3722 |
3716 |
throw e;
|
3723 |
3717 |
} finally {
|
... | ... | |
3761 |
3755 |
docList.add(docid + "." + rev);
|
3762 |
3756 |
}
|
3763 |
3757 |
} catch (SQLException e) {
|
3764 |
|
logMetacat.error(
|
3765 |
|
"Exception in MetacatServlet.getDocumentList: "
|
|
3758 |
logMetacat.error("MetaCatServlet.getDocumentList - General exception: "
|
3766 |
3759 |
+ e.getMessage());
|
3767 |
3760 |
throw e;
|
3768 |
3761 |
} finally {
|
... | ... | |
3771 |
3764 |
pstmt.close();
|
3772 |
3765 |
|
3773 |
3766 |
} catch (SQLException se) {
|
3774 |
|
logMetacat.error(
|
3775 |
|
"Exception in MetacatServlet.getDocumentList: "
|
|
3767 |
logMetacat.error("MetaCatServlet.getDocumentList - General exception: "
|
3776 |
3768 |
+ se.getMessage());
|
3777 |
3769 |
throw se;
|
3778 |
3770 |
} finally {
|
... | ... | |
3854 |
3846 |
*/
|
3855 |
3847 |
private void scheduleSitemapGeneration(HttpServletRequest request) {
|
3856 |
3848 |
Logger logMetacat = Logger.getLogger(MetaCatServlet.class);
|
3857 |
|
if (!sitemapScheduled) {
|
|
3849 |
if (!_sitemapScheduled) {
|
3858 |
3850 |
String directoryName = null;
|
3859 |
3851 |
String skin = null;
|
3860 |
3852 |
long sitemapInterval = 0;
|
... | ... | |
3865 |
3857 |
sitemapInterval =
|
3866 |
3858 |
Integer.parseInt(PropertyService.getProperty("sitemap.interval"));
|
3867 |
3859 |
} catch (PropertyNotFoundException pnfe) {
|
3868 |
|
logMetacat.error("Could not run site map generation because property "
|
|
3860 |
logMetacat.error("MetaCatServlet.scheduleSitemapGeneration - Could not run site map generation because property "
|
3869 |
3861 |
+ "could not be found: " + pnfe.getMessage());
|
3870 |
3862 |
}
|
3871 |
3863 |
|
... | ... | |
3875 |
3867 |
Sitemap smap = new Sitemap(directory, urlRoot, skin);
|
3876 |
3868 |
long firstDelay = 60*1000; // 60 seconds delay
|
3877 |
3869 |
timer.schedule(smap, firstDelay, sitemapInterval);
|
3878 |
|
sitemapScheduled = true;
|
|
3870 |
_sitemapScheduled = true;
|
3879 |
3871 |
}
|
3880 |
3872 |
}
|
3881 |
3873 |
|
... | ... | |
3885 |
3877 |
* @return true if fully intialized, false otherwise
|
3886 |
3878 |
*/
|
3887 |
3879 |
public static boolean isFullyInitialized() {
|
3888 |
|
return fullyInitialized;
|
|
3880 |
return _fullyInitialized;
|
3889 |
3881 |
}
|
3890 |
3882 |
}
|
add method name to log statements