Has PDF handling changed in 3.7.21?

I’m using Windows 11 and I upgraded to Vassal 3.7.21 recently.

Now, when I open a PDF from the Help menu, the file opens up in a browser. (My default browser is Firefox if that matters.)

In 3.7.20 and earlier it was opening the file using Adobe Reader.

Is this the new expected behaviour or is this a bug?

BTW, Linux stills uses the PDF reader in 3.7.21.

Nothing I know of changed between 3.7.20 and 3.7.21 that could cause what you’re seeing. I wonder if your default PDF reader in Windows changed.

My default PDF reader is still Adobe. A friend suggested it has something to do with the upgraded Java.

What happens if you try opening a PDF with 3.7.20 on Windows now?

It opens in Adobe reader.

I’m surprised that PDFs ever opened in something other than your browser.

The relevant code is here.

What can I say? Until 3.7.21, PDFs always opened up in Adobe Reader; my default Windows app for PDFs.

So I conducted a test. Replaced the Java jre directory in 3.7.21 with the Java from 3.7.20, and 3.7.21 opens PDFs in Adobe Reader again. So it appears to be something to do with Java and not (necessarily) Vassal code.

Which Windows build are you using?

My guess is that you’re using a 64-bit x86 machine, in which case the bundled Java went from 25+36 to 25.0.2+10 between 3.7.20 and 3.7.21.

There might be something in the Java release notes that hint at what changed.

Windows 11 Home, vers 25H2, build 26200.8246

x64-based processor

The relevant code calls java.awt.Desktop#browse or executes - on Windows - start - both with an argument of the URI of the PDF to open. Exactly what the URI looks like depends a little on what you are looking at - an embedded PDF or a filesystem PDF.

Actually, the docs of the above method says

Launches the default browser to display a URI . If the default browser is not able to handle the specified URI , the application registered for handling URIs of the specified type is invoked.

so it should work. The relevant OpenJDK code is here, and the latest commit relevant is here which was from the 19th of January, 2026 - and could be part of the 26 release of OpenJDK.

The browse handling went from something simple as open <url> to a getting the default browser and then opening the URL in that. Arguably that is a regression, and a bug report seems in order.

@mvanleeuwen102 Perhaps you can locate some PDF on your machine - say C:\Users\you\Desktop\MyTest.pdf and verify that running

C:\> start C:\Users\you\Desktop\MyTest.pdf

in the cmd prompt does indeed open the PDF in Acrobat reader.

Then, next, open your default Web-browser, and type into the location field

file:C:\Users\you\Desktop\MyTest.pdf

and see if it opens the PDF in the browser or Acrobat Reader.

Yours,
Christian