bug fixes

This commit is contained in:
JT Smith 2009-09-25 22:50:59 -05:00
parent ccff9c7014
commit ebb6134c2d
27 changed files with 84 additions and 214 deletions

View file

@ -1777,7 +1777,7 @@ sub new {
return undef unless $revisionDate;
}
my $properties = $session->cache->get(["asset",$assetId,$revisionDate]);
my $properties = eval{$session->cache->get(["asset",$assetId,$revisionDate])};
if (exists $properties->{assetId}) {
# got properties from cache
}
@ -1787,7 +1787,7 @@ sub new {
$session->errorHandler->error("Asset $assetId $class $revisionDate is missing properties. Consult your database tables for corruption. ");
return undef;
}
$cache->set($properties,60*60*24);
eval{$session->cache->set(["asset",$assetId,$revisionDate], $properties, 60*60*24)};
}
if (defined $properties) {
my $object = { _session=>$session, _properties => $properties };
@ -2377,7 +2377,7 @@ sub purgeCache {
$stow->delete('assetLineage');
$stow->delete('assetClass');
$stow->delete('assetRevision');
$self->session->cache->delete(["asset",$self->getId,$self->get("revisionDate")]);
eval{$self->session->cache->delete(["asset",$self->getId,$self->get("revisionDate")])};
}

View file

@ -447,7 +447,7 @@ Extends the master method to clear the view cache.
sub purgeCache {
my $self = shift;
$self->session->cache->delete("view_".$self->getId);
eval{$self->session->cache->delete("view_".$self->getId)};
$self->SUPER::purgeCache;
}
@ -607,7 +607,7 @@ Generate the view method for the Asset, and handle caching.
sub view {
my $self = shift;
if (!$self->session->var->isAdminOn && $self->get("cacheTimeout") > 10) {
my $out = $self->session->cache->get("view_".$self->getId);
my $out = eval{$self->session->cache->get("view_".$self->getId)};
return $out if $out;
}
my %var = %{$self->get};
@ -617,7 +617,7 @@ sub view {
$var{fileSize} = formatBytes($self->get("assetSize"));
my $out = $self->processTemplate(\%var,undef,$self->{_viewTemplate});
if (!$self->session->var->isAdminOn && $self->get("cacheTimeout") > 10) {
$self->session->cache->set("view_".$self->getId, $out, $self->get("cacheTimeout"));
eval{$self->session->cache->set("view_".$self->getId, $out, $self->get("cacheTimeout"))};
}
return $out;
}

View file

@ -224,7 +224,7 @@ sub view {
my $self = shift;
my $cache = $self->session->cache;
if (!$self->session->var->isAdminOn && $self->get("cacheTimeout") > 10) {
my $out = $cache->get("view_".$self->getId);
my $out = eval{$cache->get("view_".$self->getId)};
return $out if $out;
}
my %var = %{$self->get};
@ -248,7 +248,7 @@ sub view {
my $form = $self->session->form;
my $out = $self->processTemplate(\%var,undef,$self->{_viewTemplate});
if (!$self->session->var->isAdminOn && $self->get("cacheTimeout") > 10) {
$cache->set("view_".$self->getId, $out, $self->get("cacheTimeout"));
eval{$cache->set("view_".$self->getId, $out, $self->get("cacheTimeout"))};
}
return $out;
}

View file

@ -222,7 +222,7 @@ sub view {
my $self = shift;
my $cache = $self->session->cache;
if (!$self->session->var->isAdminOn && $self->get("cacheTimeout") > 10) {
my $out = $cache->get("view_".$self->getId);
my $out = eval{$cache->get("view_".$self->getId)};
return $out if $out;
}
my %var = %{$self->get};
@ -245,7 +245,7 @@ sub view {
$var{noFileSpecified} = $i18n->get('noFileSpecified');
my $out = $self->processTemplate(\%var,undef,$self->{_viewTemplate});
if (!$self->session->var->isAdminOn && $self->get("cacheTimeout") > 10) {
$cache->set("view_".$self->getId, $out, $self->get("cacheTimeout"));
eval{$cache->set("view_".$self->getId, $out, $self->get("cacheTimeout"))};
}
return $out;
}

View file

@ -1187,7 +1187,7 @@ Extend the base class to handle caching.
sub purgeCache {
my $self = shift;
$self->session->cache->delete("view_".$self->getThread->getId) if ($self->getThread);
eval{$self->session->cache->delete("view_".$self->getThread->getId)} if ($self->getThread);
$self->SUPER::purgeCache;
}

View file

@ -1027,7 +1027,7 @@ sub view {
$self->incrementViews unless ($self->session->form->process("func") eq 'rate');
my $cache = $self->session->cache;
if ($self->session->user->isVisitor && !$self->session->form->process("layout")) {
my $out = $cache->get("view_".$self->getId);
my $out = eval{$cache->get("view_".$self->getId)};
return $out if $out;
}
$self->session->scratch->set("discussionLayout",$self->session->form->process("layout")) if ($self->session->form->process("layout"));
@ -1134,7 +1134,7 @@ sub view {
my $out = $self->processTemplate($var,undef,$self->{_viewTemplate});
if ($self->session->user->isVisitor && !$self->session->form->process("layout")) {
$cache->set("view_".$self->getId, $out, $self->getThread->getParent->get("visitorCacheTimeout"));
eval{$cache->set("view_".$self->getId, $out, $self->getThread->getParent->get("visitorCacheTimeout"))};
}
return $out;
}

View file

@ -484,7 +484,7 @@ sub getOverrides {
my $cache = $session->cache;
my $u = WebGUI::User->new($self->session, $self->discernUserId);
my $overridesRef = $cache->get($self->_overridesCacheTag);
my $overridesRef = eval{$cache->get($self->_overridesCacheTag)};
##If admin mode is not on, and the cache is valid, and not expired, and the user object was not updated,
##return the cached value.
if ( ! $session->var->isAdminOn
@ -532,7 +532,7 @@ sub getOverrides {
}
}
$overrides{userLastUpdated} = $session->user->get('lastUpdated');
$cache->set($self->_overridesCacheTag, \%overrides, 60*60);
eval{$cache->set($self->_overridesCacheTag, \%overrides, 60*60)};
$overridesRef = \%overrides;
return %{ $overridesRef };
}
@ -879,7 +879,7 @@ Delete any cached overrides.
sub uncacheOverrides {
my $self = shift;
$self->session->cache->delete($self->_overridesCacheTag);
eval{$self->session->cache->delete($self->_overridesCacheTag)};
}
#-------------------------------------------------------------------

View file

@ -251,8 +251,10 @@ Extending purgeCache to handle caching of the rendered snippet
sub purgeCache {
my $self = shift;
my $self->session->cache;
$cache->delete("view__".$self->getId);
$cache->delete("view_1_".$self->getId);
eval {
$cache->delete("view__".$self->getId);
$cache->delete("view_1_".$self->getId);
};
$self->SUPER::purgeCache();
}
@ -292,7 +294,7 @@ sub view {
}
WebGUI::Macro::process($session,\$output);
unless ($noCache) {
$session->cache->set("view_".$calledAsWebMethod."_".$self->getId, $output, $self->get("cacheTimeout"));
eval{$session->cache->set("view_".$calledAsWebMethod."_".$self->getId, $output, $self->get("cacheTimeout"))};
}
return $output;
}

View file

@ -318,7 +318,7 @@ See WebGUI::Asset::purgeCache() for details.
sub purgeCache {
my $self = shift;
$self->session->cache->delete("view_".$self->getId);
eval{$self->session->cache->delete("view_".$self->getId)};
$self->SUPER::purgeCache;
}
@ -350,7 +350,7 @@ sub view {
my $cache = $self->session->cache;
if (!$self->session->var->isAdminOn && $self->get("cacheTimeout") > 10 && !$self->session->form->process("overrideTemplateId") &&
!$self->session->form->process($self->paginateVar) && !$self->session->form->process("makePrintable")) {
my $out = $cache->get("view_".$self->getId);
my $out = eval{$cache->get("view_".$self->getId)};
return $out if $out;
}
my %var;
@ -414,7 +414,7 @@ sub view {
my $out = $self->processTemplate(\%var,undef,$self->{_viewTemplate});
if (!$self->session->var->isAdminOn && $self->get("cacheTimeout") > 10 && !$self->session->form->process("overrideTemplateId") &&
!$self->session->form->process($self->paginateVar) && !$self->session->form->process("makePrintable")) {
$cache->set("view_".$self->getId, $out, $self->get("cacheTimeout"));
eval{$cache->set("view_".$self->getId, $out, $self->get("cacheTimeout"))};
}
return $out;
}

View file

@ -1404,8 +1404,10 @@ Extend the base method to delete view and visitor caches.
sub purgeCache {
my $self = shift;
my $cache = $self->session->cache;
$cache->delete("view_".$self->getId);
$cache->delete($self->_visitorCacheKey);
eval {
$cache->delete("view_".$self->getId);
$cache->delete($self->_visitorCacheKey);
};
$self->next::method;
}
@ -1551,7 +1553,7 @@ sub view {
my $self = shift;
my $cache = $self->session->cache;
if ($self->_visitorCacheOk) {
my $out = $cache->get($self->_visitorCacheKey);
my $out = eval{$cache->get($self->_visitorCacheKey)};
$self->session->errorHandler->debug("HIT") if $out;
return $out if $out;
}
@ -1562,7 +1564,7 @@ sub view {
$self->prepareView unless ($self->{_viewTemplate});
my $out = $self->processTemplate($self->getViewTemplateVars,undef,$self->{_viewTemplate});
if ($self->_visitorCacheOk) {
$cache->set($self->_visitorCacheKey, $out, $self->get("visitorCacheTimeout"));
eval{$cache->set($self->_visitorCacheKey, $out, $self->get("visitorCacheTimeout"))};
}
return $out;
}

View file

@ -207,7 +207,7 @@ See WebGUI::Asset::purgeCache() for details.
sub purgeCache {
my $self = shift;
$self->session->cache->delete("view_".$self->getId);
eval{$self->session->cache->delete("view_".$self->getId)};
$self->SUPER::purgeCache;
}
@ -226,7 +226,7 @@ sub view {
# Use cached version for visitors
my $cache = $self->session->cache;
if ($self->session->user->isVisitor) {
my $out = $cache->get("view_".$self->getId);
my $out = eval{$cache->get("view_".$self->getId)};
return $out if $out;
}
@ -291,7 +291,7 @@ sub view {
# Update the cache
if ($self->session->user->isVisitor) {
$cache->set("view_".$self->getId, $out, $self->get("visitorCacheTimeout"));
eval{$cache->set("view_".$self->getId, $out, $self->get("visitorCacheTimeout"))};
}
return $out;

View file

@ -277,8 +277,10 @@ See WebGUI::Asset::purgeCache() for details.
sub purgeCache {
my $self = shift;
my $cache = $self->session->cache;
$cache->delete([$self->get("proxiedUrl"),"URL"]);
$cache->delete([$self->get("proxiedUrl"),"HEADER"]);
eval {
$cache->delete([$self->get("proxiedUrl"),"URL"]);
$cache->delete([$self->get("proxiedUrl"),"HEADER"]);
};
$self->SUPER::purgeCache;
}
@ -321,10 +323,11 @@ sub view {
### Do we have cached content to get?
my $cache = $self->session->cache;
if ($requestMethod =~ /^GET$/i)
{
$var{header} = $cache->get([$proxiedUrl,'HEADER']);
$var{content} = $cache->get([$proxiedUrl,"URL"]);
if ($requestMethod =~ /^GET$/i) {
eval {
$var{header} = $cache->get([$proxiedUrl,'HEADER']);
$var{content} = $cache->get([$proxiedUrl,"URL"]);
};
}
# Unless we have cached content
@ -464,8 +467,10 @@ sub view {
$var{content} = sprintf $i18n->get('fetch page error'), $proxiedUrl, $proxiedUrl, $response->status_line;
}
unless ($self->get("cacheTimeout") <= 10) {
$cache->set([$proxiedUrl,'URL'], $var{content}, $self->get("cacheTimeout"));
$cache->set([$proxiedUrl,'HEADER'], $var{header}, $self->get("cacheTimeout"));
eval{
$cache->set([$proxiedUrl,'URL'], $var{content}, $self->get("cacheTimeout"));
$cache->set([$proxiedUrl,'HEADER'], $var{header}, $self->get("cacheTimeout"));
};
}
}

View file

@ -413,12 +413,12 @@ sub www_view {
$cacheKey .= '_ssl';
}
my $cache = $session->cache;
my $out = $cache->get($cacheKey);
my $out = eval{$cache->get($cacheKey)};
unless ($out) {
$self->prepareView;
$session->stow->set("cacheFixOverride", 1);
$out = $self->processStyle($self->view, { noHeadTags => 1 });
$cache->set($cacheKey, $out, 60);
eval{$cache->set($cacheKey, $out, 60)};
$session->stow->delete("cacheFixOverride");
}
# keep those ads rotating even though the output is cached

View file

@ -507,7 +507,7 @@ sub getListings {
|| ($versionTag && $versionTag->getId eq $self->get("tagId"));
my $cache = $session->cache;
unless ($noCache) {
$listingsEncoded = $cache->get("matrixListings_".$self->getId);
$listingsEncoded = eval{$cache->get("matrixListings_".$self->getId)};
}
if ($listingsEncoded){
@ -547,7 +547,7 @@ assetData.revisionDate
}
$listingsEncoded = JSON->new->encode($listings);
$cache->set("matrixListings_".$self->getId, $listingsEncoded, $self->get("listingsCacheTimeout"));
eval{$cache->set("matrixListings_".$self->getId, $listingsEncoded, $self->get("listingsCacheTimeout"))};
}
return $listings;
}
@ -688,7 +688,7 @@ sub view {
|| ($versionTag && $versionTag->getId eq $self->get("tagId"));
my $cache = $session->cache;
unless ($noCache) {
$varStatisticsEncoded = $cache->get("matrixStatistics_".$self->getId);
$varStatisticsEncoded = eval{$cache->get("matrixStatistics_".$self->getId)};
}
if ($varStatisticsEncoded){
@ -837,7 +837,7 @@ sub view {
[$self->getId]);
$varStatisticsEncoded = JSON->new->encode($varStatistics);
$cache->set("matrixStatistics_".$self->getId, $varStatisticsEncoded, $self->get("statisticsCacheTimeout"));
eval{$cache->set("matrixStatistics_".$self->getId, $varStatisticsEncoded, $self->get("statisticsCacheTimeout"))};
}
foreach my $statistic (keys %{$varStatistics}) {

View file

@ -90,7 +90,7 @@ See WebGUI::Asset::purgeCache() for details.
sub purgeCache {
my $self = shift;
$self->session->cache->delete("view_".$self->getId);
eval{$self->session->cache->delete("view_".$self->getId)};
$self->SUPER::purgeCache;
}
@ -106,7 +106,7 @@ sub view {
my $self = shift;
my $cache = $self->session->cache;
if ($self->session->user->isVisitor) {
my $out = $cache->get("view_".$self->getId);
my $out = eval{$cache->get("view_".$self->getId)};
return $out if $out;
}
my %var;
@ -171,7 +171,7 @@ sub view {
my $out = $self->processTemplate(\%var,undef,$self->{_viewTemplate});
if ($self->session->user->isVisitor) {
$cache->set("view_".$self->getId, $out, $self->get("visitorCacheTimeout"));
eval{$cache->set("view_".$self->getId, $out, $self->get("visitorCacheTimeout"))};
}
return $out;
}

View file

@ -113,7 +113,7 @@ See WebGUI::Asset::purgeCache() for details.
sub purgeCache {
my $self = shift;
$self->session->cache->delete("view_".$self->getId);
eval{$self->session->cache->delete("view_".$self->getId)};
$self->SUPER::purgeCache;
}
@ -130,7 +130,7 @@ sub view {
my $self = shift;
my $cache = $self->session->cache;
if (!$self->session->var->isAdminOn && $self->get("cacheTimeout") > 10) {
my $out = $cache->get("view_".$self->getId);
my $out = eval{$cache->get("view_".$self->getId)};
return $out if $out;
}
my $i18n = WebGUI::International->new($self->session, 'Asset_MultiSearch');
@ -143,7 +143,7 @@ sub view {
my $out = $self->processTemplate(\%var,undef,$self->{_viewTemplate});
if (!$self->session->var->isAdminOn && $self->get("cacheTimeout") > 10) {
$cache->set("view_".$self->getId, $out, $self->get("cacheTimeout"));
eval{$cache->set("view_".$self->getId, $out, $self->get("cacheTimeout"))};
}
return $out;
}

View file

@ -517,7 +517,7 @@ See WebGUI::Asset::purgeCache() for details.
sub purgeCache {
my $self = shift;
$self->session->cache->delete("view_".$self->getId);
eval{$self->session->cache->delete("view_".$self->getId)};
$self->SUPER::purgeCache;
}
@ -534,7 +534,7 @@ sub view {
my $self = shift;
my $cache = $self->session->cache;
if (!$self->session->var->isAdminOn && $self->get("cacheTimeout") > 10) {
my $out = $cache->get("view_".$self->getId);
my $out = eval{$cache->get("view_".$self->getId)};
return $out if $out;
}
# Initiate an empty debug loop
@ -560,7 +560,7 @@ sub view {
my $out = $self->processTemplate($var,undef,$self->{_viewTemplate});
if (!$self->session->var->isAdminOn && $self->get("cacheTimeout") > 10) {
$cache->set("view_".$self->getId, $out, $self->get("cacheTimeout"));
eval{$cache->set("view_".$self->getId, $out, $self->get("cacheTimeout"))};
}
return $out;
}

View file

@ -142,9 +142,9 @@ sub generateFeed {
if ($self->get('processMacroInRssUrl')) {
WebGUI::Macro::process($self->session, \$url);
}
my $value = $cache->get($url);
my $value = eval{$cache->get($url)};
unless ($value) {
$value = $cache->setByHttp($url, $url, $self->get("cacheTimeout"));
$value = eval{$cache->setByHttp($url, $url, $self->get("cacheTimeout"))};
$newlyCached = 1;
}
# if the content can be downgraded, it is either valid latin1 or didn't have
@ -327,7 +327,7 @@ See WebGUI::Asset::purgeCache() for details.
sub purgeCache {
my $self = shift;
$self->session->cache->delete("view_".$self->getId);
eval{$self->session->cache->delete("view_".$self->getId)};
$self->next::method;
}
@ -345,7 +345,7 @@ sub view {
# try the cached version
my $cache = $session->cache;
my $out = $cache->get("view_".$self->getId);
my $out = eval{$cache->get("view_".$self->getId)};
return $out if ($out ne "" && !$session->var->isAdminOn);
#return $out if $out;
@ -353,7 +353,7 @@ sub view {
my $feed = $self->generateFeed;
$out = $self->processTemplate($self->getTemplateVariables($feed),undef,$self->{_viewTemplate});
if (!$session->var->isAdminOn && $self->get("cacheTimeout") > 10) {
$cache->set("view_".$self->getId, $out, $self->get("cacheTimeout"));
eval{$cache->set("view_".$self->getId, $out, $self->get("cacheTimeout"))};
}
return $out;
}

View file

@ -2662,7 +2662,7 @@ sub www_export {
push(@fieldLabels,@metaDataFields)
}
$query = $session->cache->get("query_".$thingId);
$query = eval{$session->cache->get("query_".$thingId)};
$sth = $session->db->read($query);
### Loop through the returned structure and put it through Text::CSV
@ -3307,7 +3307,7 @@ sequenceNumber');
}
# store query in cache for thirty minutes
$self->session->cache->set("query_".$thingId, $query, 30*60);
eval{$self->session->cache->set("query_".$thingId, $query, 30*60)};
$paginatePage = $self->session->form->param('pn') || 1;
$currentUrl = $self->session->url->append($currentUrl, "orderBy=".$orderBy) if $orderBy;

View file

@ -148,12 +148,15 @@ sub cascadeLineage {
[$newLineage, length($oldLineage) + 1, $oldLineage . '%']
);
if ($records > 20) {
$self->session->cache->flush;
eval{$self->session->cache->flush};
}
else {
my $descendants = $self->session->db->read("SELECT assetId FROM asset WHERE lineage LIKE ?", [$newLineage . '%']);
while (my ($assetId, $lineage) = $descendants->array) {
$cache->deleteChunk(["asset",$assetId]);
my $asset = WebGUI::Asset->newByDynamicClass($self->session, $assetId);
if (defined $asset) {
$asset->purgeCache;
}
}
$descendants->finish;
}

View file

@ -127,7 +127,7 @@ not be added to any group. Groups may not be added to themselves.
sub addGroups {
my $self = shift;
my $groups = shift;
$self->session->cache->delete($self->getId);
eval{$self->session->cache->delete($self->getId)};
GROUP: foreach my $gid (@{$groups}) {
next if ($gid eq '1');
next if ($gid eq $self->getId);
@ -234,7 +234,7 @@ sub clearCaches {
my $groups = $self->getAllGroupsFor();
my $cache = $self->session->cache;
foreach my $group ( $self->getId, @{ $groups } ) {
$cache->delete($group);
eval{$cache->delete($group)};
}
my $stow = $self->session->stow;
$stow->delete("groupObj");
@ -563,7 +563,7 @@ sub getAllUsers {
my $loopCount = shift;
my $expireTime = 0;
my $cache = $self->session->cache;
my $value = $cache->get($self->getId);
my $value = eval{$cache->get($self->getId)};
return $value if defined $value;
my @users = ();
push @users,
@ -588,7 +588,7 @@ sub getAllUsers {
}
my %users = map { $_ => 1 } @users;
@users = keys %users;
$cache->set($self->getId, \@users, $self->groupCacheTimeout);
eval{$cache->set($self->getId, \@users, $self->groupCacheTimeout)};
return \@users;
}

View file

@ -92,7 +92,7 @@ sub www_flushCache {
return $session->privilege->adminOnly unless canView($session);
# Flush the cache
$session->cache->flush;
eval{$session->cache->flush};
return www_manageCache($session);
}

View file

@ -726,7 +726,7 @@ sub www_saveSettings {
$session->db->write(
"UPDATE userProfileData SET showMessageOnLoginSeen=0"
);
$session->cache->flush;
eval{$session->cache->flush};
}
return www_editSettings($session, { errors => \@errors, message => $i18n->get("editSettings done") });

View file

@ -180,9 +180,9 @@ sub www_viewStatistics {
my $i18n = WebGUI::International->new($session);
my $url = "http://update.webgui.org/latest-version.txt";
my $cache = $session->cache;
my $version = $cache->get($url);
my $version = eval{$cache->get($url)};
if (not defined $version) {
$version = $cache->setByHttp($url, $url, 43200);
$version = eval{$cache->setByHttp($url, $url, 43200)};
}
chomp $version;
$output .= '<table>';

View file

@ -286,7 +286,7 @@ sub cache {
for my $k (qw(_userId _user _profile)) {
$userData{$k} = $self->{$k};
}
$self->session->cache->set(["user",$self->userId], \%userData, 60*60*24);
eval{$self->session->cache->set(["user",$self->userId], \%userData, 60*60*24)};
}
#-------------------------------------------------------------------
@ -1060,7 +1060,7 @@ sub new {
my $userId = shift || 1;
my $overrideId = shift;
$userId = _create($session, $overrideId) if ($userId eq "new");
my $self = $session->cache->get(["user",$userId]) || {};
my $self = eval{$session->cache->get(["user",$userId])} || {};
bless $self, $class;
$self->{_session} = $session;
unless ($self->{_userId} && $self->{_user}{username}) {
@ -1334,7 +1334,7 @@ Deletes this user object out of the cache.
sub uncache {
my $self = shift;
$self->session->cache->delete(["user",$self->userId]);
eval{$self->session->cache->delete(["user",$self->userId])};
}
#----------------------------------------------------------------------------