TankPoints

49 - r165 LDB support bugs out, is unusable

What steps will reproduce the problem?

1. Log on.

2. Mouse over the TankPoints feed in your LDB display (here, StatBlockCore).

3. Left-click the LDB display feed.

What is the expected output? What do you see instead?

Expected: no problems.

Instead: Three different errors when doing each of the above (in order).

What version of the product are you using?

r165

Do you have an error log of what happened?

For 1.:

	["message"] = "TankPoints-2.9.0 (r165a)\\TankPointsLibDataBroker.lua:146: attempt to index upvalue 'Toolkit' (a nil value)\nTankPoints-2.9.0 (r165a)\\TankPoints.lua:483: in function `FunctionName'\nTankPoints-2.9.0 (r165a)\\TankPoints.lua:291: in function <Interface\\AddOns\\TankPoints\\TankPoints.lua:275>\n",
			["type"] = "error",
			["locals"] = {
				"self = <table> {\n SetDefaultModuleLibraries = <function> defined @Interface\\AddOns\\Ace3\\AceAddon-3.0\\AceAddon-3.0.lua:383\n SetDebugging = <function> defined @Interface\\AddOns\\TankPoints\\AceDebug-3.0\\AceDebug-3.0.lua:132\n ShieldIsEquipped = <function> defined @Interface\\AddOns\\TankPoints\\TankPoints.lua:580\n SetShowPerStat = <function> defined @Interface\\AddOns\\TankPoints\\TankPoints.lua:465\n EnableModule = <function> defined @Interface\\AddOns\\Ace3\\AceAddon-3.0\\AceAddon-3.0.lua:348\n modules = <table> {\n }\n baseName = \"TankPoints\"\n IterateEmbeds = <function> defined @Interface\\AddOns\\Ace3\\AceAddon-3.0\\AceAddon-3.0.lua:458\n noTPReason = \"should have TankPoints\"\n ShowPerStat = <function> defined @Interface\\AddOns\\TankPoints\\TankPoints.lua:462\n TankPointsCalculatorStat_OnEnter = <function> defined @Interface\\AddOns\\TankPoints\\TankPointsPaperDollStats.lua:209\n ResistableElementalSchools = <table> {\n }\n GetDebugPrefix = <function> defined @Interface\\AddOns\\TankPoints\\AceDebu", -- [1]
				"g-3.0\\AceDebug-3.0.lua:192\n resultsTable = <table> {\n }\n defaultModuleState = true\n GetSourceData = <function> defined @Interface\\AddOns\\TankPoints\\TankPoints.lua:978\n IsEnabled = <function> defined @Interface\\AddOns\\Ace3\\AceAddon-3.0\\AceAddon-3.0.lua:467\n ElementalSchools = <table> {\n }\n CustomDebug = <function> defined @Interface\\AddOns\\TankPoints\\AceDebug-3.0\\AceDebug-3.0.lua:90\n Schedule = <function> defined @Interface\\AddOns\\TankPoints\\TankPoints.lua:244\n IntToStr = <function> defined @Interface\\AddOns\\TankPoints\\TankPoints.lua:1937\n RegisterMessage = <function> defined @Interface\\AddOns\\AddonLoader\\CallbackHandler-1.0\\CallbackHandler-1.0.lua:118\n GetArgs = <function> defined @Interface\\AddOns\\Ace3\\AceConsole-3.0\\AceConsole-3.0.lua:144\n SetupOptions = <function> defined @Interface\\AddOns\\TankPoints\\options.lua:389\n VarAsString = <function> defined @Interface\\AddOns\\TankPoints\\TankPoints.lua:339\n playerLevel = 85\n SetDebugLevel = <function> defined @Interface\\Ad", -- [2]
				"dOns\\TankPoints\\AceDebug-3.0\\AceDebug-3.0.lua:151\n optionsFrames = <table> {\n }\n playerRace = \"Human\"\n db = <table> {\n }\n playerClass = \"PALADIN\"\n UNIT_AURA = <function> defined @Interface\\AddOns\\TankPoints\\TankPoints.lua:506\n IsScheduled = <function> defined @Interface\\AddOns\\TankPoints\\TankPoints.lua:271\n SetEnabledState = <function> defined @Interface\\AddOns\\Ace3\\AceAddon-3.0\\AceAddon-3.0.lua:440\n sourceTable = <table> {\n }\n enabledState = true\n GetTankPoints = <function> defined @Interface\\AddOns\\TankPoints\\TankPoints.lua:1857\n RegisterEvent = <function> defined @Interface\\AddOns\\AddonLoader\\CallbackHandler-1.0\\CallbackHandler-1.0.lua:118\n UpdateDataTable = <function> defined @Interface\\AddOns\\TankPoints\\TankPoints.lua:488\n UNIT_INVENTORY_CHANGED = <function> defined @Interface\\AddOns\\TankPoints\\TankPoints.lua:506\n EffectiveHealth_EffectiveHealthWithBlockTooltip = <function> defined @Interface\\AddOns\\TankPoints\\TankPointsPaperDollStats.lua:1085\n OnEnable = <func", -- [3]
				"tion> defined @Interface\\AddOns\\TankPoints\\TankPoints.lua:446\n IterateModules = <function> defined @Interface\\AddOns\\Ace3\\AceAddon-3.0\\AceAddon-3.0.lua:453\n ScheduleRepeat = <function> defined @Interface\\AddOns\\TankPoints\\TankPoints.lua:254\n AlterSourceData = <function> defined @Interface\\AddOns\\TankPoints\\TankPoints.lua:1116\n BlockValueFrame_OnEnter = <function> defined @Interface\\AddOns\\TankPoints\\TankPointsPaperDollStats.lua:692\n EffectiveHealth_SpellEffectiveHealthTooltip = <function> defined @Interface\\AddOns\\TankPoints\\TankPointsPaperDollStats.lua:1183\n UpdateLDBDataObjects = <function> defined @Interface\\AddOns\\TankPoints\\TankPointsLibDataBroker.lua:137\n EffectiveHealth_EffectiveHealthTooltip = <function> defined @Interface\\AddOns\\TankPoints\\TankPointsPaperDollStats.lua:1011\n Printf = <function> defined @Interface\\AddOns\\Ace3\\AceConsole-3.0\\AceConsole-3.0.lua:69\n LevelDebug = <function> defined @Interface\\AddOns\\TankPoints\\AceDebug-3.0\\AceDebug-3.0.lua:237\n G", -- [4]
				"etBlockedMod = <function> defined @Interface\\AddOns\\TankPoints\\TankPoints.lua:1533\n UnSchedule = <function> defined @Interface\\AddOns\\TankPoints\\TankPoints.lua:265\n date = \"20", -- [5]
			},
			["session"] = 5868,
			["counter"] = 3,
		}, -- [998]

