e = new Thread(this);
means e is now a reference to a new Thread object. what was e referencing before doesn't matter(null or another Thread object).
I think you missed that references are passed by value, i.e.
Code:
t = new Thread();
e = t;
... changes to t and e are equal
e = new Thread();
... t and e now reference different objects