mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-04-23 14:42:11 +02:00
[288873] Consolidate executor trace when the creator and submitter info is the same
This commit is contained in:
parent
d5fc0b227d
commit
1d802df663
1 changed files with 53 additions and 11 deletions
|
@ -216,22 +216,63 @@ public class DefaultDsfExecutor extends ScheduledThreadPoolExecutor
|
|||
traceBuilder.append("\n "); //$NON-NLS-1$
|
||||
traceBuilder.append(getExecutable().toString());
|
||||
|
||||
// Append "create by" info.
|
||||
// Determine if the created-at and submitted-at information is
|
||||
// the same. If so, consolidate.
|
||||
StackTraceElement[] createdAtStack = null;
|
||||
StackTraceElement[] submittedAtStack = (fSubmittedAt == null) ? null : fSubmittedAt.fStackTraceElements;
|
||||
int createdBySeqNum = Integer.MIN_VALUE;
|
||||
int submittedBySeqNum = (fSubmittedBy == null) ? Integer.MIN_VALUE : fSubmittedBy.fSequenceNumber;
|
||||
if (getExecutable() instanceof DsfExecutable) {
|
||||
DsfExecutable dsfExecutable = (DsfExecutable)getExecutable();
|
||||
if (dsfExecutable.fCreatedAt != null || dsfExecutable.fCreatedBy != null) {
|
||||
traceBuilder.append("\n created "); //$NON-NLS-1$
|
||||
if (dsfExecutable.fCreatedBy != null) {
|
||||
traceBuilder.append(" by #"); //$NON-NLS-1$
|
||||
traceBuilder.append(dsfExecutable.fCreatedBy.fSequenceNumber);
|
||||
createdAtStack = (dsfExecutable.fCreatedAt == null) ? null : dsfExecutable.fCreatedAt.fStackTraceElements;
|
||||
createdBySeqNum = (dsfExecutable.fCreatedBy == null) ? Integer.MIN_VALUE : dsfExecutable.fCreatedBy.fSequenceNumber;
|
||||
}
|
||||
|
||||
boolean canConsolidate = false;
|
||||
if ((createdBySeqNum == submittedBySeqNum) && (createdAtStack != null) && (submittedAtStack != null)) {
|
||||
if ((createdAtStack.length == submittedAtStack.length) ||
|
||||
(createdAtStack.length >=3 && submittedAtStack.length >= 3)) {
|
||||
|
||||
canConsolidate = true;
|
||||
int count = Math.min(createdAtStack.length, 3);
|
||||
for (int i = 0; i < count; i++) {
|
||||
if (createdAtStack[i].toString().compareTo(submittedAtStack[i].toString()) != 0) {
|
||||
canConsolidate = false;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (canConsolidate) {
|
||||
traceBuilder.append("\n created and submitted"); //$NON-NLS-1$
|
||||
if (createdBySeqNum != Integer.MIN_VALUE) {
|
||||
traceBuilder.append(" by #"); //$NON-NLS-1$
|
||||
traceBuilder.append(createdBySeqNum);
|
||||
}
|
||||
if (createdAtStack != null) {
|
||||
traceBuilder.append("\n at "); //$NON-NLS-1$
|
||||
traceBuilder.append(createdAtStack[0].toString());
|
||||
for (int i = 1; i < createdAtStack.length && i < 3; i++) {
|
||||
traceBuilder.append("\n "); //$NON-NLS-1$
|
||||
traceBuilder.append(createdAtStack[i].toString());
|
||||
}
|
||||
if (dsfExecutable.fCreatedAt != null) {
|
||||
}
|
||||
}
|
||||
else {
|
||||
// Append "create by" info.
|
||||
if (createdAtStack != null || createdBySeqNum != Integer.MIN_VALUE) {
|
||||
traceBuilder.append("\n created "); //$NON-NLS-1$
|
||||
if (createdBySeqNum != Integer.MIN_VALUE) {
|
||||
traceBuilder.append(" by #"); //$NON-NLS-1$
|
||||
traceBuilder.append(createdBySeqNum);
|
||||
}
|
||||
if (createdAtStack != null) {
|
||||
traceBuilder.append("\n at "); //$NON-NLS-1$
|
||||
traceBuilder.append(dsfExecutable.fCreatedAt.fStackTraceElements[0].toString());
|
||||
for (int i = 1; i < dsfExecutable.fCreatedAt.fStackTraceElements.length && i < 3; i++) {
|
||||
traceBuilder.append(createdAtStack[0].toString());
|
||||
for (int i = 1; i < createdAtStack.length && i < 3; i++) {
|
||||
traceBuilder.append("\n "); //$NON-NLS-1$
|
||||
traceBuilder.append(dsfExecutable.fCreatedAt.fStackTraceElements[i].toString());
|
||||
}
|
||||
traceBuilder.append(createdAtStack[i].toString());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -248,6 +289,7 @@ public class DefaultDsfExecutor extends ScheduledThreadPoolExecutor
|
|||
traceBuilder.append("\n "); //$NON-NLS-1$
|
||||
traceBuilder.append(fSubmittedAt.fStackTraceElements[i].toString());
|
||||
}
|
||||
}
|
||||
|
||||
// Finally write out to console
|
||||
DsfPlugin.debug(traceBuilder.toString());
|
||||
|
|
Loading…
Add table
Reference in a new issue