2011-07-12 3 views
1

私は何を修正しようとしても、私のアプリケーションでこのエラーが発生し続けます。 "フリーズした配列を変更できません"jRubyエラー - フリーズされた配列を変更することはできません

何が間違っている可能性がありますか?自分のローカルUbuntu(10.04)マシンでTorquebox(1.0.1)のjRuby(1.6.2)アプリを実行しています。あなたが起動時にエラーが出る場合はここでチャンスはあなたが実際に(ABBR_DAYNAMESをredifiningような単純なものでした)初期化子で凍結された配列を再定義しようとしている大きなている、完全なスタックトレース

HTTP Status 500 - 

type Exception report 

message 

description The server encountered an internal error() that prevented it from fulfilling this request. 

exception 

javax.servlet.ServletException: org.jruby.exceptions.RaiseException: (TypeError) can't modify frozen array 
    org.torquebox.rack.core.servlet.RackFilter.doRack(RackFilter.java:118) 
    org.torquebox.rack.core.servlet.RackFilter.doFilter(RackFilter.java:103) 
    org.torquebox.rack.core.servlet.RackFilter.doFilter(RackFilter.java:75) 

root cause 

org.jruby.exceptions.RaiseException: (TypeError) can't modify frozen array 
    org.jruby.RubyArray.concat(org/jruby/RubyArray.java:1450) 
    #<Class:0x1009c9a44>.Plugin(/home/torquebox-1.0.1/jruby/lib/ruby/gems/1.8/gems/railties-3.0.7/lib/rails/plugin.rb:71) 
    org.jruby.RubyKernel.instance_exec(org/jruby/RubyKernel.java:2045) 
    rubyjit.run_7761DFB9328DE427D0E75A527B886E70C475D69F.run(/home/torquebox-1.0.1/jruby/lib/ruby/gems/1.8/gems/railties-3.0.7/lib/rails/initializable.rb:25) 
    #<Class:0x1000dfe45>.run_initializers(/home/torquebox-1.0.1/jruby/lib/ruby/gems/1.8/gems/railties-3.0.7/lib/rails/initializable.rb:50) 
    org.jruby.RubyArray.each(org/jruby/RubyArray.java:1602) 
    Rails::Initializable.run_initializers(/home/torquebox-1.0.1/jruby/lib/ruby/gems/1.8/gems/railties-3.0.7/lib/rails/initializable.rb:49) 
    Rails::Application.initialize!(/home/torquebox-1.0.1/jruby/lib/ruby/gems/1.8/gems/railties-3.0.7/lib/rails/application.rb:134) 
    rubyjit.method_added_79E9152BC344C327B5B6A61AD8A4DB7112D305D2.method_added(classpath:/org/torquebox/rails/core/boot.rb:78) 
    org.jruby.RubyKernel.send(org/jruby/RubyKernel.java:2059) 
    #<Class:0x101305815>.method_missing(/home/torquebox-1.0.1/jruby/lib/ruby/gems/1.8/gems/railties-3.0.7/lib/rails/application.rb:77) 
    #<Class:0x1002cf032>.(root)(vfs:/home/Ruby_Projects/Sample-Torquebox-App/config/environment.rb:5) 
    org.jruby.RubyKernel.require(org/jruby/RubyKernel.java:1038) 
    rubyjit.require_48BC09453A4C02A82A5E47520814DA9EA3718525.require(/home/torquebox-1.0.1/jruby/lib/ruby/gems/1.8/gems/polyglot-0.3.1/lib/polyglot.rb:64) 
    rubyjit.require_3E6CA858403268171F46C45451765CD50640768C.require(/home/torquebox-1.0.1/jruby/lib/ruby/gems/1.8/gems/activesupport-3.0.7/lib/active_support/dependencies.rb:239) 
    rubyjit.load_dependency_04443C3CFAC2D53B173F0FF308908A72BD893CCC.load_dependency(/home/torquebox-1.0.1/jruby/lib/ruby/gems/1.8/gems/activesupport-3.0.7/lib/active_support/dependencies.rb:227) 
    rubyjit.require_3E6CA858403268171F46C45451765CD50640768C.require(/home/torquebox-1.0.1/jruby/lib/ruby/gems/1.8/gems/activesupport-3.0.7/lib/active_support/dependencies.rb:239) 
    #<Class:0x101f38e01>.(root)(vfs:/home/Ruby_Projects/Sample-Torquebox-App/config/environment.rb:6) 
    org.jruby.RubyKernel.instance_eval(org/jruby/RubyKernel.java:2028) 
    Rack::Builder.initialize(/home/torquebox-1.0.1/jruby/lib/ruby/gems/1.8/gems/rack-1.2.3/lib/rack/builder.rb:46) 
    #<Class:0x1002cf032>.(root)(vfs:/home/Ruby_Projects/Sample-Torquebox-App/config.ru:3) 

note The full stack trace of the root cause is available in the JBoss Web/3.0.0-CR1 logs. 
JBoss Web/3.0.0-CR1 
+0

アプリケーションの起動時やリクエストを処理する際に表示されますか? – Martijn

+0

アプリケーションの起動中に取得する – RohanDaxini

答えて

3

です。 MRIの下でアプリケーションを実行できる場合は、これについて冗長な警告が表示されるので、試してみてください。

イニシャライザに何もない場合は、アプリケーションに含まれている宝石かもしれません。宝石を1つずつ取り出して、結果が何であるかを見てください。

+0

環境設定ファイル(environment.rb)が1つしかないため、イニシャライザ(configフォルダ)からすべてを削除したため、再度トルクをかけてアプリケーションを再デプロイしようとしました。これでdatabase.ymlが見つかりませんでしたので、database.ymlを追加しました。もう一度トルクをかけるために再展開し、今回は同じ問題に直面しました。つまり、「凍ったアレイを修正できません」。私はgemファイルからもすべてを削除し、それからただ3.0.7の 'jdbc-mysql'と 'activerecord-jdbc-adapter'を持っています....まだフリーズされた配列と同じエラーです。トルクはmysqlに問題がありますか? – RohanDaxini

+0

Hmm MySQLからJDBC経由ではTorqueboxとうまく動作するはずです。これは奇妙な問題のように思えるので、あなたの質問を+1しました。 – Martijn

+0

私もhello world appを作ってTorqueBoxにデプロイしました。helloworldアプリケーションは正常に動作します。 – RohanDaxini

関連する問題