But that's not a Windows program. That's a Java program and that is the coder's issue not MS. The Windows API that returns the Marketing Name have been deprecated as far as I know.
I don't what distinction you're trying to make between a Windows program and a Java program. Windows is an OS, Java is a programming language. Java programs can run on Windows. And sure, it's a problem with the code, but Java programs are popular in big "enterprise" apps, so MS is especially interested in keeping those apps running. The last thing they want is for some company to not upgrade thousands of copies of Windows because a program that company needs won't run on the new version. "DOS ain't done until Lotus won't run" is a myth; MS jumps through a lot of hoops to make sure that almost all programs that run on an older version of Windows will continue running on the new version, even when the coder did something stupid.