no logging here? seems dangerous to depend on the user of ProcessThread to correctly check and call getException