For 2.:

["message"] = "TankPoints-2.9.0 (r165a)\\TankPointsLibDataBroker.lua:92: attempt to index upvalue 'Toolkit' (a nil value)\nStatBlockCore-2.70\\StatBlockCore.lua:610: in function <Interface\\AddOns\\StatBlockCore\\StatBlockCore.lua:602>\n",
			["type"] = "error",
			["locals"] = "frame = StatBlockCore_TankPoints {\n 0 = <userdata>\n pluginName = \"TankPoints\"\n pluginObject = <table> {\n }\n}\nname = \"TankPoints\"\nobj = <table> {\n}\ndb = <table> {\n outline = \"NONE\"\n globalBDC = <table> {\n }\n globalScale = 1.01\n globalFont = \"Friz Quadrata TT\"\n iconPos = \"LEFT\"\n globalLock = false\n shadow = true\n globalColor = <table> {\n }\n globalAlpha = 1\n globalShownAlpha = 1\n launchers = true\n plugins = <table> {\n }\n globalHiddenAlpha = 1\n globalLabelColor = <table> {\n }\n globalSize = 20\n}\nGetTipAnchor = <function> defined @Interface\\AddOns\\StatBlockCore\\StatBlockCore.lua:533\n",
			["session"] = 5868,
			["counter"] = 2,
		}, -- [999]

For 3.:

