Bug 224304 - java.lang.ClassCastException: during completion for Ruby code
Summary: java.lang.ClassCastException: during completion for Ruby code
Status: RESOLVED FIXED
Alias: None
Product: DLTK
Classification: Technology
Component: Ruby (show other bugs)
Version: 0.95   Edit
Hardware: PC Linux
: P3 normal (vote)
Target Milestone: ---   Edit
Assignee: dltk.ruby-inbox CLA
QA Contact:
URL:
Whiteboard:
Keywords: contributed
Depends on:
Blocks:
 
Reported: 2008-03-27 03:30 EDT by Andrei Sobolev CLA
Modified: 2010-06-11 07:15 EDT (History)
1 user (show)

See Also:


Attachments
patch (2.15 KB, patch)
2008-05-15 09:48 EDT, Alex Panchenko CLA
alex.panchenko: iplog+
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Andrei Sobolev CLA 2008-03-27 03:30:08 EDT
ClassCasetException happen during completion for following ruby code:

Range.yaml_new.

NPE:
java.lang.ClassCastException: org.eclipse.dltk.ti.goals.ExpressionTypeGoal cannot be cast to org.eclipse.dltk.ruby.typeinference.goals.ColonExpressionGoal
	at org.eclipse.dltk.ruby.typeinference.evaluators.ColonExpressionEvaluator.getTypedGoal(ColonExpressionEvaluator.java:43)
	at org.eclipse.dltk.ruby.typeinference.evaluators.ColonExpressionEvaluator.init(ColonExpressionEvaluator.java:53)
	at org.eclipse.dltk.ti.GoalEngine.evaluateGoal(GoalEngine.java:219)
	at org.eclipse.dltk.ti.DefaultTypeInferencer.evaluateType(DefaultTypeInferencer.java:223)
	at org.eclipse.dltk.ruby.typeinference.RubyTypeInferencer.evaluateType(RubyTypeInferencer.java:55)
	at org.eclipse.dltk.ti.DLTKTypeInferenceEngine.evaluateType(DLTKTypeInferenceEngine.java:129)
	at org.eclipse.dltk.ruby.internal.core.codeassist.RubyCompletionEngine.completeClassMethods(RubyCompletionEngine.java:422)
	at org.eclipse.dltk.ruby.internal.core.codeassist.RubyCompletionEngine.completeCall(RubyCompletionEngine.java:710)
	at org.eclipse.dltk.ruby.internal.core.codeassist.RubyCompletionEngine.complete(RubyCompletionEngine.java:287)
	at org.eclipse.dltk.internal.core.Openable.codeComplete(Openable.java:513)
	at org.eclipse.dltk.internal.core.SourceModule.codeComplete(SourceModule.java:124)
	at org.eclipse.dltk.internal.core.SourceModule.codeComplete(SourceModule.java:114)
	at org.eclipse.dltk.ui.text.completion.ScriptCompletionProposalComputer.computeScriptCompletionProposals(ScriptCompletionProposalComputer.java:182)
	at org.eclipse.dltk.ui.text.completion.ScriptCompletionProposalComputer.computeCompletionProposals(ScriptCompletionProposalComputer.java:234)
	at org.eclipse.dltk.ui.text.completion.CompletionProposalComputerDescriptor.computeCompletionProposals(CompletionProposalComputerDescriptor.java:330)
	at org.eclipse.dltk.ui.text.completion.CompletionProposalCategory.computeCompletionProposals(CompletionProposalCategory.java:266)
	at org.eclipse.dltk.ui.text.completion.ContentAssistProcessor.collectProposals(ContentAssistProcessor.java:266)
	at org.eclipse.dltk.ui.text.completion.ContentAssistProcessor.computeCompletionProposals(ContentAssistProcessor.java:225)
	at org.eclipse.jface.text.contentassist.ContentAssistant.computeCompletionProposals(ContentAssistant.java:1810)
	at org.eclipse.jface.text.contentassist.CompletionProposalPopup.computeProposals(CompletionProposalPopup.java:538)
	at org.eclipse.jface.text.contentassist.CompletionProposalPopup.access$16(CompletionProposalPopup.java:535)
	at org.eclipse.jface.text.contentassist.CompletionProposalPopup$2.run(CompletionProposalPopup.java:470)
	at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:67)
	at org.eclipse.jface.text.contentassist.CompletionProposalPopup.showProposals(CompletionProposalPopup.java:464)
	at org.eclipse.jface.text.contentassist.ContentAssistant$2.run(ContentAssistant.java:367)
	at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35)
	at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:130)
	at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:3312)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2985)
	at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2392)
	at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2356)
	at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2222)
	at org.eclipse.ui.internal.Workbench$4.run(Workbench.java:474)
	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:288)
	at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:469)
	at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
	at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:106)
	at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:193)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:106)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:76)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:362)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:175)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:564)
	at org.eclipse.equinox.launcher.Main.basicRun(Main.java:504)
	at org.eclipse.equinox.launcher.Main.run(Main.java:1251)
	at org.eclipse.equinox.launcher.Main.main(Main.java:1227)
