{"action":"created","issue":{"url":"https://api.github.com/repos/JMRI/JMRI/issues/3999","repository_url":"https://api.github.com/repos/JMRI/JMRI","labels_url":"https://api.github.com/repos/JMRI/JMRI/issues/3999/labels{/name}","comments_url":"https://api.github.com/repos/JMRI/JMRI/issues/3999/comments","events_url":"https://api.github.com/repos/JMRI/JMRI/issues/3999/events","html_url":"https://github.com/JMRI/JMRI/issues/3999","id":253142242,"number":3999,"title":"Loop in startup","user":{"login":"bobjacobsen","id":2774117,"avatar_url":"https://avatars1.githubusercontent.com/u/2774117?v=4","gravatar_id":"","url":"https://api.github.com/users/bobjacobsen","html_url":"https://github.com/bobjacobsen","followers_url":"https://api.github.com/users/bobjacobsen/followers","following_url":"https://api.github.com/users/bobjacobsen/following{/other_user}","gists_url":"https://api.github.com/users/bobjacobsen/gists{/gist_id}","starred_url":"https://api.github.com/users/bobjacobsen/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bobjacobsen/subscriptions","organizations_url":"https://api.github.com/users/bobjacobsen/orgs","repos_url":"https://api.github.com/users/bobjacobsen/repos","events_url":"https://api.github.com/users/bobjacobsen/events{/privacy}","received_events_url":"https://api.github.com/users/bobjacobsen/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":1,"created_at":"2017-08-27T05:26:59Z","updated_at":"2017-08-27T05:35:48Z","closed_at":null,"body":"The long-running \"jumping window\" jmriusers thread is actually about something else:  The startup configuration process goes into a loop of self-creation, and ends up dropping out at some random point when it finally hits an exception.\r\n\r\nTo recreate, unzip the attached and put the resulting directory into your preferences directory where it will appear as a new 'LocoNet_Simulator_Empty` profile. Start up using that.\r\n\r\nOn my Mac, after _minutes_ with the fan running, this throws an exception.  In the meantime it's been in a loop doing \r\n```\r\n     [java] \tat jmri.configurexml.ConfigXmlManager.load(ConfigXmlManager.java:610)\r\n     [java] \tat jmri.implementation.JmriConfigurationManager.load(JmriConfigurationManager.java:230)\r\n     [java] \tat jmri.implementation.JmriConfigurationManager.load(JmriConfigurationManager.java:170)\r\n     [java] \tat jmri.managers.JmriUserPreferencesManager.readUserPreferences(JmriUserPreferencesManager.java:957)\r\n     [java] \tat jmri.managers.JmriUserPreferencesManager$Initializer.getDefault(JmriUserPreferencesManager.java:1453)\r\n     [java] \tat jmri.InstanceManager.getNullableDefault(InstanceManager.java:236)\r\n     [java] \tat jmri.InstanceManager.getDefault(InstanceManager.java:183)\r\n     [java] \tat jmri.managers.configurexml.DefaultUserMessagePreferencesXml.load(DefaultUserMessagePreferencesXml.java:227)\r\n     [java] \tat jmri.configurexml.ConfigXmlManager.loadOnSwingThread(ConfigXmlManager.java:705)\r\n     [java] \tat jmri.configurexml.ConfigXmlManager.load(ConfigXmlManager.java:610)\r\n     [java] \tat jmri.implementation.JmriConfigurationManager.load(JmriConfigurationManager.java:230)\r\n     [java] \tat jmri.implementation.JmriConfigurationManager.load(JmriConfigurationManager.java:170)\r\n     [java] \tat jmri.managers.JmriUserPreferencesManager.readUserPreferences(JmriUserPreferencesManager.java:957)\r\n     [java] \tat jmri.managers.JmriUserPreferencesManager$Initializer.getDefault(JmriUserPreferencesManager.java:1453)\r\n     [java] \tat jmri.InstanceManager.getNullableDefault(InstanceManager.java:236)\r\n     [java] \tat jmri.InstanceManager.getDefault(InstanceManager.java:183)\r\n     [java] \tat jmri.managers.configurexml.DefaultUserMessagePreferencesXml.load(DefaultUserMessagePreferencesXml.java:227)\r\n     [java] \tat jmri.configurexml.ConfigXmlManager.loadOnSwingThread(ConfigXmlManager.java:705)\r\n     [java] \tat jmri.configurexml.ConfigXmlManager.load(ConfigXmlManager.java:610)\r\n     [java] \tat jmri.implementation.JmriConfigurationManager.load(JmriConfigurationManager.java:230)\r\n     [java] \tat jmri.implementation.JmriConfigurationManager.load(JmriConfigurationManager.java:170)\r\n     [java] \tat jmri.managers.JmriUserPreferencesManager.readUserPreferences(JmriUserPreferencesManager.java:957)\r\n     [java] \tat jmri.managers.JmriUserPreferencesManager$Initializer.getDefault(JmriUserPreferencesManager.java:1453)\r\n     [java] \tat jmri.InstanceManager.getNullableDefault(InstanceManager.java:236)\r\n     [java] \tat jmri.InstanceManager.getDefault(InstanceManager.java:183)\r\n     [java] \tat jmri.managers.configurexml.DefaultUserMessagePreferencesXml.load(DefaultUserMessagePreferencesXml.java:227)\r\n     [java] \tat jmri.configurexml.ConfigXmlManager.loadOnSwingThread(ConfigXmlManager.java:705)\r\n     [java] \tat jmri.configurexml.ConfigXmlManager.load(ConfigXmlManager.java:610)\r\n```\r\n\r\nover and over."},"comment":{"url":"https://api.github.com/repos/JMRI/JMRI/issues/comments/325178286","html_url":"https://github.com/JMRI/JMRI/issues/3999#issuecomment-325178286","issue_url":"https://api.github.com/repos/JMRI/JMRI/issues/3999","id":325178286,"user":{"login":"bobjacobsen","id":2774117,"avatar_url":"https://avatars1.githubusercontent.com/u/2774117?v=4","gravatar_id":"","url":"https://api.github.com/users/bobjacobsen","html_url":"https://github.com/bobjacobsen","followers_url":"https://api.github.com/users/bobjacobsen/followers","following_url":"https://api.github.com/users/bobjacobsen/following{/other_user}","gists_url":"https://api.github.com/users/bobjacobsen/gists{/gist_id}","starred_url":"https://api.github.com/users/bobjacobsen/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bobjacobsen/subscriptions","organizations_url":"https://api.github.com/users/bobjacobsen/orgs","repos_url":"https://api.github.com/users/bobjacobsen/repos","events_url":"https://api.github.com/users/bobjacobsen/events{/privacy}","received_events_url":"https://api.github.com/users/bobjacobsen/received_events","type":"User","site_admin":false},"created_at":"2017-08-27T05:35:48Z","updated_at":"2017-08-27T05:35:48Z","body":"This may be a case where asking for a default object -> automatic creation -> automatic loading is a step too far.  The problem is, starting three lines from the bottom of the trace above:  \r\n- managers.configurexml.DefaultUserMessagePreferencesXml, as part of loading, checks that InstanceManager has a UserPreferencesManager exists (DefaultUserMessagePreferencesXml.java:227) and wants to call `setLoading()` on it\r\n- but that triggers a creation operation via the InstanceManager\r\n- which triggers a call to managers.JmriUserPreferencesManager.readUserPreferences(JmriUserPreferencesManager.java:957)\r\n- which invokes a load operation\r\n- which eventually repeats the whole thing\r\n"}}
{"actor":{"display_login":"bobjacobsen"}}