首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jRuby-1.6.5: NoMethodError未定义方法“[]”用于nil:NilClass

jRuby-1.6.5: NoMethodError未定义方法“[]”用于nil:NilClass
EN

Stack Overflow用户
提问于 2011-12-19 23:59:45
回答 1查看 1K关注 0票数 1

我的环境:

代码语言:javascript
复制
jRuby-1.6.5
Rails 2.3.8

宝石:

(2.3.8)

  • actionpack (2.3.8)

  • activerecord (2.3.8)

  • activerecord-jdbc-adapter (1.1.1)

  • activerecord-jdbcpostgresql-adapter (0.8.2)

  • activeresource (2.3.8)

  • activesupport (2.3.8)

  • arel (2.2.1)

  • bouncy-castle-java (1.5.0145 )2) (3.0.0)

  • bundler (1.0.21)

  • capybara (0.4.1.2)

  • celerity (0.8.9)

  • childprocess (0.1.8)

  • columnize (0.3.2)

  • configuration (1.2.0)

  • cucumber (0.10.0)

  • cucumber-rails (0.3.2)

  • culerity

  • builder(0.2.15)

  • database_cleaner (0.6.6)

  • diff-lcs (1.1.2)

  • factory_girl (1.3.3)

  • fastercsv (1.5.4)

  • ffi (1.0.7)

  • gem_plugin (0.2.3)

  • gherkin (2.3.5)

  • jdbc-postgres (8.4.702)

  • jruby-jars (1.5.5)

  • jruby-openssl (0.7.3)

  • json (1.4.6)

  • json_pure (1.5.1)

  • launchy (0.4.0)

  • mime-types (1.16)

  • nokogiri (1.4.4.2)

  • rack (1.1.0)

  • rack-test (0.5.7)

  • rails (2.3.8) (0.9.9)

  • rspec (1.3.1)

  • rspec-rails (1.3.3)

  • ruby-debug (0.10.4)

  • ruby-debug-base (0.10.4)

  • rubyzip (0.9.4)

  • selenium-client (1.2.18)

  • selenium-webdriver

  • rake (0.8.7)

  • rcov (0.1.(4) (0.0.1)

  • term-ansicolor (1.0.5)

  • weakling (0.0.4)

  • xpath (0.1.3)

使用jRuby-1.6.5和gem,得到了以下问题:

从应用程序的根执行度量。

在解析app和lib文件夹中的所有ruby文件后,命令行输出以下内容:

代码语言:javascript
复制
NoMethodError: undefined method `[]' for nil:NilClass
   initialize at c:/jruby-1.6.5/lib/ruby/gems/1.8/gems/metric_fu-2.1.1/lib/generators/saikuro.rb:232
   get_elements at c:/jruby-1.6.5/lib/ruby/gems/1.8/gems/metric_fu-2.1.1/lib/generators/saikuro.rb:169
   initialize at c:/jruby-1.6.5/lib/ruby/gems/1.8/gems/metric_fu-2.1.1/lib/generators/saikuro.rb:130
   assemble_files at c:/jruby-1.6.5/lib/ruby/gems/1.8/gems/metric_fu-2.1.1/lib/generators/saikuro.rb:111
   each at org/jruby/RubyArray.java:1612assemble_files at c:/jruby-1.6.5/lib/ruby/gems/1.8/gems/metric_fu-2.1.1/lib/generators/saikuro.rb:109
   analyze at c:/jruby-1.6.5/lib/ruby/gems/1.8/gems/metric_fu-2.1.1/lib/generators/saikuro.rb:27
   send at org/jruby/RubyKernel.java:2093
   generate_report at c:/jruby-1.6.5/lib/ruby/gems/1.8/gems/metric_fu-2.1.1/lib/base/generator.rb:130
   each at org/jruby/RubyArray.java:1612
   generate_report at c:/jruby-1.6.5/lib/ruby/gems/1.8/gems/metric_fu-2.1.1/lib/base/generator.rb:128
   add at c:/jruby-1.6.5/lib/ruby/gems/1.8/gems/metric_fu-2.1.1/lib/base/report.rb:60
   run_metric_fu at c:/jruby-1.6.5/lib/ruby/gems/1.8/gems/metrical-0.0.7/lib/metrical.rb:51
   each at org/jruby/RubyArray.java:1612
   run_metric_fu at c:/jruby-1.6.5/lib/ruby/gems/1.8/gems/metrical-0.0.7/lib/metrical.rb:51
   run at c:/jruby-1.6.5/lib/ruby/gems/1.8/gems/metrical-0.0.7/lib/metrical.rb:18
   (root) at c:/jruby-1.6.5/lib/ruby/gems/1.8/gems/metrical-0.0.7/bin/metrical:4
   load at org/jruby/RubyKernel.java:1063
   (root) at c:\jruby-1.6.5\bin\metrical:19

问题在哪里,我不知道,只是想知道如何绕过它,或者可能避免它,因为这是相当恼人的,因为我的团队看不到给定代码的度量标准。

提前谢谢你。

EN

回答 1

Stack Overflow用户

发布于 2012-01-07 04:24:30

让我们看一看堆栈跟踪。它告诉你很多。

在堆栈的顶部,您可以看到saikuro.rb:232。以下是:

https://github.com/jscruggs/metric_fu/blob/4c12cfa9cf20e38d4d1e3e01455613ff48563ad8/lib/generators/saikuro.rb#L232

[]的方法调用只有一个,所以假设line.match(TYPE_REGEX)nil是安全的。为什么会这样呢?嗯,我们不知道。但是,从堆栈的角度来看,我们相当肯定是在阅读@file_handle for Saikuro::SFile时遇到了这种情况。我们没有找到与TYPE_REGEX=/Type:(.*) Name/匹配的行。

知道Saikuro::SFile.new得到的参数将是非常有指导意义的。尝试找到它,并检查文件内容。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8569198

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档