Comment 1 Alex Panchenko CLA 2008-05-13 06:18:43 EDT
Now the stack trace is changed:

java.lang.ClassCastException: org.eclipse.dltk.ruby.typeinference.MethodContext cannot be cast to org.eclipse.dltk.ti.BasicContext
at org.eclipse.dltk.ruby.typeinference.DefaultRubyEvaluatorFactory.translateGoal(DefaultRubyEvaluatorFactory.java:171)
at org.eclipse.dltk.ruby.typeinference.evaluators.ColonExpressionEvaluator.getTypedGoal(ColonExpressionEvaluator.java:44)
at org.eclipse.dltk.ruby.typeinference.evaluators.ColonExpressionEvaluator.init(ColonExpressionEvaluator.java:53)
at org.eclipse.dltk.ti.GoalEngine.evaluateGoal(GoalEngine.java:219)
at org.eclipse.dltk.ti.DefaultTypeInferencer.evaluateType(DefaultTypeInferencer.java:223)
at org.eclipse.dltk.ruby.typeinference.RubyTypeInferencer.evaluateType(RubyTypeInferencer.java:55)
at org.eclipse.dltk.ti.DLTKTypeInferenceEngine.evaluateType(DLTKTypeInferenceEngine.java:184)
at org.eclipse.dltk.ruby.internal.core.codeassist.RubyCompletionEngine.completeClassMethods(RubyCompletionEngine.java:409)
at org.eclipse.dltk.ruby.internal.core.codeassist.RubyCompletionEngine.completeCall(RubyCompletionEngine.java:703)
at org.eclipse.dltk.ruby.internal.core.codeassist.RubyCompletionEngine.complete(RubyCompletionEngine.java:274)
at org.eclipse.dltk.internal.core.Openable.codeComplete(Openable.java:489)
at org.eclipse.dltk.internal.core.SourceModule.codeComplete(SourceModule.java:122)
at org.eclipse.dltk.internal.core.SourceModule.codeComplete(SourceModule.java:112)
at org.eclipse.dltk.ui.text.completion.ScriptCompletionProposalComputer.computeScriptCompletionProposals(ScriptCompletionProposalComputer.java:182)
at org.eclipse.dltk.ui.text.completion.ScriptCompletionProposalComputer.computeCompletionProposals(ScriptCompletionProposalComputer.java:234)
at org.eclipse.dltk.ui.text.completion.CompletionProposalComputerDescriptor.computeCompletionProposals(CompletionProposalComputerDescriptor.java:330)
at org.eclipse.dltk.ui.text.completion.CompletionProposalCategory.computeCompletionProposals(CompletionProposalCategory.java:266)
at org.eclipse.dltk.ui.text.completion.ContentAssistProcessor.collectProposals(ContentAssistProcessor.java:266)
at org.eclipse.dltk.ui.text.completion.ContentAssistProcessor.computeCompletionProposals(ContentAssistProcessor.java:225)
at org.eclipse.jface.text.contentassist.ContentAssistant.computeCompletionProposals(ContentAssistant.java:1759)
at org.eclipse.jface.text.contentassist.CompletionProposalPopup.computeProposals(CompletionProposalPopup.java:478)
at org.eclipse.jface.text.contentassist.CompletionProposalPopup.access$16(CompletionProposalPopup.java:475)
at org.eclipse.jface.text.contentassist.CompletionProposalPopup$2.run(CompletionProposalPopup.java:410)
at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:67)
at org.eclipse.jface.text.contentassist.CompletionProposalPopup.showProposals(CompletionProposalPopup.java:404)
at org.eclipse.jface.text.contentassist.ContentAssistant.showPossibleCompletions(ContentAssistant.java:1588)
at org.eclipse.dltk.internal.ui.editor.ScriptEditor$AdaptedSourceViewer.doOperation(ScriptEditor.java:372)
at org.eclipse.ui.texteditor.ContentAssistAction$1.run(ContentAssistAction.java:82)
at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:67)
at org.eclipse.ui.texteditor.ContentAssistAction.run(ContentAssistAction.java:80)
at org.eclipse.jface.action.Action.runWithEvent(Action.java:498)
at org.eclipse.ui.commands.ActionHandler.execute(ActionHandler.java:185)
at org.eclipse.ui.internal.handlers.LegacyHandlerWrapper.execute(LegacyHandlerWrapper.java:109)
at org.eclipse.core.commands.Command.executeWithChecks(Command.java:475)
at org.eclipse.core.commands.ParameterizedCommand.executeWithChecks(ParameterizedCommand.java:429)
at org.eclipse.ui.internal.handlers.HandlerService.executeCommand(HandlerService.java:165)
at org.eclipse.ui.internal.keys.WorkbenchKeyboard.executeCommand(WorkbenchKeyboard.java:470)
at org.eclipse.ui.internal.keys.WorkbenchKeyboard.press(WorkbenchKeyboard.java:821)
at org.eclipse.ui.internal.keys.WorkbenchKeyboard.processKeyEvent(WorkbenchKeyboard.java:879)
at org.eclipse.ui.internal.keys.WorkbenchKeyboard.filterKeySequenceBindings(WorkbenchKeyboard.java:568)
at org.eclipse.ui.internal.keys.WorkbenchKeyboard.access$3(WorkbenchKeyboard.java:510)
at org.eclipse.ui.internal.keys.WorkbenchKeyboard$KeyDownFilter.handleEvent(WorkbenchKeyboard.java:126)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:66)
at org.eclipse.swt.widgets.Display.filterEvent(Display.java:1141)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:937)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:962)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:947)
at org.eclipse.swt.widgets.Widget.sendKeyEvent(Widget.java:975)
at org.eclipse.swt.widgets.Widget.sendKeyEvent(Widget.java:971)
at org.eclipse.swt.widgets.Widget.wmChar(Widget.java:1285)
at org.eclipse.swt.widgets.Control.WM_CHAR(Control.java:3772)
at org.eclipse.swt.widgets.Control.windowProc(Control.java:3672)
at org.eclipse.swt.widgets.Canvas.windowProc(Canvas.java:291)
at org.eclipse.swt.widgets.Display.windowProc(Display.java:4351)
at org.eclipse.swt.internal.win32.OS.DispatchMessageW(Native Method)
at org.eclipse.swt.internal.win32.OS.DispatchMessage(OS.java:2265)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3291)
at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2389)
at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2353)
at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2219)
at org.eclipse.ui.internal.Workbench$4.run(Workbench.java:466)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:289)
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:461)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:106)
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:169)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:106)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:76)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:363)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:176)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:508)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:447)
at org.eclipse.equinox.launcher.Main.run(Main.java:1173)
at org.eclipse.equinox.launcher.Main.main(Main.java:1148)
Comment 2 Alex Panchenko CLA 2008-05-15 09:48:25 EDT
Created attachment 100443 [details]
patch

Legal Message: I, Alex Panchenko, declare that I developed attached code from scratch, without referencing any 3rd party materials except material licensed under the EPL. I am authorized by my employer (xored software, Inc.) to make this contribution under the EPL.
Comment 3 Andrei Sobolev CLA 2008-05-16 02:11:53 EDT
Applied.
Comment 4 Andrey Platov CLA 2008-05-26 02:48:39 EDT
bulk change: fixed in 0.95