By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
435,635 Members | 2,187 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 435,635 IT Pros & Developers. It's quick & easy.

Error in global.cs file

P: 8
In the project i am using i am having the following code and when i upload it to the server.Its givig me the following error in the global.cs file.



Server Error in '/' Application.
--------------------------------------------------------------------------------

Object reference not set to an instance of an object.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.NullReferenceException: Object reference not set to an instance of an object.

Source Error:

An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.

Stack Trace:

[NullReferenceException: Object reference not set to an instance of an object.]
anmar.SharpWebMail.UI.Global.getEffectiveCulture(C ultureInfo ci) in global.cs:95
anmar.SharpWebMail.UI.Global.ParseCultures(Object[] cultures) in global.cs:180
anmar.SharpWebMail.UI.Global.ParseCultures(Object[] cultures) in global.cs:177
anmar.SharpWebMail.UI.Global.Application_AcquireRe questState() in global.cs:50

[TargetInvocationException: Exception has been thrown by the target of an invocation.]
System.RuntimeMethodHandle._InvokeMethodFast(Objec t target, Object[] arguments, SignatureStruct& sig, MethodAttributes methodAttributes, RuntimeTypeHandle typeOwner) +0
System.RuntimeMethodHandle.InvokeMethodFast(Object target, Object[] arguments, Signature sig, MethodAttributes methodAttributes, RuntimeTypeHandle typeOwner) +72
System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture, Boolean skipVisibilityChecks) +296
System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture) +29
System.Web.Util.ArglessEventHandlerProxy.Callback( Object sender, EventArgs e) +41
System.Web.SyncEventExecutionStep.System.Web.HttpA pplication.IExecutionStep.Execute() +92
System.Web.HttpApplication.ExecuteStep(IExecutionS tep step, Boolean& completedSynchronously) +64




--------------------------------------------------------------------------------

Version Information: Microsoft .NET Framework Version:2.0.50727.42; ASP.NET Version:2.0.50727.210



The code in global.cs file is

using System;
[assembly: log4net.Config.XmlConfigurator()]

namespace anmar.SharpWebMail.UI
{

public class Global : System.Web.HttpApplication {
protected static log4net.ILog log = log4net.LogManager.GetLogger(System.Reflection.Met hodBase.GetCurrentMethod().DeclaringType);

protected static System.Globalization.CultureInfo invariant = null;
protected static System.Collections.Specialized.HybridDictionary availablecultures;

protected static System.Resources.ResourceManager resources = null;public void Application_Start ( System.Object sender, System.EventArgs args ) {
initConfig();

}

public void Application_Error ( System.Object sender, System.EventArgs args ) {
if ( log.IsErrorEnabled ) log.Error ( "Application_Error", Server.GetLastError() );

#if !DEBUG
Server.ClearError();

#endif

}

public virtual void Application_AcquireRequestState() {
// For each request initialize the culture values with the

// user language as specified by the browser.

System.String[] lang = new System.String[]{Request.QueryString["lang"], null};
if ( this.Context.Session!=null && this.Session["effectiveculture"]!=null )

lang[1] = this.Session["effectiveculture"].ToString();
System.Globalization.CultureInfo culture = this.ParseCultures ( lang, Request.UserLanguages );

if ( culture==null )
culture = invariant;

if ( culture!=null && lang[1]!=culture.Name ) {
if ( !culture.IsNeutralCulture )

System.Threading.Thread.CurrentThread.CurrentCultu re = culture;
System.Threading.Thread.CurrentThread.CurrentUICul ture = culture;

if ( this.Context.Session!=null ) {
Session["resources"] = resources.GetResourceSet(culture, true, true);

Session["effectiveculture"] = getEffectiveCulture(culture);
}

}

}

public void Session_Start ( System.Object sender, System.EventArgs args ) {
// Inbox Object

anmar.SharpWebMail.CTNInbox inbox = new anmar.SharpWebMail.CTNInbox();
if ( Application["sharpwebmail/read/inbox/sort"]!=null )

inbox.SortExpression = Application["sharpwebmail/read/inbox/sort"].ToString();
Session["inbox"] = inbox;

Session["sharpwebmail/read/message/temppath"] = parseTempFolder(Application["sharpwebmail/read/message/temppath"], Session.SessionID);Session["sharpwebmail/send/message/temppath"] = parseTempFolder(Application["sharpwebmail/send/message/temppath"], Session.SessionID);
}

public void Session_End ( System.Object sender, System.EventArgs args ) {
// Clean up temp files

cleanTempFolder(Session["sharpwebmail/read/message/temppath"]);cleanTempFolder(Session["sharpwebmail/send/message/temppath"]);
}

private void cleanTempFolder ( System.Object value ) {

try {
if ( value!=null ) {

System.IO.DirectoryInfo dir = new System.IO.DirectoryInfo (value.ToString());
if ( dir.Exists )

dir.Delete(true);dir=null;
}

} catch( System.Exception e ) {

if ( log.IsErrorEnabled )log.Error("Error cleanling up dir", e);
}

}

public System.String getEffectiveCulture ( System.Globalization.CultureInfo ci ) {
System.String culture = System.String.Empty;

if ( !availablecultures.Contains(ci.Name) && !ci.Equals(System.Globalization.CultureInfo.Invari antCulture) ) culture = this.getEffectiveCulture(ci.Parent);
else

culture = ci.Name;

return culture;
}

private void initConfig () {
Application["product"] = System.Reflection.Assembly.GetExecutingAssembly(). GetName().Name;

Application["version"] = System.Reflection.Assembly.GetExecutingAssembly(). GetName().Version;
resources = new System.Resources.ResourceManager("SharpWebMail", System.Reflection.Assembly.GetExecutingAssembly()) ;

Application["resources"] = resources;
System.Collections.Hashtable config = (System.Collections.Hashtable)System.Configuration .ConfigurationSettings.GetConfig("sharpwebmail");

foreach ( System.Collections.DictionaryEntry item in config ) {
Application.Add(item.Key.ToString(), item.Value);

}

config = null;
if ( Application["sharpwebmail/send/addressbook"]!=null ) {

Application["sharpwebmail/general/addressbooks"] = true;
}

if ( (bool)Application["sharpwebmail/read/message/useserverencoding"] ) {anmar.SharpMimeTools.SharpMimeHeader.EncodingDefa ult = System.Text.Encoding.Default;
}

TestAvailableCultures();

System.Collections.SortedList availablecultures_values = new System.Collections.SortedList(availablecultures.Co unt);foreach ( System.Collections.DictionaryEntry item in availablecultures ) {
availablecultures_values.Add(item.Value, item.Key);

}

Application["AvailableCultures"] = availablecultures_values;
initInvariantCulture();

Application["sharpwebmail/read/message/temppath"] = parseTempFolder(Server.MapPath("/"), Application["sharpwebmail/read/message/temppath"]);Application["sharpwebmail/send/message/temppath"] = parseTempFolder(Server.MapPath("/"), Application["sharpwebmail/send/message/temppath"]);
}

private void initInvariantCulture() {

if ( invariant==null )
ParseInvariant(Application["sharpwebmail/general/default_lang"].ToString());

if ( invariant==null )
ParseInvariant("en");

if ( invariant==null ) { invariant = System.Globalization.CultureInfo.InvariantCulture;
// Set the first available culture as the default one

if ( availablecultures.Count>0 ) {
System.Collections.IDictionaryEnumerator enumerator = availablecultures.GetEnumerator();

if ( enumerator.MoveNext() )
invariant = ParseCultureSpecific((string)enumerator.Key);

enumerator = null;
}

}

}

private System.Globalization.CultureInfo ParseCulture ( System.String culturename ) {
System.Globalization.CultureInfo culture = null;

try {
culture = new System.Globalization.CultureInfo(culturename);

} catch ( System.Exception e ) {
if ( log.IsErrorEnabled )

log.Error("Error parsing culture", e);
}

return culture;
}

private System.Globalization.CultureInfo ParseCultureSpecific ( System.String culturename ) {
if ( culturename.IndexOf(';')>0 )

culturename = culturename.Remove(culturename.IndexOf(';'), culturename.Length - culturename.IndexOf(';'));
System.Globalization.CultureInfo culture = null;

try {
culture = System.Globalization.CultureInfo.CreateSpecificCul ture(culturename);

if ( culturename.Length>0 && culture.Equals(System.Globalization.CultureInfo.In variantCulture) )
culture = ParseCulture(culturename);

} catch ( System.Exception e ) {
if ( log.IsErrorEnabled )

log.Error("Error parsing specific culture", e);
}

return culture;
}

private System.Globalization.CultureInfo ParseCultures ( params System.Object[] cultures ) {
System.Globalization.CultureInfo culture = null;

if ( cultures!=null ) {
foreach ( System.Object item in cultures ) {

if ( item==null )
continue;

if ( item is System.Array )
culture = ParseCultures(item as System.Object[]);

else if ( item is System.String )
culture = this.ParseCultureSpecific(item.ToString());

if ( culture!=null && getEffectiveCulture(culture).Length>0 ) break;
else

culture = null;
}

}

return culture;
}

private void ParseInvariant ( System.String culture ) {
invariant = ParseCulture(culture);

if ( invariant!=null ) {
culture = getEffectiveCulture(invariant);

if ( culture.Length>0 )
invariant = ParseCultureSpecific(culture);

else

invariant = null;
}

}

private System.String parseTempFolder( System.Object prefix, System.Object sufix ) {
// Temp folder

if ( prefix!=null && sufix!=null && !prefix.Equals(System.String.Empty) && !sufix.Equals(System.String.Empty) ) return System.IO.Path.Combine (prefix.ToString(), sufix.ToString());
else

return null;
}

private void TestAvailableCultures() {
availablecultures = new System.Collections.Specialized.HybridDictionary();

foreach ( System.Globalization.CultureInfo item in System.Globalization.CultureInfo.GetCultures( System.Globalization.CultureTypes.AllCultures) ) {if ( !item.Equals(System.Globalization.CultureInfo.Inva riantCulture) && !availablecultures.Contains(item.Name) && resources.GetResourceSet(item, true, false)!=null )
availablecultures.Add(item.Name, item.EnglishName);

}

}

}

}

What is the reason for this error? How to solve it? I am using VS2005 ASP.net 2.0
Aug 7 '07 #1
Share this Question
Share on Google+
2 Replies


kenobewan
Expert 2.5K+
P: 4,871
[NullReferenceException: Object reference not set to an instance of an object.]
anmar.SharpWebMail.UI.Global.getEffectiveCulture(C ultureInfo ci) in global.cs:95
anmar.SharpWebMail.UI.Global.ParseCultures(Object[] cultures) in global.cs:180
anmar.SharpWebMail.UI.Global.ParseCultures(Object[] cultures) in global.cs:177
anmar.SharpWebMail.UI.Global.Application_AcquireRe questState() in global.cs:50
This tells you where to look. HTH.
Aug 7 '07 #2

Plater
Expert 5K+
P: 7,872
It also appears that right around that line, you are not checking to make sure your "lang" variable contains valid information and are trying to do proccessing on it that is failing and setting an object to NULL, giving you the null reference exception when you try to use it.
Aug 7 '07 #3

Post your reply

Sign in to post your reply or Sign up for a free account.