diff --git a/src/main/java/edu/harvard/iq/dataverse/DatasetPage.java b/src/main/java/edu/harvard/iq/dataverse/DatasetPage.java index 335964549a8..95494860844 100644 --- a/src/main/java/edu/harvard/iq/dataverse/DatasetPage.java +++ b/src/main/java/edu/harvard/iq/dataverse/DatasetPage.java @@ -4277,6 +4277,7 @@ public boolean isLockedForAnyReason() { } public void processPublishButton() { + logger.info(" JC TESTING process publish dataset = " ); if (dataset.isReleased()) { PrimeFaces.current().executeScript("PF('publishDataset').show()"); } diff --git a/src/main/java/edu/harvard/iq/dataverse/MailServiceBean.java b/src/main/java/edu/harvard/iq/dataverse/MailServiceBean.java index 48ba03e252e..56f88333d94 100644 --- a/src/main/java/edu/harvard/iq/dataverse/MailServiceBean.java +++ b/src/main/java/edu/harvard/iq/dataverse/MailServiceBean.java @@ -114,6 +114,8 @@ public boolean sendSystemEmail(String to, String subject, String messageText) { * @return Status: true if sent successfully, false otherwise */ public boolean sendSystemEmail(String to, String subject, String messageText, boolean isHtmlContent) { + logger.info("JC Sending notifications 6.4 to address: " + to); + Optional optionalAddress = getSystemAddress(); if (optionalAddress.isEmpty()) { logger.fine(() -> "Skipping sending mail to " + to + ", because no system address has been set."); @@ -126,11 +128,13 @@ public boolean sendSystemEmail(String to, String subject, String messageText, bo BundleUtil.getStringFromBundle(isHtmlContent ? "notification.email.closing.html" : "notification.email.closing", List.of(BrandingUtil.getSupportTeamEmailAddress(systemAddress), BrandingUtil.getSupportTeamName(systemAddress))); - logger.fine(() -> "Sending email to %s. Subject: <<<%s>>>. Body: %s".formatted(to, subject, body)); + logger.info("JC Sending notifications 6.4 body : " + body); + + logger.info(() -> "Sending email to %s. Subject: <<<%s>>>. Body: %s".formatted(to, subject, body)); try { // Since JavaMail 1.6, we have support for UTF-8 mail addresses and do not need to handle these ourselves. InternetAddress[] recipients = InternetAddress.parse(to); - + logger.info("JC Sending notifications 6.4 from address : " + systemAddress.getAddress().toString()); MimeMessage msg = new MimeMessage(session); msg.setFrom(systemAddress); msg.setSentDate(new Date()); @@ -141,13 +145,15 @@ public boolean sendSystemEmail(String to, String subject, String messageText, bo } else { msg.setText(body, charset); } - + logger.info("JC Sending notifications 6.5 tansport send - start : " ); Transport.send(msg, recipients); + logger.info("JC Sending notifications 6.5 tansport send - end : " ); return true; } catch (MessagingException ae) { logger.log(Level.WARNING, "Failed to send mail to %s: %s".formatted(to, ae.getMessage()), ae); logger.info("When UTF-8 characters in recipients: make sure MTA supports it and JVM option " + JvmSettings.MAIL_MTA_SUPPORT_UTF8.getScopedKey() + "=true"); } + logger.info("JC Sending notifications 6.5 tansport send - failed : " ); return false; } @@ -278,14 +284,16 @@ public Boolean sendNotificationEmail(UserNotification notification, String comme } public Boolean sendNotificationEmail(UserNotification notification, String comment, AuthenticatedUser requestor, boolean isHtmlContent){ - + logger.info("JC Sending notifications 6.1: "); boolean retval = false; String emailAddress = getUserEmailAddress(notification); if (emailAddress != null){ Object objectOfNotification = getObjectOfNotification(notification); if (objectOfNotification != null){ String messageText = getMessageTextBasedOnNotification(notification, objectOfNotification, comment, requestor); + logger.info("JC Sending notifications 6.2: " + messageText); String subjectText = MailUtil.getSubjectTextBasedOnNotification(notification, objectOfNotification); + logger.info("JC Sending notifications 6.3: " + subjectText); if (!(messageText.isEmpty() || subjectText.isEmpty())){ retval = sendSystemEmail(emailAddress, subjectText, messageText, isHtmlContent); } else { diff --git a/src/main/java/edu/harvard/iq/dataverse/UserNotificationServiceBean.java b/src/main/java/edu/harvard/iq/dataverse/UserNotificationServiceBean.java index 228e4b19c38..0b331b55c42 100644 --- a/src/main/java/edu/harvard/iq/dataverse/UserNotificationServiceBean.java +++ b/src/main/java/edu/harvard/iq/dataverse/UserNotificationServiceBean.java @@ -94,6 +94,7 @@ public void delete(UserNotification userNotification) { @TransactionAttribute(TransactionAttributeType.REQUIRES_NEW) public void sendNotificationInNewTransaction(AuthenticatedUser dataverseUser, Timestamp sendDate, Type type, Long objectId) { + logger.info("JC Sending notifications 2: "); sendNotification(dataverseUser, sendDate, type, objectId, ""); } @@ -102,6 +103,7 @@ public void sendNotification(AuthenticatedUser dataverseUser, Timestamp sendDate } public void sendNotification(AuthenticatedUser dataverseUser, Timestamp sendDate, Type type, Long objectId, String comment) { + logger.info("JC Sending notifications 3: "); sendNotification(dataverseUser, sendDate, type, objectId, comment, null, false); } @@ -110,9 +112,11 @@ public void sendNotification(AuthenticatedUser dataverseUser, Timestamp sendDate } public void sendNotification(AuthenticatedUser dataverseUser, Timestamp sendDate, Type type, Long objectId, String comment, AuthenticatedUser requestor, boolean isHtmlContent) { + logger.info("JC Sending notifications 4: "); sendNotification(dataverseUser, sendDate, type, objectId, comment, requestor, isHtmlContent, null); } public void sendNotification(AuthenticatedUser dataverseUser, Timestamp sendDate, Type type, Long objectId, String comment, AuthenticatedUser requestor, boolean isHtmlContent, String additionalInfo) { + logger.info("JC Sending notifications 5: "); UserNotification userNotification = new UserNotification(); userNotification.setUser(dataverseUser); userNotification.setSendDate(sendDate); @@ -120,14 +124,18 @@ public void sendNotification(AuthenticatedUser dataverseUser, Timestamp sendDate userNotification.setObjectId(objectId); userNotification.setRequestor(requestor); userNotification.setAdditionalInfo(additionalInfo); + logger.info("JC Sending notifications 6: "); if (!isEmailMuted(userNotification) && mailService.sendNotificationEmail(userNotification, comment, requestor, isHtmlContent)) { + logger.info("JC Sending notifications 7: "); logger.fine("email was sent"); userNotification.setEmailed(true); } else { + logger.info("JC Sending notifications 8: "); logger.fine("email was not sent"); } if (!isNotificationMuted(userNotification)) { + logger.info("JC Sending notifications 9: "); save(userNotification); } } diff --git a/src/main/java/edu/harvard/iq/dataverse/engine/command/impl/FinalizeDatasetPublicationCommand.java b/src/main/java/edu/harvard/iq/dataverse/engine/command/impl/FinalizeDatasetPublicationCommand.java index ae747c06d4e..4328ee1d662 100644 --- a/src/main/java/edu/harvard/iq/dataverse/engine/command/impl/FinalizeDatasetPublicationCommand.java +++ b/src/main/java/edu/harvard/iq/dataverse/engine/command/impl/FinalizeDatasetPublicationCommand.java @@ -75,7 +75,8 @@ public FinalizeDatasetPublicationCommand(Dataset aDataset, DataverseRequest aReq @Override public Dataset execute(CommandContext ctxt) throws CommandException { Dataset theDataset = getDataset(); - + + // JC 1 logger.info("Finalizing publication of the dataset "+theDataset.getGlobalId().asString()); // validate the physical files before we do anything else: @@ -244,7 +245,7 @@ public Dataset execute(CommandContext ctxt) throws CommandException { if (readyDataset.isLockedFor(DatasetLock.Reason.InReview) ) { ctxt.datasets().removeDatasetLocks(readyDataset, DatasetLock.Reason.InReview); } - + //JC 2 logger.info("Successfully published the dataset "+readyDataset.getGlobalId().asString()); readyDataset = ctxt.em().merge(readyDataset); @@ -495,6 +496,8 @@ private void notifyUsersDatasetPublishStatus(CommandContext ctxt, DvObject subje } } */ + +logger.info("JC Sending notifications : 1 "); ctxt.roles().rolesAssignments(subject).stream() .filter( ra -> ra.getRole().permissions().contains(Permission.ViewUnpublishedDataset) || ra.getRole().permissions().contains(Permission.DownloadFile)) .flatMap( ra -> ctxt.roleAssignees().getExplicitUsers(ctxt.roleAssignees().getRoleAssignee(ra.getAssigneeIdentifier())).stream() ) diff --git a/src/main/webapp/dataset.xhtml b/src/main/webapp/dataset.xhtml index d16861afe76..1f1098f57b4 100644 --- a/src/main/webapp/dataset.xhtml +++ b/src/main/webapp/dataset.xhtml @@ -345,7 +345,7 @@