PDA

View Full Version : Always fails when browsed from some computers, but works on others.



geewhizbang
20 Aug 2009, 10:23 AM
On many computers, this works perfectly. On others, it fails. On computers where it fails, it fails every time, and it works every time on the others. The browser type doesn't appear to make a difference.

The code runs when the tab is changed.
The last alert that appears before the failure is: alert("define panel")

Line: 14639
Error: 'dom' is null or not an object



if(this.el){
this.el = Ext.get(this.el);
if(this.allowDomMove !== false){
ct.dom.insertBefore(this.el.dom, position);
}
}


In the debugger, this.el.dom is definitely an object, but ct is null.

If I don't enter the debugger, I get a second error:
Line: 4324
Error: Could not complete the operation due to error 80020101.

After this error, moving to another tab works, but ExtJS appears to be broken in rendering any more new elements.



function OpenWiki(params)
{
if (typeof(KnowledgeBase.gridWiki) == "undefined")
{
alert("openWikiData");
KnowledgeBase.Wiki.data = new Ext.data.DirectStore
(
{
proxy: new Ext.data.DirectProxy
(
{
paramsAsHash: false,
directFn: DirectRequest.InitWiki
}
),
autoLoad: false,
directFn: DirectRequest.InitWiki,
paramsAsHash: false,
idProperty: 'WikiID',
fields:
[
{name: 'WikiID', type: 'int'},
{name: 'TemplateID', type: 'int'},
{name: 'PortalID', type: 'int'},
{name: 'PortalName', type: 'string'},
{name: 'SessionID', type: 'int'},
{name: 'ClientID', type: 'int'},
{name: 'Title', type: 'string'},
{name: 'Createdate', type: 'date'},
{name: 'Modifydate', type: 'date'},
{name: 'Viewdate', type: 'date'},
{name: 'ModifyUserID', type: 'int'},
{name: 'ModifyFirstName', type: 'string'},
{name: 'ModifyLastName', type: 'string'},
{name: 'Template', type: 'int'},
{name: 'CheckOut', type: 'int'},
{name: 'CheckOutUserID', type: 'int'},
{name: 'CheckOutFirstName', type: 'string'},
{name: 'CheckOutLastName', type: 'string'},
{name: 'CheckOutDate', type: 'date'},
{name: 'StatRateCount', type: 'int'},
{name: 'StatAveRating', type: 'int'},
{name: 'SttatHitCount', type: 'int'}
],
remoteSort: false,
listeners:
{
load: function()
{
KnowledgeBase.Wiki.data,
alert("data load");
}
}
}
);

alert("defineRenderers");
KnowledgeBase.Wiki.Renderers =
{
Wiki : function(value, p, r)
{
return String.format
(
'<div class="SD_CellTitleLink">{0}</a></div><div class="SD_CellText">{1}</div>',
value, 'Some description text goes here', r.data.WikiID
);
}
};
alert("define panel")
KnowledgeBase.Wiki.WikiGrid = new Ext.grid.GridPanel
(
{
renderTo: 'wikiHeaderBody',
frame: false,
stripeRows: false,
scroll: false,
autoHeight:true,
width: 800,
columnLines:true,
disableSelection: true,
trackMouseOver: false,
store: KnowledgeBase.Wiki.data,
columns:
[
{header: 'Tuan Wiki', id:'WikiID', width:400, dataIndex:'Title', renderer: KnowledgeBase.Wiki.Renderers.Wiki, sortable: false, menuDisabled:true},
{header: 'Posted Date', id:'Modifydate', width:200, dataIndex:'Viewdate', renderer: KnowledgeBase.Wiki.Renderers.Wiki, sortable: false, menuDisabled:true}
],
listeners:
{
render: function()
{
alert("displayer");
KnowledgeBase.Wiki.Displayer.onShow(KnowledgeBase.Wiki.WikiGrid);
}
}
}
);
alert("end define panel")
}
alert("load panel");
KnowledgeBase.Wiki.data.load();
}

BitPoet
20 Aug 2009, 11:20 AM
Are you missing the semicolons after the alert messages in your real code too?

geewhizbang
20 Aug 2009, 11:49 AM
I inserted semicolons everywhere they were missing, but they don't cause this bug. They would matter if the code was ever minified, but at the moment that is not a problem.

The errors happened before the alerts were in place in any case. The alerts just make it clear where it is breaking.

Semicolons don't explain the computer-related consistency of the failures. It really does work only on some computers and not on others. If it doesn't workk in IE6 / IE7 / IE8 on a computer, it also doesn't work on Firefox.

The other issue that I have just diagnosed is that the server side component DirectRequest.InitWiki doesn't happen. On the same computer, a different direct request DOES happen.

I am going to post this in the Ext.Direct forum and see what someone has to say about this.

geewhizbang
21 Aug 2009, 5:40 AM
I have since determined that this is a security configuration issue on the server. The failures were happening only on computers where users were logged on to our corporate domain.

If they were logged on anonymously just to their box with no domain authority at all, then IIS behaves properly. I still don't know where in the rather large piece of code the security problem is occurring (it's not my code) but it has to be a security problem.