java.lang.invoke.MethodHandleStatics.newInternalError(MethodHandleStatics.java:97)

java.lang.invoke.MethodHandleStatics.newInternalError(MethodHandleStatics.java:97),java,ruby-on-rails,rbenv,Java,Ruby On Rails,Rbenv,我在本地rbenv webrick服务器上运行RAILS应用程序,我经常遇到此错误,服务器停止运行,请通知我 java.lang.invoke.MethodHandleStatics.newInternalError(MethodHandleStatics.java:97) Exception in thread "RubyThread-3337: /usr/local/rbenv/versions/jruby-1.7.3/lib/ruby/1.9/webrick/server.rb:

我在本地rbenv webrick服务器上运行RAILS应用程序,我经常遇到此错误,服务器停止运行,请通知我

 java.lang.invoke.MethodHandleStatics.newInternalError(MethodHandleStatics.java:97)
    Exception in thread "RubyThread-3337: /usr/local/rbenv/versions/jruby-1.7.3/lib/ruby/1.9/webrick/server.rb:103" java.lang.InternalError: identity=Lambda(a0:L,a1:L,a2:L)=>{
        t3:L=Species_L.argL0(a0:L);
        t4:L=ValueConversions.identity(t3:L);t4:L}
        at java.lang.invoke.MethodHandleStatics.newInternalError(MethodHandleStatics.java:97)
        at java.lang.invoke.LambdaForm.compileToBytecode(LambdaForm.java:460)
        at java.lang.invoke.LambdaForm.checkInvocationCounter(LambdaForm.java:634)
        at rubyjit.WEBrick::GenericServer$$start_thread_7B70F846F4B96CB34E341FFAE1CC88FEEAA8EA95520186210.chained_1_rescue_1$RUBY$SYNTHETIC__file__(/usr/local/rbenv/versions/jruby-1.7.3/lib/ruby/1.9/webrick/server.rb:191)
        at rubyjit.WEBrick::GenericServer$$start_thread_7B70F846F4B96CB34E341FFAE1CC88FEEAA8EA95520186210.chained_0_ensure_1$RUBY$__ensure__(/usr/local/rbenv/versions/jruby-1.7.3/lib/ruby/1.9/webrick/server.rb)
        at rubyjit.WEBrick::GenericServer$$start_thread_7B70F846F4B96CB34E341FFAE1CC88FEEAA8EA95520186210.block_0$RUBY$__file__(/usr/local/rbenv/versions/jruby-1.7.3/lib/ruby/1.9/webrick/server.rb:181)
        at rubyjit$WEBrick::GenericServer$$start_thread_7B70F846F4B96CB34E341FFAE1CC88FEEAA8EA95520186210$block_0$RUBY$__file__.call(rubyjit$WEBrick::GenericServer$$start_thread_7B70F846F4B96CB34E341FFAE1CC88FEEAA8EA95520186210$block_0$RUBY$__file__)
        at org.jruby.runtime.CompiledBlock19.yield(CompiledBlock19.java:163)
        at org.jruby.runtime.CompiledBlock19.call(CompiledBlock19.java:91)
        at org.jruby.runtime.Block.call(Block.java:89)
        at org.jruby.RubyProc.call(RubyProc.java:261)
        at org.jruby.RubyProc.call(RubyProc.java:213)
        at org.jruby.internal.runtime.RubyRunnable.run(RubyRunnable.java:98)
        at java.lang.Thread.run(Thread.java:744)
    Caused by: java.lang.OutOfMemoryError: PermGen space
    [2014-04-19 16:37:20] ERROR Java::JavaLang::InternalError: identity=Lambda(a0:L,a1:L,a2:L)=>{
        t3:L=Species_L.argL0(a0:L);
        t4:L=ValueConversions.identity(t3:L);t4:L}
        java.lang.invoke.MethodHandleStatics.newInternalError(MethodHandleStatics.java:97)
    [2014-04-19 16:37:21] ERROR Java::JavaLang::InternalError: guard=Lambda(a0:L,a1:L,a2:L)=>{
        t3:I=MethodHandle(AbstractScript,ThreadContext)boolean(a1:L,a2:L);
        t4:L=MethodHandleImpl.selectAlternative(t3:I,(MethodHandle(AbstractScript,ThreadContext)IRubyObject),(MethodHandle(AbstractScript,ThreadContext)IRubyObject));
原因:java.lang.OutOfMemoryError:PermGen空间

permgen是内存中存储加载的类的位置,在本例中,显然是存储lambda的位置。默认情况下,它的大小不会增长。您可以将以下启动选项传递给Java,或将其放入Java_OPTS环境变量中:

-XX:+CMSClassUnloadingEnabled -XX:+CMSPermGenSweepingEnabled
允许它卸载类并尝试收集永久空间。当然,如果一次需要加载很多类,可以使用

-XX:MaxPermSize=SIZE

128M是一个合理的值,尽管我无法知道您的应用程序的类和lambda有多重。

@ramamoorthy_villi您需要提供更多关于它不工作的详细信息。问题推迟了吗?使用了多少堆/非堆?