Community
Showing results for 
Search instead for 
Do you mean 
Reply

Framework Error on exiting Act! with v17.2 HF1b installed

Silver Super Contributor
Posts: 2,328
Country: USA

Framework Error on exiting Act! with v17.2 HF1b installed

Bob Breeding and I figured out one thing that might be causing the framework error on exit with the new Act! v17.2 HF1b hotfix.  When Act! exits now it fires the UIClosing event two times.  Most of us addon writers have cleanup routines that execute when the UIClosing event is fired.  For example my routine will remove a button that I have added and remove a menu that I have added.  When the UIClosing event fires for the second time my routine tries to remove the button and the menu again and when it does it gets an "Object not set to an instance of an object" error message because the button and menu item are already gone.  Technically it hits the remove button routine before it attempts the remove menu routine and fails when attempting to remove the button for the second time.  It is relatively easy to change my code to resolve this issue but the UIClosing event shouldn't be firing twice when Act! closes.  I gave Bob a plugin that will demonstrate the problem and they are going to work on getting either a new hotfix or updating the current hotfix.  Either Bob or I will update this thread when that issue is resolved.


Stan


If you would like to get more out of ACT! you can find an ACT! Certified Consultant near you by going to:www.act.com/acc.
-------------------------------------------------------------------------------------
Stan Smith
ACT! Certified Consultant
ADS Programming Services, Inc.
(205) 222-1661
www.adsprogramming.com
www.actwebhosting.com
Click Here to Purchase Act!
Bronze Super Contributor
Posts: 1,231
Country: USA

Re: Framework Error on exiting Act! with v17.2 HF1b installed

To be more specific I found the error occurs in the New Act.UI.Core.CommandBarButton function. While in the process of shutting down ACTAPP.Explorer is not null but asking for a new CommandBarButton throws an error.

My code below was originally throwing the error back up to but since the UI ( ACT and/or IMPACT ) is null the error goes all the way through ACT causing it to crash.

The fix was to handle the error rather then throwing it. ( as seen in the Catch below)

 

 

    Public Shared Sub AddMenuItem(ByVal urn As String, ByVal MenuText As String, ByVal Handler As Act.UI.CommandHandler, ByVal ACTAPP As Act.UI.ActApplication)

        Try
            '-----------------------------------------------------
            ' Check if the connected menus exists
            '-----------------------------------------------------
            If ACTAPP.Explorer.CommandBarCollection("Connected Menus") Is Nothing Then
                Return
            End If

            If (MenuItemExists(urn, ACTAPP) = True) Then
                RemoveMenuItem(urn, ACTAPP)
            End If
            Dim ParentMenu As Act.UI.Core.CommandBarControl
            ParentMenu = CType(ACTAPP.Explorer.CommandBarCollection("Connected Menus").ControlCollection(GetParentControlURN(urn)), Act.UI.Core.CommandBarControl)
            Dim NewMenu As Act.UI.Core.CommandBarButton
            NewMenu = New Act.UI.Core.CommandBarButton(MenuText, MenuText, Nothing, urn, Nothing, Nothing)
            NewMenu.DisplayStyle = Act.UI.Core.CommandBarControl.ItemDisplayStyle.TextOnly
            ACTAPP.RegisterCommand(urn, Handler, Act.UI.RegisterType.Shell)

            If ParentMenu.SubItems.Length = 0 Then
                ParentMenu.AddSubItem(NewMenu, 0)
            Else
                ParentMenu.AddSubItem(NewMenu, 1)
            End If


        Catch ex As Exception
            ' 7.0.0.0
            ' We catch the error rather the THROW
            ' since this could be raised on ACT shutdown
            ' Causing ACT to crash while its shutting down
            LogError.Write(ex, "ACTAPPFunctions:AddMenuItem")
           ' Throw New Exception("ACTAPPFunctions:AddMenuItem", ex)
        End Try


    End Sub

Hope this also helps

-- Jim Durkin

Silver Super Contributor
Posts: 2,328
Country: USA

Re: Framework Error on exiting Act! with v17.2 HF1b installed

I think that may be a different issue that the one that was causing my error.  In your case it can't add the button because the actapp.explorer is mostly still there but is incapable of adding a button because something is missing.  In my case the button was already gone and trying to remove it again caused the error.  In my case it was probably poor coding because I made the assumption that the button was there and that the UIClosing event would only occur once.  In my later code I check to see if the button exists before I attempt to remove it.  There are all sorts of errors that could occur as a result of the UIClosing event firing twice because parts of Act! manage to shut down before the event fires for the second time.  I'm not surprised that your code would fail as well but to tell the truth the UIClosing event handler seems like an odd time to be adding menu entries and buttons though!  ;-)

 

Stan

 


If you would like to get more out of ACT! you can find an ACT! Certified Consultant near you by going to:www.act.com/acc.
-------------------------------------------------------------------------------------
Stan Smith
ACT! Certified Consultant
ADS Programming Services, Inc.
(205) 222-1661
www.adsprogramming.com
www.actwebhosting.com
Click Here to Purchase Act!
Bronze Super Contributor
Posts: 1,231
Country: USA

Re: Framework Error on exiting Act! with v17.2 HF1b installed

More then likely the error was thrown in RemoveMenuItem method not Add. I just changed ALL the methods which touch the ACTAPP.Explorer object. ADD being the same Try... Catch as REMOVE.

 

 

-- Jim Durkin

 

Silver Super Contributor
Posts: 2,328
Country: USA

Re: Framework Error on exiting Act! with v17.2 HF1b installed

Just messing with you Jim.  The real issue is if they hadn't pulled the hotfix all of our customers who upgraded to the new hotfix would suddenly have their programs not shutting down properly.  Which also might mean that Act! would be running in the background and consequently they wouldn't be able to restart Act! unless they terminated it manually or rebooted the system.

 

Stan


If you would like to get more out of ACT! you can find an ACT! Certified Consultant near you by going to:www.act.com/acc.
-------------------------------------------------------------------------------------
Stan Smith
ACT! Certified Consultant
ADS Programming Services, Inc.
(205) 222-1661
www.adsprogramming.com
www.actwebhosting.com
Click Here to Purchase Act!