Abstract class instantiation with static factory methods

Even java.util.TimeZone is an abstract class, it still can be instantiated with static factory methods java.util.TimeZone.getDefault() and java.util.TimeZone.getTimeZone(String).
Also fixing NPE in generic type resolver, when type was not found in the type map.