Paper: "IllegalArgumentException: bound must be positive" in com.destroystokyo.paper.loottable.CraftLootableInventoryData.processRefill line 94

Created on 5 Jun 2018  路  6Comments  路  Source: PaperMC/Paper

Link/paste of stack trace

https://pastebin.com/C59WeU1a

Link/paste of crash report

https://pastebin.com/gCNKwzQT

Plugin list:

AAC, AACAdditionPro, AtherialAnnouncements, AuctionHouse, BetterChairs, BlocksHub, BountyHunters, BungeeTabListPlus (Bukkit Bridge), BuycraftX, Citizens, ConditionalCommands, CoreProtect, CrazyCrates, EasyBackup, EnjimMCPlugin, EssentialsX, EssXChat, EssXSpawn, FAWE, GlobalMute (custom), GriefPrevention, HatMeEnhanced, HolographicDisplays, iControlU, InventoryRollback, LibsDisguises, LuckPerms, Mainframe (custom), MPets, MythicMobs, NuVotifier, OpenInv, PandaWire, PEX-Command (custom), PowerNBT, ProtoclLib, ProtocolSupport, ProtocolSupportLegacySupport, ProtocolSupportStuff, React, Shop, StackMob, SuperTrailsPro, SuperVanish, Tempban (custom), TradePlus, TrollCommands++ (beta), UltraCosmetics, Vault, VotingPlugin, WorldEdit, WorldGuard, WorldGuardExtraFlags

Actions to reproduce (if known):

Sadly seems a bit random. I suppose that's the point of an RNG.

Paper build number:

git-Paper-1433 (MC: 1.12.2) (Implementing API version 1.12.2-R0.1-SNAPSHOT)

Most helpful comment

60 * 60 * 24 * 60 * 1000 = 5 184 000 000
This is more than maxint (2 147 483 647).

All 6 comments

My best guess is the issue is here and there's no validation of user-input in the paper.yml config- though double-checking the config for that server it seems the inputs should be correct? Bit strange.

Our current paper.yml looks like this:

    lootables:
      auto-replenish: true
      restrict-player-reloot: true
      reset-seed-on-fill: true
      max-refills: -1
      refresh-min: 30d
      refresh-max: 60d

60 * 60 * 24 * 60 * 1000 = 518400000
518400000 is still less than 2147483647 int max...

I'm suspecting integer overflow, but I don't see how.

What did you startup log print for min/max settings.

Right, my first thought was an overflow but I didn't see how either. Though to be fair I was assuming since milliseconds were being used it was using longs. Probably should have read the code a bit more closely and did the math myself.

I don't see anything related to those settings in the "latest.log" and I don't see any sort of paper-specific logging levels in the configs. Additionally I couldn't find anything related on Google- in short I'm not actually sure what you mean when you say "startup log". Would you please clarify?

there is a verbose log settings mode that needs to be on to print all world settings

set "verbose" to true in paper.yml, and got this in the output
[15:25:47] [Server thread/INFO]: Lootables: Replenishing every 30d to 60d (restricting reloot)
which is the only thing I can find related to the lootables in the log. Seems the numbers are correct, which is really strange.

60 * 60 * 24 * 60 * 1000 = 5 184 000 000
This is more than maxint (2 147 483 647).

Was this page helpful?
0 / 5 - 0 ratings

Related issues

Decme picture Decme  路  3Comments

Brokkonaut picture Brokkonaut  路  3Comments

ghost picture ghost  路  3Comments

Marlej-dev picture Marlej-dev  路  3Comments

mibby picture mibby  路  3Comments