IDEA-131795 Attachment could be not shown while reporting exception

This commit is contained in:
peter
2014-11-10 17:53:25 +01:00
parent 59fd186802
commit db0cef9cc1
5 changed files with 37 additions and 13 deletions
@@ -16,10 +16,14 @@
package com.intellij.diagnostic;
import com.intellij.notification.Notification;
import com.intellij.openapi.diagnostic.Attachment;
import com.intellij.openapi.diagnostic.SubmittedReportInfo;
import org.jetbrains.annotations.NotNull;
import java.util.Calendar;
import java.util.Collections;
import java.util.Date;
import java.util.List;
public abstract class AbstractMessage {
@@ -98,4 +102,9 @@ public abstract class AbstractMessage {
public void setAssigneeId(Integer assigneeId) {
myAssigneeId = assigneeId;
}
@NotNull
public List<Attachment> getAttachments() {
return Collections.emptyList();
}
}
@@ -15,6 +15,12 @@
*/
package com.intellij.diagnostic;
import com.intellij.openapi.diagnostic.Attachment;
import com.intellij.util.Function;
import com.intellij.util.containers.ContainerUtil;
import org.jetbrains.annotations.NotNull;
import java.util.Collection;
import java.util.List;
public class GroupedLogMessage extends AbstractMessage {
@@ -60,4 +66,15 @@ public class GroupedLogMessage extends AbstractMessage {
}
super.setAssigneeId(assigneeId);
}
@NotNull
@Override
public List<Attachment> getAttachments() {
return ContainerUtil.concat(getMessages(), new Function<AbstractMessage, Collection<? extends Attachment>>() {
@Override
public Collection<? extends Attachment> fun(AbstractMessage message) {
return message.getAttachments();
}
});
}
}
@@ -111,9 +111,7 @@ public class ITNReporter extends ErrorReportSubmitter {
Object data = event.getData();
if (data instanceof AbstractMessage) {
errorBean.setAssigneeId(((AbstractMessage)data).getAssigneeId());
}
if (data instanceof LogMessageEx) {
errorBean.setAttachments(((LogMessageEx)data).getAttachments());
errorBean.setAttachments(((AbstractMessage)data).getAttachments());
}
String login = settings.ITN_LOGIN;
@@ -468,13 +468,12 @@ public class IdeErrorsDialog extends DialogWrapper implements MessagePoolListene
}
private void updateAttachmentWarning(final AbstractMessage message) {
final List<Attachment> includedAttachments;
if (message instanceof LogMessageEx &&
!(includedAttachments = ContainerUtil.filter(((LogMessageEx)message).getAttachments(), new Condition<Attachment>() {
public boolean value(final Attachment attachment) {
return attachment.isIncluded();
}
})).isEmpty()) {
final List<Attachment> includedAttachments = ContainerUtil.filter(message.getAttachments(), new Condition<Attachment>() {
public boolean value(final Attachment attachment) {
return attachment.isIncluded();
}
});
if (!includedAttachments.isEmpty()) {
myAttachmentWarningPanel.setVisible(true);
if (includedAttachments.size() == 1) {
myAttachmentWarningLabel.setHtmlText(
@@ -649,7 +648,7 @@ public class IdeErrorsDialog extends DialogWrapper implements MessagePoolListene
boolean hasAttachment = false;
for (ArrayList<AbstractMessage> merged : myMergedMessages) {
final AbstractMessage message = merged.get(0);
if (message instanceof LogMessageEx && !((LogMessageEx)message).getAttachments().isEmpty()) {
if (!message.getAttachments().isEmpty()) {
hasAttachment = true;
break;
}
@@ -693,8 +692,7 @@ public class IdeErrorsDialog extends DialogWrapper implements MessagePoolListene
myDetailsTabForm.setAssigneeId(message == null ? null : message.getAssigneeId());
List<Attachment> attachments =
message instanceof LogMessageEx ? ((LogMessageEx)message).getAttachments() : Collections.<Attachment>emptyList();
List<Attachment> attachments = message != null ? message.getAttachments() : Collections.<Attachment>emptyList();
if (!attachments.isEmpty()) {
if (myTabs.indexOfComponent(myAttachmentsTabForm.getContentPane()) == -1) {
myTabs.addTab(DiagnosticBundle.message("error.attachments.tab.title"), myAttachmentsTabForm.getContentPane());
@@ -76,6 +76,8 @@ public class LogMessageEx extends LogMessage {
myAttachments.add(attachment);
}
@NotNull
@Override
public List<Attachment> getAttachments() {
return myAttachments != null ? myAttachments : Collections.<Attachment>emptyList();
}