<freeStyleBuild _class='hudson.model.FreeStyleBuild'><action _class='hudson.model.CauseAction'><cause _class='hudson.triggers.SCMTrigger$SCMTriggerCause'><shortDescription>Started by an SCM change</shortDescription></cause></action><action></action><action _class='hudson.plugins.git.util.BuildData'><buildsByBranchName><refsremotesoriginmaster _class='hudson.plugins.git.util.Build'><buildNumber>344</buildNumber><marked><SHA1>f6a6b90211746758c351c341db7c31f21e1bbcd7</SHA1><branch><SHA1>f6a6b90211746758c351c341db7c31f21e1bbcd7</SHA1><name>refs/remotes/origin/master</name></branch></marked><revision><SHA1>f6a6b90211746758c351c341db7c31f21e1bbcd7</SHA1><branch><SHA1>f6a6b90211746758c351c341db7c31f21e1bbcd7</SHA1><name>refs/remotes/origin/master</name></branch></revision></refsremotesoriginmaster></buildsByBranchName><lastBuiltRevision><SHA1>f6a6b90211746758c351c341db7c31f21e1bbcd7</SHA1><branch><SHA1>f6a6b90211746758c351c341db7c31f21e1bbcd7</SHA1><name>refs/remotes/origin/master</name></branch></lastBuiltRevision><remoteUrl>https://github.com/mcMMO-Dev/mcMMO.git</remoteUrl><scmName></scmName></action><action></action><action></action><action></action><action _class='org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction'></action><artifact><displayPath>mcMMO.jar</displayPath><fileName>mcMMO.jar</fileName><relativePath>target/mcMMO.jar</relativePath></artifact><artifact><displayPath>original-mcMMO.jar</displayPath><fileName>original-mcMMO.jar</fileName><relativePath>target/original-mcMMO.jar</relativePath></artifact><building>false</building><displayName>#344</displayName><duration>64103</duration><estimatedDuration>135282</estimatedDuration><fullDisplayName>mcMMO #344</fullDisplayName><id>344</id><inProgress>false</inProgress><keepLog>false</keepLog><number>344</number><queueId>217</queueId><result>SUCCESS</result><timestamp>1783742649902</timestamp><url>https://popicraft.net/jenkins/job/mcMMO/344/</url><builtOn>Builder</builtOn><changeSet _class='hudson.plugins.git.GitChangeSetList'><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>src/test/java/com/gmail/nossr50/TestRegistryBootstrap.java</affectedPath><commitId>d96637f38a29f099b77b2b4ba2da7a8ac681a066</commitId><timestamp>1783741958000</timestamp><author><absoluteUrl>https://popicraft.net/jenkins/user/nossr50</absoluteUrl><fullName>nossr50</fullName></author><authorEmail>nossr50@gmail.com</authorEmail><comment>Fail fast when the registry bootstrap lookup pipeline is broken

The CI-only registry failure surfaces as NoClassDefFoundError in
every test after the first bootstrap, far away from the actual
break. Verify the pipeline right after Registry initializes: check
that Registry.EFFECT resolved through the bootstrap answer and that
a lookup on it mints a non-null instance, and throw a descriptive
IllegalStateException at the exact broken link instead of letting a
registry-backed class initializer read null and poison its class
for the whole JVM.
</comment><date>2026-07-10 20:52:38 -0700</date><id>d96637f38a29f099b77b2b4ba2da7a8ac681a066</id><msg>Fail fast when the registry bootstrap lookup pipeline is broken</msg><path><editType>edit</editType><file>src/test/java/com/gmail/nossr50/TestRegistryBootstrap.java</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>src/test/java/com/gmail/nossr50/util/sounds/SoundManagerTest.java</affectedPath><affectedPath>src/test/java/com/gmail/nossr50/MMOTestEnvironment.java</affectedPath><commitId>f6a6b90211746758c351c341db7c31f21e1bbcd7</commitId><timestamp>1783742462000</timestamp><author><absoluteUrl>https://popicraft.net/jenkins/user/nossr50</absoluteUrl><fullName>nossr50</fullName></author><authorEmail>nossr50@gmail.com</authorEmail><comment>Fix test-order-dependent poisoning of Bukkit registry constants

SoundManagerTest answered Bukkit.getRegistry with bare Registry
mocks whose lookups return null. Whichever test first triggers
org.bukkit.Registry initialization welds its lookup results into
the Registry constants for the rest of the JVM, so when that test
ran before any TestRegistryBootstrap user (the CI runner listed the
util package before the skills package; Windows lists it after,
which is why this never reproduced locally), PotionEffectType read
a null lookup during its own initialization and 108 later tests
died with NoClassDefFoundError.

SoundManagerTest now serves registry lookups through
TestRegistryBootstrap, and MMOTestEnvironment bootstraps for every
harness test so no test ordering can initialize the registry
constants without the minting answer in place. Reproduced with
-Dsurefire.runOrder=reversealphabetical and verified green in both
orders on JDK 17 and JDK 25.
</comment><date>2026-07-10 21:01:02 -0700</date><id>f6a6b90211746758c351c341db7c31f21e1bbcd7</id><msg>Fix test-order-dependent poisoning of Bukkit registry constants</msg><path><editType>edit</editType><file>src/test/java/com/gmail/nossr50/util/sounds/SoundManagerTest.java</file></path><path><editType>edit</editType><file>src/test/java/com/gmail/nossr50/MMOTestEnvironment.java</file></path></item><kind>git</kind></changeSet><culprit><absoluteUrl>https://popicraft.net/jenkins/user/nossr50</absoluteUrl><fullName>nossr50</fullName></culprit></freeStyleBuild>