{"action":"created","issue":{"url":"https://api.github.com/repos/MightyPirates/OpenComputers/issues/1094","labels_url":"https://api.github.com/repos/MightyPirates/OpenComputers/issues/1094/labels{/name}","comments_url":"https://api.github.com/repos/MightyPirates/OpenComputers/issues/1094/comments","events_url":"https://api.github.com/repos/MightyPirates/OpenComputers/issues/1094/events","html_url":"https://github.com/MightyPirates/OpenComputers/issues/1094","id":69578912,"number":1094,"title":"Error found with FilteredEnvironment","user":{"login":"Vexatos","id":4135064,"avatar_url":"https://avatars.githubusercontent.com/u/4135064?v=3","gravatar_id":"","url":"https://api.github.com/users/Vexatos","html_url":"https://github.com/Vexatos","followers_url":"https://api.github.com/users/Vexatos/followers","following_url":"https://api.github.com/users/Vexatos/following{/other_user}","gists_url":"https://api.github.com/users/Vexatos/gists{/gist_id}","starred_url":"https://api.github.com/users/Vexatos/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Vexatos/subscriptions","organizations_url":"https://api.github.com/users/Vexatos/orgs","repos_url":"https://api.github.com/users/Vexatos/repos","events_url":"https://api.github.com/users/Vexatos/events{/privacy}","received_events_url":"https://api.github.com/users/Vexatos/received_events","type":"User","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":null,"milestone":null,"comments":1,"created_at":"2015-04-20T12:44:46Z","updated_at":"2015-04-21T11:20:38Z","closed_at":"2015-04-21T11:20:38Z","body":"I have made a FilteredEnvironment for a Driver that removes a certain Callback function depending on a config option which can be changed in the in-game config GUI. If the config option is turned off and you load the world, place an adapter next to the block the environment is made for and open the Lua interpreter, `=component.theBlock.theMethod` properly returns \"nil\" as the method doesn't exist (It does have documentation so it would print something otherwise). When you now close the world (but not the game!), change the config option in the ingame config GUI and re-load the world, `=component.theBlock.theMethod` prints an error, something about \"key not found\" pointing to kernel, and crashes the Lua interpreter (i.e. makes you return to the shell). This will continue to happen until you break and replace the adapter block adjacent to the block the driver is on because then it re-loads the callback list properly. After the Adapter has been replaced, `=component.theBlock.theMethod` properly returns the component documentation."},"comment":{"url":"https://api.github.com/repos/MightyPirates/OpenComputers/issues/comments/94752028","html_url":"https://github.com/MightyPirates/OpenComputers/issues/1094#issuecomment-94752028","issue_url":"https://api.github.com/repos/MightyPirates/OpenComputers/issues/1094","id":94752028,"user":{"login":"fnuecke","id":514903,"avatar_url":"https://avatars.githubusercontent.com/u/514903?v=3","gravatar_id":"","url":"https://api.github.com/users/fnuecke","html_url":"https://github.com/fnuecke","followers_url":"https://api.github.com/users/fnuecke/followers","following_url":"https://api.github.com/users/fnuecke/following{/other_user}","gists_url":"https://api.github.com/users/fnuecke/gists{/gist_id}","starred_url":"https://api.github.com/users/fnuecke/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fnuecke/subscriptions","organizations_url":"https://api.github.com/users/fnuecke/orgs","repos_url":"https://api.github.com/users/fnuecke/repos","events_url":"https://api.github.com/users/fnuecke/events{/privacy}","received_events_url":"https://api.github.com/users/fnuecke/received_events","type":"User","site_admin":false},"created_at":"2015-04-21T11:20:38Z","updated_at":"2015-04-21T11:20:38Z","body":"ce552ff99de94b84e93da84007c0aad2e36bcbd1 should fix the error. The method will still be nil, though, because the Lua side caches the proxies (for very much noticeable performance), and there's no easy way to invalidate proxies, so a reboot of the ingame computer will still be required.\r\nYou could work around this by disconnecting the component, recreate and reconnecting it, if you really have to."}}