diff --git a/lib/WebGUI/Config.pm b/lib/WebGUI/Config.pm index 774bd4eb1..c1409a510 100644 --- a/lib/WebGUI/Config.pm +++ b/lib/WebGUI/Config.pm @@ -186,7 +186,10 @@ sub readAllConfigs { return \%configs; } - +sub DESTROY { + my ($self) = @_; + undef $self; +} 1; diff --git a/lib/WebGUI/Session.pm b/lib/WebGUI/Session.pm index bbfe0585a..09a9696ae 100644 --- a/lib/WebGUI/Session.pm +++ b/lib/WebGUI/Session.pm @@ -34,7 +34,7 @@ use WebGUI::Session::Stow; use WebGUI::Session::Style; use WebGUI::Session::Url; use WebGUI::Session::Var; - +use Data::Dumper; =head1 NAME @@ -113,9 +113,13 @@ Cleans up a WebGUI session information from memory and disconnects from any reso sub close { my $self = shift; + ##Must destroy the logger last! + my %keys = grep { $_ ne '_errorHandler' } keys %{ $self }; foreach my $object (keys %{$self}) { - $self->{$object}->DESTROY; + ##Don't destroy things that don's exist + $self->{$object} and $self->{$object}->DESTROY; } + $self->{_errorHandler} and $self->{_errorHandler}->DESTROY; undef $self; } diff --git a/lib/WebGUI/Session/ErrorHandler.pm b/lib/WebGUI/Session/ErrorHandler.pm index 6dc2a337e..6c1f27862 100644 --- a/lib/WebGUI/Session/ErrorHandler.pm +++ b/lib/WebGUI/Session/ErrorHandler.pm @@ -379,7 +379,7 @@ sub warn { my $self = shift; my $message = shift; $self->getLogger->warn($message); - $self->{_session}->stow->set("debug_warn") = $self->{_session}->stow->get("debug_warn").$message."\n"; + $self->{_session}->stow->set("debug_warn", $self->{_session}->stow->get("debug_warn").$message."\n"); }