Debugger code does not handle checked exceptions in many places
I was browsing through the debugger code and I saw there are many places where checked exceptions are not handled. I believe that should not be the case. I've added a few FIXMEs notes in the codebase (ref to commit will be added as a comment), but there are for sure other places in the debugger codebase where we need to handle checked exceptions.
Leave a comment
(In scala-ide:5453d03b3fad8773c12e0bcb6db103b0389d0da6) Debugger code does not handle checked exceptions in many places
I've added a number of FIXMEs notes in the debugger codebase where checked
exceptions are not handled.
Furthermore, I've added a couple of comments that should help better understanding
some of the assumptions we have in the debugger module (this is related to the discussions
that happened in the [PR #219](https://github.com/scala-ide/scala-ide/pull/219))
Re #1001487
Branch: master
I've added a number of FIXMEs notes in the debugger codebase where checked
exceptions are not handled.
Furthermore, I've added a couple of comments that should help better understanding
some of the assumptions we have in the debugger module (this is related to the discussions
that happened in the [PR #219](https://github.com/scala-ide/scala-ide/pull/219))
Re #1001487
Branch: master
on 2013-02-22 14:47 *
By Iulian Dragos
(In scala-ide:a07bd6b388a3da86aebba7de3c236d7ab9b3a619) More robust against VM exceptions.
This is not exhaustive (a handful of FIXME notes are still in the codebase),
but it is a step in the right direction and fixes a number of issues I've
been seeing lately.
Fixed #1001328, Refs #1001487.
Branch: master
- clearly report an actor shutting down because of an uncaught exception
- gracefully handle the common VM exceptions.
This is not exhaustive (a handful of FIXME notes are still in the codebase),
but it is a step in the right direction and fixes a number of issues I've
been seeing lately.
Fixed #1001328, Refs #1001487.
Branch: master
on 2013-02-22 14:48 *
By Iulian Dragos
(In scala-ide:e2ac22b6a5d897e24bbb6136f24d6d818e9e82af) More robust against VM exceptions.
This is not exhaustive (a handful of FIXME notes are still in the codebase),
but it is a step in the right direction and fixes a number of issues I've
been seeing lately.
Fixed #1001328, Refs #1001487.(cherry picked from commit a07bd6b388a3da86aebba7de3c236d7ab9b3a619)
Branch: release/scala-ide-3.0.x
- clearly report an actor shutting down because of an uncaught exception
- gracefully handle the common VM exceptions.
This is not exhaustive (a handful of FIXME notes are still in the codebase),
but it is a step in the right direction and fixes a number of issues I've
been seeing lately.
Fixed #1001328, Refs #1001487.(cherry picked from commit a07bd6b388a3da86aebba7de3c236d7ab9b3a619)
Branch: release/scala-ide-3.0.x
And not handling exception can have bad consequences, as demonstrated by the following stacktrace:
Basically, this exception causes the ``ScalaThreadActor`` to die! The exception is displayed in the variable view, once you select a variable.
exception while invoking toString(): null
org.eclipse.jdi.internal.ObjectReferenceImpl.invokeMethod(ObjectReferenceImpl.java:413)
scala.tools.eclipse.debug.model.ScalaThreadActor$$anonfun$behavior$1.liftedTree1$1(ScalaThread.scala:256)
scala.tools.eclipse.debug.model.ScalaThreadActor$$anonfun$behavior$1.applyOrElse(ScalaThread.scala:252)
scala.PartialFunction$OrElse.apply(PartialFunction.scala:162)
scala.actors.ReactorTask.run(ReactorTask.scala:31)
scala.actors.Reactor$class.resumeReceiver(Reactor.scala:129)
scala.tools.eclipse.debug.model.ScalaThreadActor.scala$actors$InternalReplyReactor$$super$resumeReceiver(ScalaThread.scala:230)
scala.actors.InternalReplyReactor$class.resumeReceiver(InternalReplyReactor.scala:59)
scala.tools.eclipse.debug.model.ScalaThreadActor.resumeReceiver(ScalaThread.scala:230)
scala.actors.InternalActor$class.searchMailbox(InternalActor.scala:76)
scala.tools.eclipse.debug.model.ScalaThreadActor.searchMailbox(ScalaThread.scala:230)
scala.actors.Reactor$$anonfun$startSearch$1$$anonfun$apply$mcV$sp$1.apply$mcV$sp(Reactor.scala:117)
scala.actors.Reactor$$anonfun$startSearch$1$$anonfun$apply$mcV$sp$1.apply(Reactor.scala:114)
scala.actors.Reactor$$anonfun$startSearch$1$$anonfun$apply$mcV$sp$1.apply(Reactor.scala:114)
scala.actors.ReactorTask.run(ReactorTask.scala:33)
scala.actors.ReactorTask.compute(ReactorTask.scala:63)
scala.concurrent.forkjoin.RecursiveAction.exec(RecursiveAction.java:160)
scala.concurrent.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:262)
scala.concurrent.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:975)
scala.concurrent.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1478)
scala.concurrent.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:104)
Basically, this exception causes the ``ScalaThreadActor`` to die! The exception is displayed in the variable view, once you select a variable.
on 2013-05-13 10:46 *
By Iulian Dragos
Version changed from 2.1.0-nightly-210 to 3.0.0-210
Milestone changed from Current to Lithium
Ticket assignment reverted due to inactivity.