products forums blog support careers about
  History | Log In     View a printable version of the current page.  
Issue Details (XML | Word | Printable)

Key: ROR-415
Type: Bug Bug
Status: Resolved Resolved
Resolution: Fixed
Priority: Critical Critical
Assignee: Chris Williams
Reporter: Wayne Stidolph
Votes: 0
Watchers: 0
Operations

If you were logged in you would be able to see more operations.
Aptana RadRails

Eclipse stack overflow in RDT - "Unexpected runtime error while computing a text hover"

Created: 01/Feb/08 05:01 PM   Updated: 05/Feb/08 02:02 PM
Component/s: Rails Plugins
Affects Version/s: 1.0.0
Fix Version/s: 1.0.0

Environment: Eclipse 3.3, Sun java 1.6.0_03, Ruby 1.8.6 p111

Importance: Major
Studio Install Type: Eclipse Plugin
Operating System: Fedora
Relevant Browser: Firefox
Participants: Chris Williams and Wayne Stidolph


 Description  « Hide
using resource_controller plugin, created simple controller as at http://www.infoq.com/news/2008/01/rails-resource-controller. Tried to open declaration of "create.wants", crashed Eclipse; here's the tail of the .log:

!ENTRY org.rubypeople.rdt.launching 1 -1 2008-02-01 09:17:30.223
!MESSAGE Starting: /usr/bin/ruby -I /home/wstidolph/Tools/eclipse/plugins/org.rubypeople.rdt.launching_0.9.9.200801302313NGT/
ruby/flush -rrdt_stream_sync.rb – /home/wstidolph/Tools/eclipse/plugins/org.rubypeople.rdt.launching_0.9.9.200801302313NGT/r
uby/fri -L Autotest::Pretty#close

!ENTRY org.eclipse.jface.text 4 0 2008-02-01 13:47:47.162
!MESSAGE Unexpected runtime error while computing a text hover
!STACK 0
java.lang.NullPointerException
at org.rubypeople.rdt.internal.ti.DefaultTypeInferrer.tryDVarNode(DefaultTypeInferrer.java:164)
at org.rubypeople.rdt.internal.ti.DefaultTypeInferrer.infer(DefaultTypeInferrer.java:106)
at org.rubypeople.rdt.internal.ti.DefaultTypeInferrer.infer(DefaultTypeInferrer.java:83)
at org.rubypeople.rdt.internal.ti.DefaultTypeInferrer.tryDVarNode(DefaultTypeInferrer.java:168)
at org.rubypeople.rdt.internal.ti.DefaultTypeInferrer.infer(DefaultTypeInferrer.java:106)
at org.rubypeople.rdt.internal.ti.DefaultTypeInferrer.infer(DefaultTypeInferrer.java:83)
at org.rubypeople.rdt.internal.ti.DefaultTypeInferrer.tryDVarNode(DefaultTypeInferrer.java:168)
at org.rubypeople.rdt.internal.ti.DefaultTypeInferrer.infer(DefaultTypeInferrer.java:106)
at org.rubypeople.rdt.internal.ti.DefaultTypeInferrer.infer(DefaultTypeInferrer.java:83)
at org.rubypeople.rdt.internal.ti.DefaultTypeInferrer.tryDVarNode(DefaultTypeInferrer.java:168)
at org.rubypeople.rdt.internal.ti.DefaultTypeInferrer.infer(DefaultTypeInferrer.java:106)
at org.rubypeople.rdt.internal.ti.DefaultTypeInferrer.infer(DefaultTypeInferrer.java:83)
(repeats l68/106/83 many times, then)
at org.rubypeople.rdt.internal.ti.DefaultTypeInferrer.tryDVarNode(DefaultTypeInferrer.java:168)
at org.rubypeople.rdt.internal.ti.DefaultTypeInferrer.infer(DefaultTypeInferrer.java:106)
at org.rubypeople.rdt.internal.ti.DefaultTypeInferrer.infer(DefaultTypeInferrer.java:126)
at org.rubypeople.rdt.internal.ti.DefaultTypeInferrer.infer(DefaultTypeInferrer.java:83)
at org.rubypeople.rdt.internal.codeassist.SelectionEngine.getReceiver(SelectionEngine.java:332)
at org.rubypeople.rdt.internal.codeassist.SelectionEngine.select(SelectionEngine.java:244)
at org.rubypeople.rdt.internal.core.Openable.codeSelect(Openable.java:382)
at org.rubypeople.rdt.internal.core.RubyScript.codeSelect(RubyScript.java:684)
at org.rubypeople.rdt.internal.core.RubyScript.codeSelect(RubyScript.java:678)
at org.rubypeople.rdt.internal.ui.text.ruby.hover.AbstractRubyEditorTextHover.getHoverInfo(AbstractRubyEditorTextHove
r.java:137)
at org.rubypeople.rdt.internal.ui.text.ruby.hover.BestMatchHover.getHoverInfo(BestMatchHover.java:99)
at org.rubypeople.rdt.internal.ui.text.ruby.hover.RubyEditorTextHoverProxy.getHoverInfo(RubyEditorTextHoverProxy.java
:67)
at org.eclipse.jface.text.TextViewerHoverManager$4.run(TextViewerHoverManager.java:165)

