backport jsr166e