in src/main/java/com/sylvanaar/idea/errorreporting/YouTrackBugReporter.java [173:231]
private SubmittedReportInfo submit(IdeaLoggingEvent[] ideaLoggingEvents,
String description,
String user) {
this.myDescription = ideaLoggingEvents[0].getThrowableText().substring(0, Math.min(Math.max(80, ideaLoggingEvents[0].getThrowableText().length()), 80));
@NonNls StringBuilder descBuilder = new StringBuilder();
String platformBuild = ApplicationInfo.getInstance().getBuild().asString();
descBuilder.append("Platform Version: ").append(platformBuild).append('\n');
Throwable t = ideaLoggingEvents[0].getThrowable();
if (t != null) {
final PluginId pluginId = IdeErrorsDialog.findPluginId(t);
if (pluginId != null) {
final IdeaPluginDescriptor ideaPluginDescriptor = PluginManager.getPlugin(pluginId);
if (ideaPluginDescriptor != null && !ideaPluginDescriptor.isBundled()) {
descBuilder.append("Plugin ").append(ideaPluginDescriptor.getName()).append(" version: ").append(ideaPluginDescriptor.getVersion()).append("\n");
this.myAffectedVersion = ideaPluginDescriptor.getVersion();
}
}
}
if (user == null) user = "<none>";
if (description == null) description = "<none>";
descBuilder.append("\n\nDescription: ").append(description).append("\n\nUser: ").append(user);
for (IdeaLoggingEvent e : ideaLoggingEvents)
descBuilder.append("\n\n").append(e.toString());
this.myExtraInformation = descBuilder.toString();
String result = submit();
log.info("Error submitted, response: " + result);
if (result == null)
return new SubmittedReportInfo(SERVER_ISSUE_URL, "", FAILED);
String ResultString = null;
try {
Pattern regex = Pattern.compile("id=\"([^\"]+)\"", Pattern.DOTALL | Pattern.MULTILINE);
Matcher regexMatcher = regex.matcher(result);
if (regexMatcher.find()) {
ResultString = regexMatcher.group(1);
}
} catch (PatternSyntaxException ex) {
// Syntax error in the regular expression
}
SubmittedReportInfo.SubmissionStatus status = NEW_ISSUE;
if (ResultString == null)
return new SubmittedReportInfo(SERVER_ISSUE_URL, "", FAILED);
// else {
// if (ResultString.trim().length() > 0)
// status = DUPLICATE;
// }
return new SubmittedReportInfo(SERVER_URL + "issue/" + ResultString, ResultString, status);
}