!ENTRY org.eclipse.ui 4 0 2008-02-01 13:47:58.945
!MESSAGE Unhandled event loop exception
!STACK 0
java.lang.StackOverflowError
at java.util.AbstractList$Itr.next(AbstractList.java:345)
at org.rubypeople.rdt.internal.core.parser.InOrderVisitor.visitIter(InOrderVisitor.java:199)
at org.rubypeople.rdt.internal.core.parser.InOrderVisitor.visitArrayNode(InOrderVisitor.java:190)
at org.jruby.ast.ArrayNode.accept(ArrayNode.java:61)
at org.jruby.ast.visitor.AbstractVisitor.acceptNode(AbstractVisitor.java:149)
at org.rubypeople.rdt.internal.core.parser.InOrderVisitor.visitCallNode(InOrderVisitor.java:330)
at org.jruby.ast.CallNode.accept(CallNode.java:71)
at org.jruby.ast.visitor.AbstractVisitor.acceptNode(AbstractVisitor.java:149)
at org.rubypeople.rdt.internal.core.parser.InOrderVisitor.visitNewlineNode(InOrderVisitor.java:758)
at org.jruby.ast.NewlineNode.accept(NewlineNode.java:66)
at org.jruby.ast.visitor.AbstractVisitor.acceptNode(AbstractVisitor.java:149)
at org.rubypeople.rdt.internal.core.parser.InOrderVisitor.visitIterNode(InOrderVisitor.java:667)
at org.jruby.ast.IterNode.accept(IterNode.java:72)
at org.jruby.ast.visitor.AbstractVisitor.acceptNode(AbstractVisitor.java:149)
at org.rubypeople.rdt.internal.core.parser.InOrderVisitor.visitFCallNode(InOrderVisitor.java:534)
at org.jruby.ast.FCallNode.accept(FCallNode.java:67)
at org.jruby.ast.visitor.AbstractVisitor.acceptNode(AbstractVisitor.java:149)
at org.rubypeople.rdt.internal.core.parser.InOrderVisitor.visitNewlineNode(InOrderVisitor.java:758)
at org.jruby.ast.NewlineNode.accept(NewlineNode.java:66)
at org.jruby.ast.visitor.AbstractVisitor.acceptNode(AbstractVisitor.java:149)
at org.rubypeople.rdt.internal.core.parser.InOrderVisitor.visitIter(InOrderVisitor.java:199)
at org.rubypeople.rdt.internal.core.parser.InOrderVisitor.visitBlockNode(InOrderVisitor.java:252)
at org.jruby.ast.BlockNode.accept(BlockNode.java:54)
at org.jruby.ast.visitor.AbstractVisitor.acceptNode(AbstractVisitor.java:149)
at org.rubypeople.rdt.internal.core.parser.InOrderVisitor.visitIterNode(InOrderVisitor.java:667)
at org.jruby.ast.IterNode.accept(IterNode.java:72)
at org.jruby.ast.visitor.AbstractVisitor.acceptNode(AbstractVisitor.java:149)
at org.rubypeople.rdt.internal.core.parser.InOrderVisitor.visitCallNode(InOrderVisitor.java:331)
at org.jruby.ast.CallNode.accept(CallNode.java:71)
at org.jruby.ast.visitor.AbstractVisitor.acceptNode(AbstractVisitor.java:149)
at org.rubypeople.rdt.internal.core.parser.InOrderVisitor.visitInstAsgnNode(InOrderVisitor.java:632)
at org.jruby.ast.InstAsgnNode.accept(InstAsgnNode.java:63)
at org.jruby.ast.visitor.AbstractVisitor.acceptNode(AbstractVisitor.java:149)
at org.rubypeople.rdt.internal.core.parser.InOrderVisitor.visitNewlineNode(InOrderVisitor.java:758)
at org.jruby.ast.NewlineNode.accept(NewlineNode.java:66)
at org.jruby.ast.visitor.AbstractVisitor.acceptNode(AbstractVisitor.java:149)
at org.rubypeople.rdt.internal.core.parser.InOrderVisitor.visitIter(InOrderVisitor.java:199)
at org.rubypeople.rdt.internal.core.parser.InOrderVisitor.visitBlockNode(InOrderVisitor.java:252)
at org.jruby.ast.BlockNode.accept(BlockNode.java:54)
at org.jruby.ast.visitor.AbstractVisitor.acceptNode(AbstractVisitor.java:149)
at org.rubypeople.rdt.internal.core.parser.InOrderVisitor.visitIterNode(InOrderVisitor.java:667)
at org.jruby.ast.IterNode.accept(IterNode.java:72)
at org.jruby.ast.visitor.AbstractVisitor.acceptNode(AbstractVisitor.java:149)
at org.rubypeople.rdt.internal.core.parser.InOrderVisitor.visitFCallNode(InOrderVisitor.java:534)
at org.jruby.ast.FCallNode.accept(FCallNode.java:67)
at org.jruby.ast.visitor.AbstractVisitor.acceptNode(AbstractVisitor.java:149)
at org.rubypeople.rdt.internal.core.parser.InOrderVisitor.visitNewlineNode(InOrderVisitor.java:758)
at org.jruby.ast.NewlineNode.accept(NewlineNode.java:66)
at org.jruby.ast.visitor.AbstractVisitor.acceptNode(AbstractVisitor.java:149)
at org.rubypeople.rdt.internal.core.parser.InOrderVisitor.visitIter(InOrderVisitor.java:199)
at org.rubypeople.rdt.internal.core.parser.InOrderVisitor.visitBlockNode(InOrderVisitor.java:252)
at org.jruby.ast.BlockNode.accept(BlockNode.java:54)
at org.jruby.ast.visitor.AbstractVisitor.acceptNode(AbstractVisitor.java:149)
at org.rubypeople.rdt.internal.core.parser.InOrderVisitor.visitIterNode(InOrderVisitor.java:667)
at org.jruby.ast.IterNode.accept(IterNode.java:72)
at org.jruby.ast.visitor.AbstractVisitor.acceptNode(AbstractVisitor.java:149)
at org.rubypeople.rdt.internal.core.parser.InOrderVisitor.visitFCallNode(InOrderVisitor.java:534)
at org.jruby.ast.FCallNode.accept(FCallNode.java:67)
at org.jruby.ast.visitor.AbstractVisitor.acceptNode(AbstractVisitor.java:149)
at org.rubypeople.rdt.internal.core.parser.InOrderVisitor.visitNewlineNode(InOrderVisitor.java:758)
at org.jruby.ast.NewlineNode.accept(NewlineNode.java:66)
at org.jruby.ast.visitor.AbstractVisitor.acceptNode(AbstractVisitor.java:149)
at org.rubypeople.rdt.internal.core.parser.InOrderVisitor.visitIter(InOrderVisitor.java:199)
at org.rubypeople.rdt.internal.core.parser.InOrderVisitor.visitBlockNode(InOrderVisitor.java:252)
at org.jruby.ast.BlockNode.accept(BlockNode.java:54)
at org.jruby.ast.visitor.AbstractVisitor.acceptNode(AbstractVisitor.java:149)
at org.rubypeople.rdt.internal.core.parser.InOrderVisitor.visitIterNode(InOrderVisitor.java:667)
at org.jruby.ast.IterNode.accept(IterNode.java:72)
at org.jruby.ast.visitor.AbstractVisitor.acceptNode(AbstractVisitor.java:149)
at org.rubypeople.rdt.internal.core.parser.InOrderVisitor.visitFCallNode(InOrderVisitor.java:534)
at org.jruby.ast.FCallNode.accept(FCallNode.java:67)
at org.jruby.ast.visitor.AbstractVisitor.acceptNode(AbstractVisitor.java:149)
at org.rubypeople.rdt.internal.core.parser.InOrderVisitor.visitNewlineNode(InOrderVisitor.java:758)
at org.jruby.ast.NewlineNode.accept(NewlineNode.java:66)
at org.jruby.ast.visitor.AbstractVisitor.acceptNode(AbstractVisitor.java:149)
at org.rubypeople.rdt.internal.core.parser.InOrderVisitor.visitIter(InOrderVisitor.java:199)
at org.rubypeople.rdt.internal.core.parser.InOrderVisitor.visitBlockNode(InOrderVisitor.java:252)
at org.jruby.ast.BlockNode.accept(BlockNode.java:54)
at org.jruby.ast.visitor.AbstractVisitor.acceptNode(AbstractVisitor.java:149)
at org.rubypeople.rdt.internal.core.parser.InOrderVisitor.visitIterNode(InOrderVisitor.java:667)
at org.jruby.ast.IterNode.accept(IterNode.java:72)
at org.jruby.ast.visitor.AbstractVisitor.acceptNode(AbstractVisitor.java:149)
at org.rubypeople.rdt.internal.core.parser.InOrderVisitor.visitFCallNode(InOrderVisitor.java:534)
at org.jruby.ast.FCallNode.accept(FCallNode.java:67)
at org.jruby.ast.visitor.AbstractVisitor.acceptNode(AbstractVisitor.java:149)
at org.rubypeople.rdt.internal.core.parser.InOrderVisitor.visitNewlineNode(InOrderVisitor.java:758)
at org.jruby.ast.NewlineNode.accept(NewlineNode.java:66)
at org.jruby.ast.visitor.AbstractVisitor.acceptNode(AbstractVisitor.java:149)
at org.rubypeople.rdt.internal.core.parser.InOrderVisitor.visitIter(InOrderVisitor.java:199)
at org.rubypeople.rdt.internal.core.parser.InOrderVisitor.visitBlockNode(InOrderVisitor.java:252)
at org.jruby.ast.BlockNode.accept(BlockNode.java:54)
at org.jruby.ast.visitor.AbstractVisitor.acceptNode(AbstractVisitor.java:149)
at org.rubypeople.rdt.internal.core.parser.InOrderVisitor.visitModuleNode(InOrderVisitor.java:747)
at org.jruby.ast.ModuleNode.accept(ModuleNode.java:61)
at org.jruby.ast.visitor.AbstractVisitor.acceptNode(AbstractVisitor.java:149)
at org.rubypeople.rdt.internal.core.parser.InOrderVisitor.visitNewlineNode(InOrderVisitor.java:758)
at org.jruby.ast.NewlineNode.accept(NewlineNode.java:66)
at org.jruby.ast.visitor.AbstractVisitor.acceptNode(AbstractVisitor.java:149)
at org.rubypeople.rdt.internal.core.parser.InOrderVisitor.visitModuleNode(InOrderVisitor.java:747)
at org.jruby.ast.ModuleNode.accept(ModuleNode.java:61)
at org.jruby.ast.visitor.AbstractVisitor.acceptNode(AbstractVisitor.java:149)
at org.rubypeople.rdt.internal.core.parser.InOrderVisitor.visitNewlineNode(InOrderVisitor.java:758)
at org.jruby.ast.NewlineNode.accept(NewlineNode.java:66)
at org.jruby.ast.visitor.AbstractVisitor.acceptNode(AbstractVisitor.java:149)
at org.rubypeople.rdt.internal.core.parser.InOrderVisitor.visitIter(InOrderVisitor.java:199)
at org.rubypeople.rdt.internal.core.parser.InOrderVisitor.visitBlockNode(InOrderVisitor.java:252)
at org.jruby.ast.BlockNode.accept(BlockNode.java:54)
at org.jruby.ast.visitor.AbstractVisitor.acceptNode(AbstractVisitor.java:149)
at org.rubypeople.rdt.internal.core.parser.InOrderVisitor.visitRootNode(InOrderVisitor.java:1155)
at org.jruby.ast.RootNode.accept(RootNode.java:94)
at org.rubypeople.rdt.internal.ti.util.OffsetNodeLocator.getNodeAtOffset(OffsetNodeLocator.java:49)
at org.rubypeople.rdt.internal.ti.DefaultTypeInferrer.tryDVarNode(DefaultTypeInferrer.java:156)
at org.rubypeople.rdt.internal.ti.DefaultTypeInferrer.infer(DefaultTypeInferrer.java:106)
at org.rubypeople.rdt.internal.ti.DefaultTypeInferrer.infer(DefaultTypeInferrer.java:83)
at org.rubypeople.rdt.internal.ti.DefaultTypeInferrer.tryDVarNode(DefaultTypeInferrer.java:168)
at org.rubypeople.rdt.internal.ti.DefaultTypeInferrer.infer(DefaultTypeInferrer.java:106)
at org.rubypeople.rdt.internal.ti.DefaultTypeInferrer.infer(DefaultTypeInferrer.java:83)
at org.rubypeople.rdt.internal.ti.DefaultTypeInferrer.tryDVarNode(DefaultTypeInferrer.java:168)
at org.rubypeople.rdt.internal.ti.DefaultTypeInferrer.infer(DefaultTypeInferrer.java:106)
at org.rubypeople.rdt.internal.ti.DefaultTypeInferrer.infer(DefaultTypeInferrer.java:83)
{repeats line 168/106/83 many times until end of .log)



 All   Comments   Change History      Sort Order:
Wayne Stidolph - 01/Feb/08 05:29 PM
Still happens after update to new nightlies:

RadRails 0.9.9.200801311633NGT
Studio Pro 1.1.10.200801291522

To be specific, here's the class that I'm starting from:

class SpecTestersController < ResourceController::Base

index.wants.xml { render :xml => @standards }
[new, show].each do |action|
action.wants.xml { render :xml => @standard }
end
create.wants.xml { render :xml => @standard, :status => :created, :location => @standard }
[update, destroy].each do |action|
action.wants.xml { head :ok }
end
[create_fails, update_fails].each do |action|
action.wants.xml { render :xml => @standard.errors, :status => :unprocessable_entity }
end
end