diff --git a/platform/platform-impl/src/com/intellij/diagnostic/AbstractMessage.java b/platform/platform-impl/src/com/intellij/diagnostic/AbstractMessage.java index 82f67b71c6cb..6f2ab38988f6 100644 --- a/platform/platform-impl/src/com/intellij/diagnostic/AbstractMessage.java +++ b/platform/platform-impl/src/com/intellij/diagnostic/AbstractMessage.java @@ -18,6 +18,7 @@ package com.intellij.diagnostic; import com.intellij.notification.Notification; import com.intellij.openapi.diagnostic.Attachment; import com.intellij.openapi.diagnostic.SubmittedReportInfo; +import com.intellij.util.containers.ContainerUtil; import org.jetbrains.annotations.NotNull; import java.util.Calendar; @@ -102,9 +103,23 @@ public abstract class AbstractMessage { public void setAssigneeId(Integer assigneeId) { myAssigneeId = assigneeId; } - - @NotNull - public List getAttachments() { + + public List getAllAttachments() { return Collections.emptyList(); } + + /** + * @return list of attachments which are marked by user to be included into the error report + */ + public List getIncludedAttachments() { + return ContainerUtil.filter(getAllAttachments(), Attachment::isIncluded); + } + + /** + * @deprecated use {@link #getIncludedAttachments()} instead + */ + @NotNull + public List getAttachments() { + return getIncludedAttachments(); + } } diff --git a/platform/platform-impl/src/com/intellij/diagnostic/GroupedLogMessage.java b/platform/platform-impl/src/com/intellij/diagnostic/GroupedLogMessage.java index d2709d9bd164..87d827d14377 100644 --- a/platform/platform-impl/src/com/intellij/diagnostic/GroupedLogMessage.java +++ b/platform/platform-impl/src/com/intellij/diagnostic/GroupedLogMessage.java @@ -69,11 +69,11 @@ public class GroupedLogMessage extends AbstractMessage { @NotNull @Override - public List getAttachments() { + public List getAllAttachments() { return ContainerUtil.concat(getMessages(), new Function>() { @Override public Collection fun(AbstractMessage message) { - return message.getAttachments(); + return message.getAllAttachments(); } }); } diff --git a/platform/platform-impl/src/com/intellij/diagnostic/ITNReporter.java b/platform/platform-impl/src/com/intellij/diagnostic/ITNReporter.java index df3f2870a199..41dd934cc942 100644 --- a/platform/platform-impl/src/com/intellij/diagnostic/ITNReporter.java +++ b/platform/platform-impl/src/com/intellij/diagnostic/ITNReporter.java @@ -110,7 +110,7 @@ public class ITNReporter extends ErrorReportSubmitter { Object data = event.getData(); if (data instanceof AbstractMessage) { errorBean.setAssigneeId(((AbstractMessage)data).getAssigneeId()); - errorBean.setAttachments(((AbstractMessage)data).getAttachments()); + errorBean.setAttachments(((AbstractMessage)data).getIncludedAttachments()); } String login = settings.ITN_LOGIN; diff --git a/platform/platform-impl/src/com/intellij/diagnostic/IdeErrorsDialog.java b/platform/platform-impl/src/com/intellij/diagnostic/IdeErrorsDialog.java index 098f86b88700..c4aee2f038b9 100644 --- a/platform/platform-impl/src/com/intellij/diagnostic/IdeErrorsDialog.java +++ b/platform/platform-impl/src/com/intellij/diagnostic/IdeErrorsDialog.java @@ -45,7 +45,6 @@ import com.intellij.openapi.project.DumbAware; import com.intellij.openapi.project.Project; import com.intellij.openapi.ui.DialogWrapper; import com.intellij.openapi.util.Comparing; -import com.intellij.openapi.util.Condition; import com.intellij.openapi.util.SystemInfo; import com.intellij.openapi.util.text.StringUtil; import com.intellij.openapi.wm.IdeFocusManager; @@ -433,11 +432,7 @@ public class IdeErrorsDialog extends DialogWrapper implements MessagePoolListene private void updateAttachmentWarning(final AbstractMessage message) { if (message == null) return; - final List includedAttachments = ContainerUtil.filter(message.getAttachments(), new Condition() { - public boolean value(final Attachment attachment) { - return attachment.isIncluded(); - } - }); + final List includedAttachments = message.getIncludedAttachments(); if (!includedAttachments.isEmpty()) { myAttachmentWarningPanel.setVisible(true); if (includedAttachments.size() == 1) { @@ -613,7 +608,7 @@ public class IdeErrorsDialog extends DialogWrapper implements MessagePoolListene boolean hasAttachment = false; for (ArrayList merged : myMergedMessages) { final AbstractMessage message = merged.get(0); - if (!message.getAttachments().isEmpty()) { + if (!message.getAllAttachments().isEmpty()) { hasAttachment = true; break; } @@ -657,7 +652,7 @@ public class IdeErrorsDialog extends DialogWrapper implements MessagePoolListene myDetailsTabForm.setAssigneeId(message == null ? null : message.getAssigneeId()); - List attachments = message != null ? message.getAttachments() : Collections.emptyList(); + List attachments = message != null ? message.getAllAttachments() : Collections.emptyList(); if (!attachments.isEmpty()) { if (myTabs.indexOfComponent(myAttachmentsTabForm.getContentPane()) == -1) { myTabs.addTab(DiagnosticBundle.message("error.attachments.tab.title"), myAttachmentsTabForm.getContentPane()); diff --git a/platform/platform-impl/src/com/intellij/diagnostic/LogMessageEx.java b/platform/platform-impl/src/com/intellij/diagnostic/LogMessageEx.java index ad7f148b6947..d0546c0a2562 100644 --- a/platform/platform-impl/src/com/intellij/diagnostic/LogMessageEx.java +++ b/platform/platform-impl/src/com/intellij/diagnostic/LogMessageEx.java @@ -78,7 +78,7 @@ public class LogMessageEx extends LogMessage { @NotNull @Override - public List getAttachments() { + public List getAllAttachments() { return myAttachments != null ? myAttachments : Collections.emptyList(); }