@Override
public String toString() {
    return this.getName() + " created ";
}
между
@Override
public String toString() {
    return Thread.currentThread().getName() + " created ";
}
по отладке видно, что в последнем случае появляется main created, которого как я понял быть не должно