Java7 backport