["message"] = "TankPoints-2.9.0 (r165a)\\TankPointsLibDataBroker.lua:146: attempt to index upvalue 'Toolkit' (a nil value)\nTankPoints-2.9.0 (r165a)\\TankPoints.lua:483: in function `UpdateStats'\nTankPoints-2.9.0 (r165a)\\TankPoints.lua:2033: in function `ToggleCalculator'\nTankPoints-2.9.0 (r165a)\\TankPointsLibDataBroker.lua:25: in function `OnClick'\nStatBlockCore-2.70\\StatBlockCore.lua:598: in function <Interface\\AddOns\\StatBlockCore\\StatBlockCore.lua:596>\n",
			["type"] = "error",
			["locals"] = {
				"self = <table> {\n SetDefaultModuleLibraries = <function> defined @Interface\\AddOns\\Ace3\\AceAddon-3.0\\AceAddon-3.0.lua:383\n SetDebugging = <function> defined @Interface\\AddOns\\TankPoints\\AceDebug-3.0\\AceDebug-3.0.lua:132\n ShieldIsEquipped = <function> defined @Interface\\AddOns\\TankPoints\\TankPoints.lua:580\n SetShowPerStat = <function> defined @Interface\\AddOns\\TankPoints\\TankPoints.lua:465\n EnableModule = <function> defined @Interface\\AddOns\\Ace3\\AceAddon-3.0\\AceAddon-3.0.lua:348\n modules = <table> {\n }\n baseName = \"TankPoints\"\n IterateEmbeds = <function> defined @Interface\\AddOns\\Ace3\\AceAddon-3.0\\AceAddon-3.0.lua:458\n noTPReason = \"should have TankPoints\"\n ShowPerStat = <function> defined @Interface\\AddOns\\TankPoints\\TankPoints.lua:462\n TankPointsCalculatorStat_OnEnter = <function> defined @Interface\\AddOns\\TankPoints\\TankPointsPaperDollStats.lua:209\n ResistableElementalSchools = <table> {\n }\n GetDebugPrefix = <function> defined @Interface\\AddOns\\TankPoints\\AceDebu", -- [1]
				"g-3.0\\AceDebug-3.0.lua:192\n resultsTable = <table> {\n }\n defaultModuleState = true\n GetSourceData = <function> defined @Interface\\AddOns\\TankPoints\\TankPoints.lua:978\n IsEnabled = <function> defined @Interface\\AddOns\\Ace3\\AceAddon-3.0\\AceAddon-3.0.lua:467\n ElementalSchools = <table> {\n }\n CustomDebug = <function> defined @Interface\\AddOns\\TankPoints\\AceDebug-3.0\\AceDebug-3.0.lua:90\n Schedule = <function> defined @Interface\\AddOns\\TankPoints\\TankPoints.lua:244\n IntToStr = <function> defined @Interface\\AddOns\\TankPoints\\TankPoints.lua:1937\n RegisterMessage = <function> defined @Interface\\AddOns\\AddonLoader\\CallbackHandler-1.0\\CallbackHandler-1.0.lua:118\n GetArgs = <function> defined @Interface\\AddOns\\Ace3\\AceConsole-3.0\\AceConsole-3.0.lua:144\n SetupOptions = <function> defined @Interface\\AddOns\\TankPoints\\options.lua:389\n VarAsString = <function> defined @Interface\\AddOns\\TankPoints\\TankPoints.lua:339\n playerLevel = 85\n SetDebugLevel = <function> defined @Interface\\Ad", -- [2]
				"dOns\\TankPoints\\AceDebug-3.0\\AceDebug-3.0.lua:151\n optionsFrames = <table> {\n }\n playerRace = \"Human\"\n db = <table> {\n }\n playerClass = \"PALADIN\"\n UNIT_AURA = <function> defined @Interface\\AddOns\\TankPoints\\TankPoints.lua:506\n IsScheduled = <function> defined @Interface\\AddOns\\TankPoints\\TankPoints.lua:271\n SetEnabledState = <function> defined @Interface\\AddOns\\Ace3\\AceAddon-3.0\\AceAddon-3.0.lua:440\n sourceTable = <table> {\n }\n enabledState = true\n GetTankPoints = <function> defined @Interface\\AddOns\\TankPoints\\TankPoints.lua:1857\n RegisterEvent = <function> defined @Interface\\AddOns\\AddonLoader\\CallbackHandler-1.0\\CallbackHandler-1.0.lua:118\n UpdateDataTable = <function> defined @Interface\\AddOns\\TankPoints\\TankPoints.lua:488\n UNIT_INVENTORY_CHANGED = <function> defined @Interface\\AddOns\\TankPoints\\TankPoints.lua:506\n EffectiveHealth_EffectiveHealthWithBlockTooltip = <function> defined @Interface\\AddOns\\TankPoints\\TankPointsPaperDollStats.lua:1085\n OnEnable = <func", -- [3]
				"tion> defined @Interface\\AddOns\\TankPoints\\TankPoints.lua:446\n IterateModules = <function> defined @Interface\\AddOns\\Ace3\\AceAddon-3.0\\AceAddon-3.0.lua:453\n ScheduleRepeat = <function> defined @Interface\\AddOns\\TankPoints\\TankPoints.lua:254\n AlterSourceData = <function> defined @Interface\\AddOns\\TankPoints\\TankPoints.lua:1116\n BlockValueFrame_OnEnter = <function> defined @Interface\\AddOns\\TankPoints\\TankPointsPaperDollStats.lua:692\n EffectiveHealth_SpellEffectiveHealthTooltip = <function> defined @Interface\\AddOns\\TankPoints\\TankPointsPaperDollStats.lua:1183\n UpdateLDBDataObjects = <function> defined @Interface\\AddOns\\TankPoints\\TankPointsLibDataBroker.lua:137\n EffectiveHealth_EffectiveHealthTooltip = <function> defined @Interface\\AddOns\\TankPoints\\TankPointsPaperDollStats.lua:1011\n Printf = <function> defined @Interface\\AddOns\\Ace3\\AceConsole-3.0\\AceConsole-3.0.lua:69\n LevelDebug = <function> defined @Interface\\AddOns\\TankPoints\\AceDebug-3.0\\AceDebug-3.0.lua:237\n G", -- [4]
				"etBlockedMod = <function> defined @Interface\\AddOns\\TankPoints\\TankPoints.lua:1533\n UnSchedule = <function> defined @Interface\\AddOns\\TankPoints\\TankPoints.lua:265\n date = \"20", -- [5]
			},
			["session"] = 5868,
			["counter"] = 1,
		}, -- [1000]
	},

