Skip to content

Conversation

@klarose
Copy link

@klarose klarose commented Aug 24, 2022

The jnlp specification
(https://docs.oracle.com/javase/7/docs/technotes/guides/javaws/developersguide/syntax.html)
allows for multiple java/j2se in one resource. The existing model of
the Resource struct allowed for zero or one, not zero to *. This leads
to some odd behaviour when encountering multiple j2se properties. In
particular, it seemed to merge the fields together, with the last
winning. The net result (in the case I ran into) was that java VM
arguments only available in 1.9+ were applied to a 1.8 VM, which lead to
it failing to start.

This changes the Resource model to accept an arbitrary number of
J2SE/Java properties. Further, it maintains the existing J2SE() semantic
of returning exactly one for a given resource by choosing the first
property which matches the java version, in line with the jnlp spec
which indicates a first-match semantic.

The jnlp specification
(https://docs.oracle.com/javase/7/docs/technotes/guides/javaws/developersguide/syntax.html)
allows for multiple `java`/`j2se` in one resource. The existing model of
the Resource struct allowed for zero or one, not zero to *. This leads
to some odd behaviour when encountering multiple j2se properties. In
particular, it seemed to merge the fields together, with the last
winning. The net result (in the case I ran into) was that java VM
arguments only available in 1.9+ were applied to a 1.8 VM, which lead to
it failing to start.

This changes the Resource model to accept an arbitrary number of
J2SE/Java properties. Further, it maintains the existing J2SE() semantic
of returning exactly one for a given resource by choosing the first
property which matches the java version, in line with the jnlp spec
which indicates a first-match semantic.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant