StrataFrame Forum
Home      Members   Calendar   Who's On
Welcome Guest ( Login | Register )
      


««123»»

Problem after upgrade to 1.6.1Expand / Collapse
Author
Message
Posted 01/23/2008 9:47:04 AM


StrataFrame Developer

StrataFrame Developer

Group: StrataFrame Developers
Last Login: Today @ 3:06:58 PM
Posts: 4,599, Visits: 4,576
Chan,

There is no reason that we could not publish this code.  I need to get it ready on this side and try to have it posted by tomorrow.

Post #13681
Posted 01/23/2008 11:34:33 AM


StrataFrame Developer

StrataFrame Developer

Group: StrataFrame Developers
Last Login: Today @ 3:06:58 PM
Posts: 4,599, Visits: 4,576
OK...if you login to the My Account area, you should be able to see the Source Code Setup for the 1.6.5 beta.  This way you can be running on the beta and still get the source code.
Post #13686
Posted 01/24/2008 10:15:51 AM
StrataFrame User

StrataFrame UserStrataFrame UserStrataFrame UserStrataFrame UserStrataFrame UserStrataFrame UserStrataFrame UserStrataFrame User

Group: StrataFrame Users
Last Login: Today @ 7:18:50 AM
Posts: 433, Visits: 1,626
Hi,
Thank you for source code.

I have recompile SF and run my program and able to reproduce my problem again. Below is the call stack, please advice:

>SaleBusinessObject.dll!JK.Inventory.Sale.BusinessObject.SaleDetailsBO.SubTotal.get() Line 463 + 0x34 bytesC#
SaleBusinessObject.dll!JK.Inventory.Sale.BusinessObject.SaleDetailsBO.Field_SubTotal_Descriptor.GetValue(object component = {JK.Inventory.Sale.BusinessObject.SaleDetailsBO}) Line 1056 + 0x2c bytesC#
[External Code]
MicroFour StrataFrame Business.dll!MicroFour.StrataFrame.Business.BusinessBindingSource.OnListChanged(System.ComponentModel.ListChangedEventArgs e = {System.ComponentModel.ListChangedEventArgs}) Line 123 + 0x1b bytesBasic
MicroFour StrataFrame Business.dll!MicroFour.StrataFrame.Business.BusinessBindingSource.BusinessObject_IsDirtyChanged(Object sender = {JK.Inventory.Sale.BusinessObject.SaleDetailsBO}, System.EventArgs e = {System.EventArgs}) Line 705 + 0x21 bytesBasic
MicroFour StrataFrame Business.dll!MicroFour.StrataFrame.Business.BusinessLayer.raise_IsDirtyChanged(Object sender = {JK.Inventory.Sale.BusinessObject.SaleDetailsBO}, System.EventArgs e = {System.EventArgs}) Line 1071 + 0x21 bytesBasic
MicroFour StrataFrame Business.dll!MicroFour.StrataFrame.Business.BusinessLayer.OnIsDirtyChanged(Boolean DirtyShouldBe = True) Line 1086 + 0x12 bytesBasic
MicroFour StrataFrame Business.dll!MicroFour.StrataFrame.Business.BusinessLayer.CurrentView_ListChanged(Object sender = {System.Data.DataView}, System.ComponentModel.ListChangedEventArgs e = {System.ComponentModel.ListChangedEventArgs}) Line 2431 + 0x10 bytesBasic
[External Code]
MicroFour StrataFrame Business.dll!MicroFour.StrataFrame.Business.BusinessLayer.NewRow() Line 6312 + 0x23 bytesBasic
MicroFour StrataFrame Business.dll!MicroFour.StrataFrame.Business.BusinessLayer.Add(Boolean CheckSecurity = True) Line 7610 + 0xa bytesBasic
MicroFour StrataFrame Business.dll!MicroFour.StrataFrame.Business.BusinessLayer.Add() Line 7580 + 0xe bytesBasic
POSApplication.exe!JK.POS.UI.Windows.Forms.POSForm.AddSale() Line 94 + 0xe bytesC#
POSApplication.exe!JK.POS.UI.Windows.Forms.POSForm.cmdNew_ItemClick(object sender = {DevExpress.XtraBars.Ribbon.RibbonBarManager}, DevExpress.XtraBars.ItemClickEventArgs e = {DevExpress.XtraBars.ItemClickEventArgs}) Line 88 + 0x7 bytesC#
[External Code]
MicroFour StrataFrame UI.dll!MicroFour.StrataFrame.Application.StrataFrameApplication.RunApplication() Line 220 + 0x8 bytesBasic
POSApplication.exe!JK.POS.Application.AppMain.Main() Line 40 + 0x6 bytesC#
[External Code]


Below is the code at AddSale()

private void AddSale()
{
this.Add();
saleDetailsBO.Add();
}


Thank you
Post #13711
Posted 01/24/2008 10:31:34 AM
StrataFrame User

StrataFrame UserStrataFrame UserStrataFrame UserStrataFrame UserStrataFrame UserStrataFrame UserStrataFrame UserStrataFrame User

Group: StrataFrame Users
Last Login: Today @ 7:18:50 AM
Posts: 433, Visits: 1,626
Hi,
Below is another call stack which is NOT using BusinessBindingSource.

>InventoryBusinessObject.dll!JK.Inventory.Product.BusinessObject.ItemsBO.Recalled.get() Line 980 + 0x2e bytesC#
InventoryBusinessObject.dll!JK.Inventory.Product.BusinessObject.ItemsBO.Field_Recalled_Descriptor.GetValue(object component = { [JK.Inventory.Product.BusinessObject.ItemsBO]}) Line 2545 + 0x29 bytesC#
[External Code]
MicroFour StrataFrame Business.dll!MicroFour.StrataFrame.Business.BusinessLayer.AddBinding(System.Windows.Forms.Control ControlToRefresh = {MicroFour.StrataFrame.UI.Windows.Forms.CheckBox}, String PropertyName = "Checked", String FieldName = "Recalled") Line 2087 + 0x17 bytesBasic
MicroFour StrataFrame Business.dll!MicroFour.StrataFrame.Business.BusinessLayer.RefreshControl(MicroFour.StrataFrame.UI.Windows.Forms.IBusinessBindable ControlToRefresh = {MicroFour.StrataFrame.UI.Windows.Forms.CheckBox}, Boolean DataPresent = True) Line 3399 + 0x3f bytesBasic
MicroFour StrataFrame Business.dll!MicroFour.StrataFrame.Business.BusinessLayer.RefreshBoundControls() Line 3291 + 0x11 bytesBasic
MicroFour StrataFrame Business.dll!MicroFour.StrataFrame.Business.BusinessLayer.raise_Navigated(MicroFour.StrataFrame.Business.NavigatedEventArgs e = {MicroFour.StrataFrame.Business.NavigatedEventArgs}) Line 1369 + 0x9 bytesBasic
MicroFour StrataFrame Business.dll!MicroFour.StrataFrame.Business.BusinessLayer.OnNavigated(MicroFour.StrataFrame.Business.NavigatedEventArgs e = {MicroFour.StrataFrame.Business.NavigatedEventArgs}) Line 1384 + 0xc bytesBasic
MicroFour StrataFrame Business.dll!MicroFour.StrataFrame.Business.BusinessLayer.Navigate(MicroFour.StrataFrame.Business.BusinessNavigationDirection Direction = MicroFour.StrataFrame.Business.BusinessNavigationDirection.Absolute, Integer AbsoluteIndex = 0, Object() PrimaryKeyValues = Nothing, Boolean AttemptToCheckRules = True, Boolean IsRefill = False) Line 3205 + 0x10 bytesBasic
MicroFour StrataFrame Business.dll!MicroFour.StrataFrame.Business.BusinessLayer.Navigate(MicroFour.StrataFrame.Business.BusinessNavigationDirection Direction = MicroFour.StrataFrame.Business.BusinessNavigationDirection.Absolute, Integer AbsoluteIndex = 0, Object() PrimaryKeyValues = Nothing) Line 3058 + 0x17 bytesBasic
MicroFour StrataFrame Business.dll!MicroFour.StrataFrame.Business.BusinessLayer.Navigate(MicroFour.StrataFrame.Business.BusinessNavigationDirection Direction = MicroFour.StrataFrame.Business.BusinessNavigationDirection.Absolute, Integer AbsoluteIndex = 0) Line 7108 + 0x11 bytesBasic
MicroFour StrataFrame Business.dll!MicroFour.StrataFrame.Business.BusinessBindingSource.CurrentChanged(Object sender = {System.Windows.Forms.CurrencyManager}, System.EventArgs e = {System.EventArgs}) Line 669 + 0x29 bytesBasic
[External Code]
MicroFour StrataFrame Business.dll!MicroFour.StrataFrame.Business.BusinessBindingSource.OnListChanged(System.ComponentModel.ListChangedEventArgs e = {System.ComponentModel.ListChangedEventArgs}) Line 123 + 0x1b bytesBasic
MicroFour StrataFrame Business.dll!MicroFour.StrataFrame.Business.BusinessBindingSource.BusinessObject_IsDirtyChanged(Object sender = {JK.Inventory.Product.BusinessObject.ItemsBO}, System.EventArgs e = {System.EventArgs}) Line 705 + 0x21 bytesBasic
MicroFour StrataFrame Business.dll!MicroFour.StrataFrame.Business.BusinessLayer.raise_IsDirtyChanged(Object sender = {JK.Inventory.Product.BusinessObject.ItemsBO}, System.EventArgs e = {System.EventArgs}) Line 1071 + 0x21 bytesBasic
MicroFour StrataFrame Business.dll!MicroFour.StrataFrame.Business.BusinessLayer.OnIsDirtyChanged(Boolean DirtyShouldBe = True) Line 1086 + 0x12 bytesBasic
MicroFour StrataFrame Business.dll!MicroFour.StrataFrame.Business.BusinessLayer.CurrentView_ListChanged(Object sender = {System.Data.DataView}, System.ComponentModel.ListChangedEventArgs e = {System.ComponentModel.ListChangedEventArgs}) Line 2431 + 0x10 bytesBasic
[External Code]
MicroFour StrataFrame Business.dll!MicroFour.StrataFrame.Business.BusinessLayer.NewRow() Line 6312 + 0x23 bytesBasic
MicroFour StrataFrame Business.dll!MicroFour.StrataFrame.Business.BusinessLayer.Add(Boolean CheckSecurity = True) Line 7610 + 0xa bytesBasic
MicroFour StrataFrame Business.dll!MicroFour.StrataFrame.UI.Windows.Forms.BaseForm.Add(Boolean CheckSecurity = True) Line 2168 + 0xe bytesBasic
MicroFour StrataFrame UI.dll!MicroFour.StrataFrame.UI.Windows.Forms.MaintenanceFormToolStrip.cmdNew_Click(Object sender = {System.Windows.Forms.ToolStripButton}, System.EventArgs e = {System.EventArgs}) Line 1272 + 0x1a bytesBasic
[External Code]
MicroFour StrataFrame UI.dll!MicroFour.StrataFrame.Application.StrataFrameApplication.RunApplication() Line 220 + 0x8 bytesBasic
InventoryApplication.exe!JK.Inventory.Application.AppMain.Main() Line 45 + 0x6 bytesC#
[External Code]


Thank you
Post #13714
Posted 01/24/2008 10:34:05 AM


StrataFrame User

StrataFrame UserStrataFrame UserStrataFrame UserStrataFrame UserStrataFrame UserStrataFrame UserStrataFrame UserStrataFrame User

Group: StrataFrame Users
Last Login: Today @ 3:34:43 PM
Posts: 447, Visits: 1,769
Is the SubTotal property of the BO returning a null value?  I've had similar stack traces when I ran into that issue.

Bill

Post #13715
Posted 01/24/2008 10:50:34 AM
StrataFrame User

StrataFrame UserStrataFrame UserStrataFrame UserStrataFrame UserStrataFrame UserStrataFrame UserStrataFrame UserStrataFrame User

Group: StrataFrame Users
Last Login: Today @ 7:18:50 AM
Posts: 433, Visits: 1,626
Hi,
Yes, SubTotal property is null when _CurrentDataTable.Rows.Add(loRow) in BusinessLayer.NewRow(). However, I have set AllowNullOnNewRow to false so that it will call InitializeNewRow() to initialize my columns value.

Unfortunely, the error occurred before AllowNullOnNewRow checking.

Any ideas to solve it? Is it a bug? This problem not occured in prior version.

Please advice.

Thank you
Post #13716
Posted 01/24/2008 11:21:10 AM


StrataFrame User

StrataFrame UserStrataFrame UserStrataFrame UserStrataFrame UserStrataFrame UserStrataFrame UserStrataFrame UserStrataFrame User

Group: StrataFrame Users
Last Login: Today @ 3:34:43 PM
Posts: 447, Visits: 1,769
Chan (01/24/2008)

Any ideas to solve it? Is it a bug? This problem not occured in prior version.

Hey Chan,

Not sure if this will help, but I would do one of two things in this situation to start troubleshooting.  The first relates to the Business Object Mapper.  Within it, if the subtotal field is part of you database schema, I would set the field to Return Alternate on Null...perhaps with a 0.  Second, if that does not work, I would make the subtotal a custom property of the business object and always make sure a number if returned...my default, of course, is 0.

Not sure why this issue would pop up in the current release of StrataFrame.  I suppose there could be a breaking change in there somewhere.

Hope that helps,
Bill

Post #13717
Posted 01/24/2008 10:56:29 PM
StrataFrame User

StrataFrame UserStrataFrame UserStrataFrame UserStrataFrame UserStrataFrame UserStrataFrame UserStrataFrame UserStrataFrame User

Group: StrataFrame Users
Last Login: Today @ 7:18:50 AM
Posts: 433, Visits: 1,626
Hi,
The problem just gone after I upgrade to VS 2008. Strange.

However, I hit stackoverflow exception.

MicroFour StrataFrame Business.dll!MicroFour.StrataFrame.Business.BusinessLayer.CurrentView_ListChanged(Object sender = {System.Data.DataView}, System.ComponentModel.ListChangedEventArgs e = {System.ComponentModel.ListChangedEventArgs}) Line 2417 + 0x3b bytesBasic
[Native to Managed Transition]
[Managed to Native Transition]
System.Data.dll!System.Data.DataView.OnListChanged(System.ComponentModel.ListChangedEventArgs e = {System.ComponentModel.ListChangedEventArgs}) + 0x10e bytes
System.Data.dll!System.Data.DataView.IndexListChanged(object sender, System.ComponentModel.ListChangedEventArgs e = {System.ComponentModel.ListChangedEventArgs}) + 0x1a bytes
System.Data.dll!System.Data.DataView.IndexListChangedInternal(System.ComponentModel.ListChangedEventArgs e) + 0x4b bytes
System.Data.dll!System.Data.DataViewListener.IndexListChanged(System.ComponentModel.ListChangedEventArgs e) + 0x3c bytes
System.Data.dll!System.Data.Index.OnListChanged.AnonymousMethod(System.Data.DataViewListener listener, System.ComponentModel.ListChangedEventArgs args, bool arg2, bool arg3) + 0x7 bytes
System.Data.dll!System.Data.Listeners.Notify(System.ComponentModel.ListChangedEventArgs arg1 = {System.ComponentModel.ListChangedEventArgs}, bool arg2 = false, bool arg3 = false, System.Data.Listeners.Action action = {Method = Cannot evaluate expression because the current thread is in a stack overflow state.}) + 0x75 bytes
System.Data.dll!System.Data.Index.OnListChanged(System.ComponentModel.ListChangedEventArgs e) + 0x9b bytes
System.Data.dll!System.Data.Index.RecordStateChanged(int oldRecord, System.Data.DataViewRowState oldOldState, System.Data.DataViewRowState oldNewState, int newRecord, System.Data.DataViewRowState newOldState, System.Data.DataViewRowState newNewState) + 0xfa bytes
System.Data.dll!System.Data.DataTable.RecordStateChanged(int record1 = 294, System.Data.DataViewRowState oldState1 = Added, System.Data.DataViewRowState newState1 = None, int record2 = 295, System.Data.DataViewRowState oldState2 = None, System.Data.DataViewRowState newState2 = Added) + 0x7f bytes
System.Data.dll!System.Data.DataTable.SetNewRecordWorker(System.Data.DataRow row = {System.Data.DataRow}, int proposedRecord, System.Data.DataRowAction action = Change, bool isInMerge, int position, bool fireEvent = true, out System.Exception deferredException = null) + 0x29d bytes
System.Data.dll!System.Data.DataTable.SetNewRecord(System.Data.DataRow row, int proposedRecord, System.Data.DataRowAction action, bool isInMerge, bool fireEvent) + 0x3d bytes
System.Data.dll!System.Data.DataRow.EndEdit() + 0x48 bytes
System.Data.dll!System.Data.DataRow.this[System.Data.DataColumn].set(System.Data.DataColumn column, object value) + 0xe4 bytes
System.Data.dll!System.Data.DataRow.this[string].set(string columnName, object value) + 0x19 bytes
InventoryBusinessObject.dll!JK.Inventory.Purchasing.BusinessObject.ReturnNotesBO.VendorID.set(System.Guid value = {System.Guid}) Line 452 + 0x43 bytesC#
InventoryBusinessObject.dll!JK.Inventory.Purchasing.BusinessObject.ReturnNotesBO.Field_VendorID_Descriptor.SetValue(object component = {JK.Inventory.Purchasing.BusinessObject.ReturnNotesBO}, object Value = {System.Guid}) Line 1217 + 0x5b bytesC#
System.Windows.Forms.dll!System.Windows.Forms.BindToObject.SetValue(object value) + 0x58 bytes
System.Windows.Forms.dll!System.Windows.Forms.Binding.PullData(bool reformat, bool force) + 0x14f bytes
System.Windows.Forms.dll!System.Windows.Forms.Binding.Target_PropertyChanged(object sender, System.EventArgs e) + 0x28 bytes
[Native to Managed Transition]
[Managed to Native Transition]
System.dll!System.ComponentModel.PropertyDescriptor.OnValueChanged(object component, System.EventArgs e) + 0x4c bytes
System.dll!System.ComponentModel.ReflectPropertyDescriptor.OnValueChanged(object component, System.EventArgs e) + 0x72 bytes
System.dll!System.ComponentModel.ReflectPropertyDescriptor.OnINotifyPropertyChanged(object component, System.ComponentModel.PropertyChangedEventArgs e) + 0x75 bytes
JK Framework Inherited UI.dll!JK.Framework.UI.Windows.Forms.DevEx.LookupEdit.FirePropertyChanged(string propertyName = "SelectedValue") Line 914 + 0x29 bytesC#
JK Framework Inherited UI.dll!JK.Framework.UI.Windows.Forms.DevEx.LookupEdit.SelectedValueChanged() Line 920 + 0xd bytesC#
JK Framework Inherited UI.dll!JK.Framework.UI.Windows.Forms.DevEx.LookupEdit.SelectedValue.set(object value = {System.Guid}) Line 802 + 0x7 bytesC#
[Native to Managed Transition]
[Managed to Native Transition]
System.dll!System.ComponentModel.ReflectPropertyDescriptor.SetValue(object component = {JK.Framework.UI.Windows.Forms.DevEx.EnhancedLookupEdit}, object value = {System.Guid}) + 0xe3 bytes
System.Windows.Forms.dll!System.Windows.Forms.Binding.SetPropValue(object value) + 0xc9 bytes
System.Windows.Forms.dll!System.Windows.Forms.Binding.PushData(bool force) + 0x71 bytes
System.Windows.Forms.dll!System.Windows.Forms.BindingManagerBase.PushData(out bool success = true) + 0x50 bytes
System.Windows.Forms.dll!System.Windows.Forms.BindingManagerBase.PushData() + 0xe bytes
System.Windows.Forms.dll!System.Windows.Forms.PropertyManager.OnCurrentChanged(System.EventArgs ea = {System.EventArgs}) + 0xd bytes
System.Windows.Forms.dll!System.Windows.Forms.BindToObject.PropValueChanged(object sender, System.EventArgs e) + 0x23 bytes
[Native to Managed Transition]
[Managed to Native Transition]
MicroFour StrataFrame Business.dll!MicroFour.StrataFrame.Business.BusinessLayer.CurrentView_ListChanged(Object sender = {System.Data.DataView}, System.ComponentModel.ListChangedEventArgs e = {System.ComponentModel.ListChangedEventArgs}) Line 2417 + 0x3b bytesBasic
[Native to Managed Transition]
[Managed to Native Transition]
System.Data.dll!System.Data.DataView.OnListChanged(System.ComponentModel.ListChangedEventArgs e = {System.ComponentModel.ListChangedEventArgs}) + 0x10e bytes
System.Data.dll!System.Data.DataView.IndexListChanged(object sender,