Bug Report T316550
Visible to All Users

DockLayoutManager.RestoreLayoutFromStream runs into an endless loop

created 9 years ago

Hello support team,

we have an issue using the DockLayoutManager.RestoreLayoutFromStream() feature. Our programs load the layout on startup and save layout when program closes. A customer was able to break this load process by docking the panels in the window. After closing the program this layout was saved. Now he starts the program and it tries to restore the saved layout. This runs into an endless loop in DevExpress.Xpf.Docking.DockLayoutManagerExtension.GetManager(). I've attached a sample project to demonstrate this strange behavior.

Some notes to the code: We use a derived class of DockLayoutManager which uses derived classes from LayoutPanel and TabbedGroup in restore process. Main.Window.xaml.cs contains the basic logic of loading and saving the layout to a file. Before layout loads, we add several LayoutPanels containing plugin controls. I simulated this plugin load in LoadPlugins() method, by simply adding some LayoutPanels. The customers layout file is attached to the project (LoadLayoutLoop.xml). We save/load the xml code as it comes from your serializer, no modifications done by our programs. Any suggestions to prevent this endless loop would be appreciated. Simply deleting this broken layout file is maybe a workaround, but is actually no option for us.

Thanks in advance
Steffen

Comments (1)
DevExpress Support Team 9 years ago

    Hi Steffen,
    I have successfully reproduced the issue and passed this ticket to our developers for further research. Please stay tuned. We will notify you as soon as we make any progress.

    Answers approved by DevExpress Support

    created 9 years ago (modified 9 years ago)

    We have fixed the issue described in this ticket and will include the fix in our next maintenance update. To apply this solution before the official update, request a hotfix by clicking the corresponding link for product versions you require.

    Note: Hotfixes may be unavailable for beta versions and updates that are about to be released.

      Disclaimer: The information provided on DevExpress.com and affiliated web properties (including the DevExpress Support Center) is provided "as is" without warranty of any kind. Developer Express Inc disclaims all warranties, either express or implied, including the warranties of merchantability and fitness for a particular purpose. Please refer to the DevExpress.com Website Terms of Use for more information in this regard.

      Confidential Information: Developer Express Inc does not wish to receive, will not act to procure, nor will it solicit, confidential or proprietary materials and information from you through the DevExpress Support Center or its web properties. Any and all materials or information divulged during chats, email communications, online discussions, Support Center tickets, or made available to Developer Express Inc in any manner will be deemed NOT to be confidential by Developer Express Inc. Please refer to the DevExpress.com Website Terms of Use for more information in this regard.