Please provide any additional information below.

After encountering the bugouts, tried again with no saved variables from prior versions. No change, the identical errors reoccurred.

Then went and embedded LibDataBroker-1.1 in the TankPoints \libs directory (and got it to load from the TOC). Because despite the fact that earlier loading LDB mods were present, some mods (improperly) bugout when libs they need are not loaded by themselves. LDB-1.1 should be embedded in any case; its not designed to be disembedded. Again no change, the identical errors reoccurred.

User When Change
Zidomo Jan 30, 2012 at 12:49 UTC Create

You must login to post a comment. Don't have an account? Register to get one!

  • 3 comments
  • Avatar of JackTripper JackTripper Feb 02, 2012 at 02:19 UTC - 0 likes

    i agree with having my code private. But there's no way to have a class that is private to an addon.

    That's why LDB and Toolkit objects are libraries.

    Last edited Feb 02, 2012 by JackTripper
  • Avatar of Zidomo Zidomo Feb 01, 2012 at 13:00 UTC - 0 likes

    Yes, its fixed in r167.

    I'm not the biggest fan of libraries that aren't used by other mods except one or two of the author's own. Why not just integrate the code into each mod? Also not a fan of libraries that are embedded in a mod's own root directory instead of subdirectories. So didn't pay attention to the missing Toolkit-1.0.lua when deleting & upgrading.

    For sure, I'm not complaining; if that lib makes things easier for you on the two mods you are bringing back from the dead, more power to it :). Suggest moving it to a subdirectory though.

    Also suggest hard-embedding LibDataBroker-1.1 as suggested on the description page. If a mod can take advantage of a third party library, it should be included with it. Anyway, continued nice work.

    Last edited Feb 01, 2012 by Zidomo
  • Avatar of JackTripper JackTripper Jan 31, 2012 at 01:44 UTC - 0 likes

    Fixed

    The error

    attempt to index 'Toolkit' (a nil value)

    is everywhere. That's because i forgot to include it in TankPoints version. Since it's also in HealPoints, i (and my other testers) already have it.

    Checked in to SVN

  • 3 comments

Facts

Reported
Jan 30, 2012
Status
New - Issue has not had initial review yet.
Type
Defect - A shortcoming, fault, or imperfection
Priority
Medium - Normal priority.
Votes
0

Reported by

Possible assignees