This question about Using an extension: Task filed
Plugin doesn't work on subwebs
I was not able to make this plugin work on the subwebs of my Foswiki install. What I had to do to get it working was comment out line 1119 of Core.pm which replaces any slashes in the Web name with periods. Now it appears to be working fine.
Would there have been a better way for me to correct this or is it a bug?
--
CalebSG - 17 Jul 2013
Could you be more specific other than "doesn't work", please?
In general slash and period are equivalent in web names.
--
MichaelDaum - 18 Jul 2013
Sorry, my bad. This is the error message on the web page with line 1119 in Plugins/DBCachePlugin/Core.pm uncommented: "Foswiki detected an internal error - please check your Foswiki logs and webserver logs for more information.
E:path: No such file or directory"
This is the full error message in the wiki error log: 2013-07-18T13:46:36Z warning | E:/Apache24/htdocs/wiki/data/Equipment.Systems: No such file or directory at E:/Apache24/htdocs/wiki/lib/Foswiki/Plugins/DBCachePlugin/Core.pm line 1120.
at E:/strawberry/perl/lib/Cwd.pm line 354.
- Cwd::_croak('E:/Apache24/htdocs/wiki/data/Equipment.Systems
- No such file ...') called at E:/strawberry/perl/lib/Cwd.pm line 631 Cwd::fast_abs_path('E:/Apache24/htdocs/wiki/data/Equipment.Systems') called at E:/Apache24/htdocs/wiki/lib/Foswiki/Plugins/DBCachePlugin/Core.pm line 1120 Foswiki::Plugins::DBCachePlugin::Core::getWebKey('Equipment/Systems') called at E:/Apache24/htdocs/wiki/lib/Foswiki/Plugins/DBCachePlugin/Core.pm line 1133 Foswiki::Plugins::DBCachePlugin::Core::getDB('Equipment/Systems') called at E:/Apache24/htdocs/wiki/lib/Foswiki/Plugins/DBCachePlugin/Core.pm line 231 Foswiki::Plugins::DBCachePlugin::Core::getTopicTitle('Equipment.Systems', 'CorporateLeadership') called at E:/Apache24/htdocs/wiki/lib/Foswiki/Plugins/DBCachePlugin/Core.pm line 100 Foswiki::Plugins::DBCachePlugin::Core::renderWikiWordHandler('CorporateLeadership', undef, 'Equipment/Systems', 'CorporateLeadership') called at E:/Apache24/htdocs/wiki/lib/Foswiki/Plugins/DBCachePlugin.pm line 237 Foswiki::Plugins::DBCachePlugin::renderWikiWordHandler('CorporateLeadership', undef, 'Equipment/Systems', 'CorporateLeadership') called at E:/Apache24/htdocs/wiki/lib/Foswiki/Plugin.pm line 294 Foswiki::Plugin::invoke('Foswiki::Plugin=HASH(0x1bb3c0c)', 'renderWikiWordHandler', 'CorporateLeadership', undef, 'Equipment/Systems', 'CorporateLeadership') called at E:/Apache24/htdocs/wiki/lib/Foswiki/Plugins.pm line 341 Foswiki::Plugins::dispatch('Foswiki::Plugins=HASH(0x173f9a4)', 'renderWikiWordHandler', 'CorporateLeadership', undef, 'Equipment/Systems', 'CorporateLeadership') called at E:/Apache24/htdocs/wiki/lib/Foswiki/Render.pm line 578 Foswiki::Render::internalLink('Foswiki::Render=HASH(0x1f2b254)', 'Equipment/Systems', 'CorporateLeadership', 'CorporateLeadership', '', 1, '', undef) called at E:/Apache24/htdocs/wiki/lib/Foswiki/Render.pm line 770 Foswiki::Render::_handleWikiWord('Foswiki::Render=HASH(0x1f2b254)', 'Foswiki::Meta=HASH(0x1f0403c)', 'E:/Apache24/htdocs/wiki/bin', undef, undef) called at E:/Apache24/htdocs/wiki/lib/Foswiki/Render.pm line 1421 Foswiki::Render::getRenderedVersion('Foswiki::Render=HASH(0x1f2b254)', '---+!! Welcome to the Equipment/Systems web\x{a}---++!! Equi...', 'Foswiki::Meta=HASH(0x1f0403c)') called at E:/Apache24/htdocs/wiki/lib/Foswiki/Meta.pm line 3117 Foswiki::Meta::renderTML('Foswiki::Meta=HASH(0x1f0403c)', '---+!! Welcome to the Equipment/Systems web\x{a}---++!! Equi...') called at E:/Apache24/htdocs/wiki/lib/Foswiki/UI/View.pm line 413 Foswiki::UI::View::_prepare('---+!! %MAKETEXT{"Welcome to the [_1] web" args="Support"}...', 'Foswiki::Meta=HASH(0x1f0403c)', 0) called at E:/Apache24/htdocs/wiki/lib/Foswiki/UI/View.pm line 392 Foswiki::UI::View::view('Foswiki=HASH(0x173ec0c)') called at E:/Apache24/htdocs/wiki/lib/Foswiki/UI.pm line 316 Foswiki::UI::__ANON__() called at E:/Apache24/htdocs/wiki/lib/CPAN/lib/Error.pm line 379 eval {...} called at E:/Apache24/htdocs/wiki/lib/CPAN/lib/Error.pm line 371 Error::subs::try('CODE(0x517e1c)', 'HASH(0x173e95c)') called at E:/Apache24/htdocs/wiki/lib/Foswiki/UI.pm line 435 Foswiki::UI::_execute('Foswiki::Request=HASH(0x1737954)', 'CODE(0x10f7f7c)', 'view', 1) called at E:/Apache24/htdocs/wiki/lib/Foswiki/UI.pm line 274 Foswiki::UI::handleRequest('Foswiki::Request=HASH(0x1737954)') called at E:/Apache24/htdocs/wiki/lib/Foswiki/Engine/CGI.pm line 41 Foswiki::Engine::CGI::run('Foswiki::Engine::CGI=HASH(0x10f29e4)') called |
Once I comment that line back out the page renders fine. Only happens in the one subweb that I have set up.
--
CalebSG - 18 Jul 2013
Got it.
Here's the rub: there's a semantic difference between Cwd::fast_abs_path and Cwd::abs_path. The latter doesn't check for file existence, but fast_abs_path does. Not sure why that could be any faster that way.
DBCachePlugin calls Cwd::abs_path which is rerouted to Cwd::fast_abs_path on some platforms like yours.
The purpose of the getWebKey method is just to get a unique key for a cache to be loaded. There's some normalization required to prevent the same cache to be loaded twice, once for
Equipment/Systems
and another time for
Equipment.Systems
.
There's absolutely no need for Cwd to check for file existence at this point.
Will file a bug report and fix it:
Tasks.Item12551
--
MichaelDaum - 18 Jul 2013
Fixed in latest version of
DBCachePlugin.
--
MichaelDaum - 18 Jul 2013
Great work, Michael.
--
CalebSG - 18 Jul 2013