Excellent!  Fixed and it *does* work like a charm.

Thanks,

Pete


Michael Johann wrote:
> Hi Peter,
>
> this is a bug in JRuby where File.open throws an IOError instead of 
> Errno::ENOENT.
> Rack-Cache can handle the situation if Errno::ENOENT is thrown but this never 
> happens.
> I realized this a few days before and will open an issue and contribute to 
> JRuby in the next hours.
>
> A workaround for you is the following:
>
> open the metastore.rb and add the following to the write method around line 
> 223:
>
>       def write(key, entries)
>         path = key_path(key)
>         File.open(path, 'wb') { |io| Marshal.dump(entries, io, -1) }
>       rescue IOError
>         Dir.mkdir(File.dirname(path), 0755)
>         retry
>       rescue Errno::ENOENT
>         Dir.mkdir(File.dirname(path), 0755)
>         retry
>       end
>
> With this workaround the IOError is handled properly and Radiant works like a 
> charm.
>
> Cheers
> Michael Johann
>
> Am 21.12.2009 um 23:56 schrieb Pete Helgren:
>
>   
>> I installed Radiant on JRuby 1.4 and I get the following error when I 
>> attempt to access the web app:
>>
>> /!\ FAILSAFE /!\  Mon Dec 21 22:35:35 UTC 2009       
>>  Status: 500 Internal Server Error                  
>>  A file or directory in the path name does not exist.
>>
>> /usr/local/jruby-1.4.0/lib/ruby/gems/1.8/gems/radiant-0.8.1/vendor/rack-cache/lib/rack/cache/metastore.rb:223:in
>>  
>> `initialize'
>>
>> /usr/local/jruby-1.4.0/lib/ruby/gems/1.8/gems/radiant-0.8.1/vendor/rack-cache/lib/rack/cache/metastore.rb:223:in
>>  
>> `open'                              
>>
>> /usr/local/jruby-1.4.0/lib/ruby/gems/1.8/gems/radiant-0.8.1/vendor/rack-cache/lib/rack/cache/metastore.rb:223:in
>>  
>> `write'                             
>>
>> /usr/local/jruby-1.4.0/lib/ruby/gems/1.8/gems/radiant-0.8.1/vendor/rack-cache/lib/rack/cache/metastore.rb:78:in
>>  
>> `store'                              
>>
>> /usr/local/jruby-1.4.0/lib/ruby/gems/1.8/gems/radiant-0.8.1/vendor/rack-cache/lib/rack/cache/context.rb:229:in
>>  
>> `store'                               
>>
>> /usr/local/jruby-1.4.0/lib/ruby/gems/1.8/gems/radiant-0.8.1/vendor/rack-cache/lib/rack/cache/context.rb:221:in
>>  
>> `fetch'                               
>>
>> /usr/local/jruby-1.4.0/lib/ruby/gems/1.8/gems/radiant-0.8.1/vendor/rack-cache/lib/rack/cache/context.rb:161:in
>>  
>> `lookup'                              
>>
>> /usr/local/jruby-1.4.0/lib/ruby/gems/1.8/gems/radiant-0.8.1/vendor/rack-cache/lib/rack/cache/context.rb:64:in
>>  
>> `call!'
>>
>> /usr/local/jruby-1.4.0/lib/ruby/gems/1.8/gems/radiant-0.8.1/vendor/rack-cache/lib/rack/cache/context.rb:50:in
>>  
>> `call'                                 
>>
>> /usr/local/jruby-1.4.0/lib/ruby/gems/1.8/gems/rack-1.0.1/lib/rack/head.rb 
>> :9:in `call'                                                               
>>
>> /usr/local/jruby-1.4.0/lib/ruby/gems/1.8/gems/rack-1.0.1/lib/rack/methodoverride.rb:24:in
>>  
>> `call'                                                     
>>
>> /usr/local/jruby-1.4.0/lib/ruby/gems/1.8/gems/radiant-0.8.1/vendor/rails/actionpack/lib/action_controller/params_parser.rb:15:in
>>  
>> `call'              
>>
>> /usr/local/jruby-1.4.0/lib/ruby/gems/1.8/gems/radiant-0.8.1/vendor/rails/actionpack/lib/action_controller/session/cookie_store.rb:93:in
>>  
>> `call'       
>>
>> /usr/local/jruby-1.4.0/lib/ruby/gems/1.8/gems/radiant-0.8.1/vendor/rails/actionpack/lib/action_controller/failsafe.rb:26:in
>>  
>> `call'                   
>>
>> /usr/local/jruby-1.4.0/lib/ruby/gems/1.8/gems/rack-1.0.1/lib/rack/lock.rb:11:in
>>  
>> `call'                                                               
>>
>> /usr/local/jruby-1.4.0/lib/ruby/gems/1.8/gems/radiant-0.8.1/vendor/rails/actionpack/lib/action_controller/dispatcher.rb:114:in
>>  
>> `call'                
>>
>> /usr/local/jruby-1.4.0/lib/ruby/gems/1.8/gems/radiant-0.8.1/vendor/rails/actionpack/lib/action_controller/reloader.rb:34:in
>>  
>> `run'                    
>>
>> /usr/local/jruby-1.4.0/lib/ruby/gems/1.8/gems/radiant-0.8.1/vendor/rails/actionpack/lib/action_controller/dispatcher.rb:108:in
>>  
>> `call'                
>>
>> /usr/local/jruby-1.4.0/lib/ruby/gems/1.8/gems/radiant-0.8.1/vendor/rails/railties/lib/rails/rack/static.rb:31:in
>>  
>> `call'                              
>>
>> /usr/local/jruby-1.4.0/lib/ruby/gems/1.8/gems/rack-1.0.1/lib/rack/urlmap.rb:48:in
>>  
>> `call'                                                             
>>
>> /usr/local/jruby-1.4.0/lib/ruby/gems/1.8/gems/rack-1.0.1/lib/rack/urlmap.rb:40:in
>>  
>> `each'                                                             
>>
>> /usr/local/jruby-1.4.0/lib/ruby/gems/1.8/gems/rack-1.0.1/lib/rack/urlmap.rb:40:in
>>  
>> `call'                                                             
>>
>> /usr/local/jruby-1.4.0/lib/ruby/gems/1.8/gems/radiant-0.8.1/vendor/rails/railties/lib/rails/rack/log_tailer.rb:17:in
>>  
>> `call'                          
>>
>> /usr/local/jruby-1.4.0/lib/ruby/gems/1.8/gems/rack-1.0.1/lib/rack/content_length.rb:13:in
>>  
>> `call'                                                     
>>
>> /usr/local/jruby-1.4.0/lib/ruby/gems/1.8/gems/rack-1.0.1/lib/rack/handler/webrick.rb:50:in
>>  
>> `service'                                                 
>>    /usr/local/jruby-1.4.0/lib/ruby/1.8/webrick/httpserver.rb:104:in 
>> `service'                                                                    
>>         
>>
>>    /usr/local/jruby-1.4.0/lib/ruby/1.8/webrick/httpserver.rb:65:in 
>> `run'   
>>    /usr/local/jruby-1.4.0/lib/ruby/1.8/webrick/server.rb:173:in 
>> `start_thread'                                                               
>>             
>>
>>    /usr/local/jruby-1.4.0/lib/ruby/1.8/webrick/server.rb:162:in 
>> `start'    
>>    /usr/local/jruby-1.4.0/lib/ruby/1.8/webrick/server.rb:162:in 
>> `start_thread'                                                               
>>             
>>
>>    /usr/local/jruby-1.4.0/lib/ruby/1.8/webrick/server.rb:95:in 
>> `start'     
>>    /usr/local/jruby-1.4.0/lib/ruby/1.8/webrick/server.rb:92:in 
>> `each'      
>>    /usr/local/jruby-1.4.0/lib/ruby/1.8/webrick/server.rb:92:in 
>> `start'     
>>    /usr/local/jruby-1.4.0/lib/ruby/1.8/webrick/server.rb:23:in 
>> `start'     
>>    /usr/local/jruby-1.4.0/lib/ruby/1.8/webrick/server.rb:82:in 
>> `start'     
>>
>> /usr/local/jruby-1.4.0/lib/ruby/gems/1.8/gems/rack-1.0.1/lib/rack/handler/webrick.rb:14:in
>>  
>> `run'                                                     
>>
>> /usr/local/jruby-1.4.0/lib/ruby/gems/1.8/gems/radiant-0.8.1/vendor/rails/railties/lib/commands/server.rb:111
>>                                           
>>
>>
>> /usr/local/jruby-1.4.0/lib/ruby/gems/1.8/gems/radiant-0.8.1/vendor/rails/railties/lib/commands/server.rb:31:in
>>  
>> `require'                             
>>
>> /usr/local/jruby-1.4.0/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in
>>  
>> `require'    
>>
>> I can't tell from the trace which file it is looking for.  I can tell 
>> you that I suspect a DB issue since I had to make some changes to the 
>> activerecord-jdbc configuration file for this particular DB (DB2/400). 
>>
>> If I use the /admin/welcome path I get a login but when I take the 
>> option to view the site I get the same error. The web page displays:
>>
>> Application error
>>
>> Change this error message for exceptions thrown outside of an action 
>> (like in Dispatcher setups or broken Ruby code) in public/500.html
>>
>> Any ideas what file/path it is looking for? 
>>
>> Thanks,
>>
>> Pete
>>
>> _______________________________________________
>> Radiant mailing list
>> Post:   Radiant@radiantcms.org
>> Search: http://radiantcms.org/mailing-list/search/
>> Site:   http://lists.radiantcms.org/mailman/listinfo/radiant
>>     
>
> _______________________________________________
> Radiant mailing list
> Post:   Radiant@radiantcms.org
> Search: http://radiantcms.org/mailing-list/search/
> Site:   http://lists.radiantcms.org/mailman/listinfo/radiant
>
>   
_______________________________________________
Radiant mailing list
Post:   Radiant@radiantcms.org
Search: http://radiantcms.org/mailing-list/search/
Site:   http://lists.radiantcms.org/mailman/listinfo/radiant

Reply via email to