Skip to content

Conversation

@demery-pivotal
Copy link
Contributor

PROBLEM

Windows limits command lines to a maximum length of ~32k characters. The
command line for DUnit child VMs is very close to this limit.

Currently this prevents us from adding JUnit 5 support. JUnit 5 adds 8
more jars to the classpath, which adds ~1300 characters to the command
line, which puts the command line over the limit.

SOLUTION

Write the ChildVM's entire classpath to a "pathing" jar, then include
only that pathing jar on the command line. This results in command line
that is shorter by many thousands of characters, and which does not grow
as we add more jars or other classpath elements.

PROBLEM

Windows limits command lines to a maximum length of ~32k characters. The
command line for DUnit child VMs is very close to this limit.

Currently this prevents us from adding JUnit 5 support. JUnit 5 adds 8
more jars to the classpath, which adds ~1300 characters to the command
line, which puts the command line over the limit.

SOLUTION

Write the ChildVM's entire classpath to a "pathing" jar, then include
only that pathing jar on the command line. This results in command line
that is shorter by many thousands of characters, and which does not grow
as we add more jars or other classpath elements.
@demery-pivotal demery-pivotal added the windows add this label to get Windows JDK11 PR checks too label Aug 16, 2021
@demery-pivotal demery-pivotal marked this pull request as ready for review August 18, 2021 18:40
Copy link
Contributor

@kirklund kirklund left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good!

@demery-pivotal demery-pivotal merged commit 5e9b368 into apache:develop Aug 19, 2021
@demery-pivotal demery-pivotal deleted the geode-4181/pathing-jar branch August 19, 2021 21:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

windows add this label to get Windows JDK11 PR checks too

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants