Aladdin - Scala Bugtracking
[#546] project: eclipse-plugin priority: medium category: bug
submitter assigned to status date submitted
Burak Sean noise 2006-03-12 12:19:06.0
subject head of empty list?
code
// there are all those other files that I don't include, ask me for a tarball
trait NewMatchers requires (Trees with Typers with Reds with NewMatchers) {

  def newtranslate(e: Tree): Tree = e match {
    case PatternMatch(scrut,cases) =>
      val pm = new NewMatcher();
      pm.compile(scrut.tpe, cases);
      pm.toTree(scrut)
  }

  class NewMatcher() {

  // fresh names
  var fcount = 0;

  def fresh(prefix:String) = {
    val i = fcount; 
    fcount = fcount + 1; 
    prefix+"$"+i.toString();
  }
    var lcount = 1;
    def freshLabel = {
      val i = lcount;
      lcount = lcount + 1
      i
    }

    abstract class Node{}

    class Test(var tpe: Type, var casted:Ident) extends Node {
      var thenp: Node  = _
      def this(tpe: Type, name: String) = this(tpe, Ident(name) setType tpe)
      var vbles = List[String]();
      def bindTo(vble:String): this.type = { vbles = vble::vbles; this }
      override def toString() = tpe.name+"?"
    }
    class Load(var expr: Tree) extends Node {
      def tpe = expr.tpe;
      var thenp: PatNodeList = Snil
    }
    case class Return(b:Tree) extends Node {}

    abstract class PatNodeList {};
    case class Snoc(sx:PatNodeList, x:Test) extends PatNodeList;
    case object Snil extends PatNodeList;

    var root:Test = _;
def compile(etpe: Type, cases:List[Pair[Pattern,Tree]]) = {
      this.root  = new Test(etpe, fresh("y"))
      root.thenp = new Load(root.casted)
      val it = cases.elements
      while(it.hasNext) {
        val cse = it.next;
        val target = enter(cse._1, -1, root, root.casted)
        if(target.thenp == null)
          target.thenp = Return(cse._2)
        else
          error("duplicate case");
      }
    }

    //          
    def addToList(sx: PatNodeList, q: Test): Pair[Test,PatNodeList] = 
      sx match {
        case Snil => 
          Pair(q, Snoc(Snil, q))
      case Snoc(sy, y) =>
        if(same(q,y)) {
          y.vbles = y.vbles ::: q.vbles
          Pair(y, sx)
        } else if (overlaps(y,q)) {
          Pair(q, Snoc(sx, q))
        } else {
          addToList(sy, q) match {
            case Pair(q1, sy1) =>
              Pair(q1, Snoc(sy1, y))
          }
        }
      }

    // invariant  (index == -1) iff (child == null)
    // casted should be a symbol, really
    def enter(p:Pattern, index: Int, target:Test, casted: Ident): Test = {
      //Console.println("NEW enter("+p+","+index+","+target+","+casted+")")
      //Console.println("patArgs = "+patArgs)
      target.thenp match {
        case null => 
          assert(index != -1, "error entering "+casted)
          val load     = new Load(accessor(casted, index))
          target.thenp = load;
          val test     = patternNode(p, load)
          load.thenp   = Snoc(load.thenp, test)
          enterArgs(p, test, casted)
        case load: Load =>
          val test = patternNode(p, load)
          addToList(load.thenp, test) match {
            case Pair(ntest, thenp) => 
              load.thenp = thenp
              enterArgs(p, ntest, casted)
          }
      }
    }
 
    def enterArgs(p: Pattern, targ1: Test, cast1:Ident): Test = {
      val pats = p match {case PApply(_, args) => args; case _ => List() };
      var target = targ1;
      var casted = target.casted;
      /* // to what should I attach the variables??
      var j = casted.tpe.args.elements;
      var child = List[Tree]();
      while(j > 0) {
        j = j - 1
        child = accessor(casted, i) :: child
      }
      */
      var i = 0; 
      var it = pats.elements
      while(it.hasNext) {
        target = enter(it.next, i, target, casted);
        i = i + 1
      }
      target;
    }

    def same(p:Test, q:Test) = p.tpe == q.tpe;

    def overlaps(p:Test, q:Test) = 
      (q.tpe isSubType p.tpe) || (p.tpe isSubType q.tpe);
 def accessor(casted: Ident, index: Int) = {
      val tpe = casted.tpe;
      val fml = tpe.args(index);
      checkSelect(Select(casted, fml._2))
    }

    def patternNode(p:Pattern, h:Load): Test = p match {
      case PApply(tpestr, args) => new Test(ctable(tpestr), fresh("z"));
      case PLeaf(tpestr, vble) =>  new Test(ctable(tpestr), vble)
      case PWildcard()          => new Test(h.tpe, fresh("_"));
    }

    var fail: Int = -1;

    def toTree(scrut:Tree): Tree = {
      val lab = Labeled(MatchErrorObject()) anchor fail;
      toTree(root.thenp, fail) match {
        case t :: ts => Block(Let(root.tpe.name, root.casted.name, scrut, t)::la
b::ts); 
      }
    }

    def toTree(patNode: Node, elseLa1: Int): List[Tree] = {
      //Console.println("toTree("+patNode+","+elseLab+")")
      patNode match {
        case Return(b)              => List(b);
        case load: Load =>  
          //Console.println("load.thenp ="+load.thenp)
          val tpe = load.tpe;
          val selector = load.expr;
          //Console.println("load.expr ="+load.expr)
          var res = List[Tree]();
          val v = fresh("y");
          val vload = Ident(v) setType tpe;
          var elseLab = elseLa1;
          def listToTree(sx:PatNodeList): Unit = sx match {
            case Snoc(Snil,y) => 
              toTree(y, vload, elseLab) match {
                case t :: ts =>
                  res = Let(tpe.name, v, selector, t) :: ts ::: res
              }
    case Snoc(ys,y)   =>
              val z = toTree(y, vload, elseLab) match {
                case t::ts => 
                  elseLab = freshLabel
                  res = (Labeled(t) anchor elseLab) :: ts ::: res;
              }
              listToTree(ys)
          }
          listToTree(load.thenp)
          res
      }
    } 

    def toTree(patNode: Test, vload:Ident, elseLab:Int): List[Tree] = {
      //Console.println("toTree("+patNode+","+vload+","+elseLab+")")
      if(patNode.tpe == vload.tpe) {
        toTree(patNode.thenp, elseLab) match {
          case t :: ts =>
            Let(patNode.tpe.name, patNode.casted.name, vload, t) :: ts
        }
      } else {
        var res = List[Tree]()
        val thenp = toTree(patNode.thenp, elseLab) match {
          case t::ts => res = ts; t
        }
        If(IsInstanceOf(vload, patNode.tpe.name) setType ctable("Boolean"), 
           Let(patNode.tpe.name, patNode.casted.name, vload, thenp) setType then
p.tpe, 
           Jump() to elseLab)::res
      }
    }
  }
}




what happened
eclipse pluing dies with head of empty list.

compiles fine with command-line compiler.

Here's relevant extract .metadata/.log
!ENTRY ch.epfl.lamp.sdt.core 4 4 2006-03-12 12:11:33.789
!MESSAGE presentation: AT: source: /Users/buraq/Documents/workspace/iron/NewMatc
hers.scala offset=210 line=6 c[0..9]="(scrut.tpe"
!STACK 0
java.lang.Error: head of empty list
        at scala.Predef$.error(Predef.scala:139)
        at scala.Nil$.head(List.scala:1094)
        at scala.Nil$.head(List.scala:1092)
        at scala.tools.nsc.symtab.Types$class.isSubArgs$0(Types.scala:1562)
        at scala.tools.nsc.symtab.Types$class.isSubType0(Types.scala:1566)
        at scala.tools.nsc.symtab.SymbolTable.isSubType0(SymbolTable.scala:10)
        at scala.tools.nsc.symtab.Types$class.isSubType(Types.scala:1531)
        at scala.tools.nsc.symtab.SymbolTable.isSubType(SymbolTable.scala:10)
        at scala.tools.nsc.symtab.Types$Type.$less$colon$less(Types.scala:231)
        at scala.tools.nsc.typechecker.Infer$Inferencer.isCompatible(Infer.scala
:258)
        at scala.tools.nsc.typechecker.Typers$Typer.typedImplicit(Typers.scala:1
553)
        at scala.tools.nsc.typechecker.Typers$Typer.searchImplicit$0(Typers.scal
a:1595)
        at scala.tools.nsc.typechecker.Typers$Typer.inferImplicit(Typers.scala:1
635)
        at scala.tools.nsc.typechecker.Typers$Typer.scala$tools$nsc$typechecker$
Typers$Typer$$inferView(Typers.scala:55)
        at scala.tools.nsc.typechecker.Typers$Typer$$anon$0.isCoercible(Typers.s
cala:44)
        at scala.tools.nsc.typechecker.Infer$Inferencer.isCompatible(Infer.scala
:258)
        at scala.tools.nsc.typechecker.Infer$Inferencer.isWeaklyCompatible(Infer
.scala:262)
        at scala.tools.nsc.typechecker.Infer$Inferencer.isApplicable(Infer.scala
:384)
        at scala.tools.nsc.typechecker.Typers$Typer$$anonfun$62.apply(Typers.sca
la:1352)
        at scala.tools.nsc.typechecker.Typers$Typer$$anonfun$62.apply(Typers.sca
la:1351)
at scala.List.filter(List.scala:707)
        at scala.tools.nsc.symtab.Symbols$Symbol.filter(Symbols.scala:497)
        at scala.tools.nsc.typechecker.Typers$Typer.typed1(Typers.scala:1351)
        at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:1472)
        at scala.tools.nsc.typechecker.Typers$Typer.typedArg$0(Typers.scala:935)
        at scala.tools.nsc.typechecker.Typers$Typer$$anonfun$45.apply(Typers.sca
la:953)
        at scala.tools.nsc.typechecker.Typers$Typer$$anonfun$45.apply(Typers.sca
la:953)
        at scala.List$.map2(List.scala:277)
        at scala.tools.nsc.typechecker.Typers$Typer.typedApply$0(Typers.scala:95
3)
        at scala.tools.nsc.typechecker.Typers$Typer.typed1(Typers.scala:1357)
        at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:1472)
        at scala.tools.nsc.typechecker.Typers$Typer.typed1(Typers.scala:1250)
        at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:1472)
        at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:1498)
        at scala.tools.nsc.typechecker.Typers$Typer$$anonfun$41.apply(Typers.sca
la:904)
        at scala.tools.nsc.typechecker.Typers$Typer$$anonfun$41.apply(Typers.sca
la:894)
        at scala.List$.loop$0(List.scala:244)
        at scala.List$.mapConserve(List.scala:261)
        at scala.List$.loop$0(List.scala:248)
        at scala.List$.mapConserve(List.scala:261)
        at scala.tools.nsc.typechecker.Typers$Typer.typedStats(Typers.scala:894)
        at scala.tools.nsc.typechecker.Typers$Typer.typedBlock(Typers.scala:804)
        at scala.tools.nsc.typechecker.Typers$Typer.typed1(Typers.scala:1203)
        at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:1472)
        at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:1498)
        at scala.tools.nsc.typechecker.Typers$Typer.computeType(Typers.scala:152
9)
        at scala.tools.nsc.typechecker.Namers$Namer.methodSig(Namers.scala:407)
        at scala.tools.nsc.typechecker.Namers$Namer.liftedTry0$0(Namers.scala:47
5)
        at scala.tools.nsc.typechecker.Namers$Namer.scala$tools$nsc$typechecker$
Namers$Namer$$typeSig(Namers.scala:461)
        at scala.tools.nsc.typechecker.Namers$Namer$$anon$0.complete(Namers.scal
a:308)
        at scala.tools.nsc.symtab.Symbols$Symbol.info(Symbols.scala:342)
        at scala.tools.nsc.symtab.Symbols$Symbol.tpe(Symbols.scala:318)
        at scala.tools.nsc.typechecker.Typers$Typer$$anonfun$52.apply(Typers.sca
la:1064)
        at scala.tools.nsc.typechecker.Typers$Typer$$anonfun$52.apply(Typers.sca
la:1064)
        at scala.tools.nsc.symtab.Symbols$Symbol.filter(Symbols.scala:502)
        at scala.tools.nsc.typechecker.Typers$Typer.typedIdent$0(Typers.scala:10
63)
        at scala.tools.nsc.typechecker.Typers$Typer.typed1(Typers.scala:1416)
        at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:1472)
        at scala.tools.nsc.typechecker.Typers$Typer.typed1(Typers.scala:1343)
        at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:1472)
        at scala.tools.nsc.typechecker.Typers$Typer.typedArg$0(Typers.scala:935)
        at scala.tools.nsc.typechecker.Typers$Typer$$anonfun$43.apply(Typers.sca
la:941)
        at scala.tools.nsc.typechecker.Typers$Typer$$anonfun$43.apply(Typers.sca
la:940)
        at scala.List$.loop$0(List.scala:244)
        at scala.List$.mapConserve(List.scala:261)
        at scala.tools.nsc.typechecker.Typers$Typer.typedApply$0(Typers.scala:94
0)
        at scala.tools.nsc.typechecker.Typers$Typer.typed1(Typers.scala:1357)
        at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:1472)
        at scala.tools.nsc.typechecker.Typers$Typer.typedArg$0(Typers.scala:935)
        at scala.tools.nsc.typechecker.Typers$Typer$$anonfun$45.apply(Typers.sca
la:953)
        at scala.tools.nsc.typechecker.Typers$Typer$$anonfun$45.apply(Typers.sca
la:953)
        at scala.List$.map2(List.scala:277)
        at scala.tools.nsc.typechecker.Typers$Typer.typedApply$0(Typers.scala:95
3)
        at scala.tools.nsc.typechecker.Typers$Typer.typed1(Typers.scala:1357)
        at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:1472)
        at scala.tools.nsc.typechecker.Typers$Typer.typed1(Typers.scala:1250)
        at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:1472)
        at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:1498)
        at scala.tools.nsc.typechecker.Typers$Typer$$anonfun$41.apply(Typers.sca
la:904)
        at scala.tools.nsc.typechecker.Typers$Typer$$anonfun$41.apply(Typers.sca
la:894)
        at scala.List$.loop$0(List.scala:244)
        at scala.List$.mapConserve(List.scala:261)
        at scala.tools.nsc.typechecker.Typers$Typer.typedStats(Typers.scala:894)
        at scala.tools.nsc.typechecker.Typers$Typer.typedBlock(Typers.scala:804)
        at scala.tools.nsc.typechecker.Typers$Typer.typed1(Typers.scala:1203)
        at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:1472)
        at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:1498)
        at scala.tools.nsc.typechecker.Typers$Typer.computeType(Typers.scala:152
9)
        at scala.tools.nsc.typechecker.Namers$Namer.methodSig(Namers.scala:407)
        at scala.tools.nsc.typechecker.Namers$Namer.liftedTry0$0(Namers.scala:47
5)
        at scala.tools.nsc.typechecker.Namers$Namer.scala$tools$nsc$typechecker$Namers$Namer$$typeSig(Namers.sca\
la:461)
        at scala.tools.nsc.typechecker.Namers$Namer$$anon$0.complete(Namers.scal
a:308)
        at scala.tools.nsc.symtab.Symbols$Symbol.info(Symbols.scala:342)
        at scala.tools.nsc.typechecker.Typers$Typer.typedSelect$0(Typers.scala:1
019)
        at scala.tools.nsc.typechecker.Typers$Typer.typed1(Typers.scala:1409)
        at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:1472)
        at scala.tools.nsc.typechecker.Typers$Typer.typed1(Typers.scala:1343)
        at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:1472)
        at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:1498)
        at scala.tools.nsc.typechecker.Typers$Typer$$anonfun$41.apply(Typers.sca
la:904)
        at scala.tools.nsc.typechecker.Typers$Typer$$anonfun$41.apply(Typers.sca
la:894)
        at scala.List$.loop$0(List.scala:244)
        at scala.List$.mapConserve(List.scala:261)
        at scala.List$.loop$0(List.scala:248)
        at scala.List$.mapConserve(List.scala:261)
        at scala.tools.nsc.typechecker.Typers$Typer.typedStats(Typers.scala:894)
        at scala.tools.nsc.typechecker.Typers$Typer.typedBlock(Typers.scala:804)
        at scala.tools.nsc.typechecker.Typers$Typer.typed1(Typers.scala:1203)
        at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:1472)
        at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:1502)
        at scala.tools.nsc.typechecker.Typers$Typer.typedCase(Typers.scala:820)
        at scala.tools.nsc.typechecker.Typers$Typer$$anonfun$34.apply(Typers.sca
la:837)
        at scala.tools.nsc.typechecker.Typers$Typer$$anonfun$34.apply(Typers.sca
la:836)
        at scala.List$.loop$0(List.scala:244)
        at scala.List$.mapConserve(List.scala:261)
        at scala.tools.nsc.typechecker.Typers$Typer.typedCases(Typers.scala:836)
        at scala.tools.nsc.typechecker.Typers$Typer.typed1(Typers.scala:1277)
        at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:1472)
        at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:1502)
        at scala.tools.nsc.typechecker.Typers$Typer.transformedOrTyped(Typers.sc
ala:1536)
        at scala.tools.nsc.typechecker.Typers$Typer.typedDefDef(Typers.scala:764
)
        at scala.tools.nsc.typechecker.Typers$Typer.typed1(Typers.scala:1160)
        at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:1472)
        at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:1498)
        at scala.tools.nsc.typechecker.Typers$Typer$$anonfun$41.apply(Typers.sca
la:904)
        at scala.tools.nsc.typechecker.Typers$Typer$$anonfun$41.apply(Typers.sca
la:894)
        at scala.List$.loop$0(List.scala:244)

        at scala.List$.mapConserve(List.scala:261)
        at scala.tools.nsc.typechecker.Typers$Typer.typedStats(Typers.scala:894)
        at scala.tools.nsc.typechecker.Typers$Typer.typedTemplate(Typers.scala:6
51)
        at scala.tools.nsc.typechecker.Typers$Typer.typedClassDef(Typers.scala:5
89)
        at scala.tools.nsc.typechecker.Typers$Typer.typed1(Typers.scala:1151)
        at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:1472)
        at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:1498)
        at scala.tools.nsc.typechecker.Typers$Typer$$anonfun$41.apply(Typers.sca
la:904)
        at scala.tools.nsc.typechecker.Typers$Typer$$anonfun$41.apply(Typers.sca
la:894)
        at scala.List$.loop$0(List.scala:244)
        at scala.List$.mapConserve(List.scala:261)
        at scala.tools.nsc.typechecker.Typers$Typer.typedStats(Typers.scala:894)
        at scala.tools.nsc.typechecker.Typers$Typer.typed1(Typers.scala:1147)
        at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:1472)
        at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:1498)
        at scala.tools.nsc.typechecker.Analyzer$typerFactory$$anon$1.apply(Analy
zer.scala:39)
        at scala.tools.nsc.Global$GlobalPhase.applyPhase(Global.scala:207)
        at scala.tools.nsc.Global$GlobalPhase$$anonfun$1.apply(Global.scala:196)
        at scala.tools.nsc.Global$GlobalPhase$$anonfun$1.apply(Global.scala:196)
        at scala.Iterator$class.foreach(Iterator.scala:264)
        at scala.collection.mutable.ListBuffer$$anon$0.foreach(ListBuffer.scala:
216)
        at scala.tools.nsc.Global$GlobalPhase.run(Global.scala:196)
        at scala.tools.nsc.Global$Run.compileSources(Global.scala:421)
        at ch.epfl.lamp.sdt.build.ScalaCompilerManager$SemanticCompiler.unitFor(
ScalaCompilerManager.java:319)
        at ch.epfl.lamp.sdt.build.ScalaCompilerManager$SemanticCompiler.tokensFo
r(ScalaCompilerManager.java:335)
        at ch.epfl.lamp.sdt.core.ScalaProject.refreshTokens(ScalaProject.java:15
1)
        at ch.epfl.lamp.sdt.ui.actions.HighlightAction.run(HighlightAction.java:
91)
        at ch.epfl.lamp.sdt.ui.actions.HighlightAction.run(HighlightAction.java:
77)
        at ch.epfl.lamp.sdt.ui.actions.HighlightAction$1.run(HighlightAction.jav
a:61)
        at ch.epfl.lamp.sdt.ui.actions.HighlightAction.run(HighlightAction.java:
65)
        at ch.epfl.lamp.sdt.ui.scalaeditor.ScalaEditor$1.focusGained(ScalaEditor
.java:194)
        at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:
105)
        at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:66)
        at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1450)
        at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1474)
        at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1455)
        at org.eclipse.swt.widgets.Control.sendFocusEvent(Control.java:2230)
        at org.eclipse.swt.widgets.Control.forceFocus(Control.java:808)
        at org.eclipse.swt.widgets.Decorations.restoreFocus(Decorations.java:388
)
        at org.eclipse.swt.widgets.Shell.kEventWindowActivated(Shell.java:888)
        at org.eclipse.swt.widgets.Widget.windowProc(Widget.java:1990)
        at org.eclipse.swt.widgets.Display.windowProc(Display.java:3979)
        at org.eclipse.swt.internal.carbon.OS.DisposeWindow(Native Method)
        at org.eclipse.swt.widgets.Shell.destroyWidget(Shell.java:536)
        at org.eclipse.swt.widgets.Widget.release(Widget.java:1341)
        at org.eclipse.swt.widgets.Widget.dispose(Widget.java:628)
        at org.eclipse.jface.window.Window.close(Window.java:327)
        at org.eclipse.jface.dialogs.Dialog.close(Dialog.java:996)
        at org.eclipse.jface.dialogs.MessageDialog.buttonPressed(MessageDialog.j
ava:167)
        at org.eclipse.jface.dialogs.Dialog$3.widgetSelected(Dialog.java:645)
        at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:
90)
        at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:66)
        at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1450)
        at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1474)
        at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1459)
        at org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java:1236)
        at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3259)
        at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2897)
        at org.eclipse.jface.window.Window.runEventLoop(Window.java:811)
        at org.eclipse.jface.window.Window.open(Window.java:789)
        at org.eclipse.jface.dialogs.MessageDialog.openError(MessageDialog.java:
319)
        at org.eclipse.jface.util.SafeRunnable.handleException(SafeRunnable.java
:59)
        at org.eclipse.core.runtime.SafeRunner.handleException(SafeRunner.java:6
5)
        at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:39)
        at org.eclipse.core.runtime.Platform.run(Platform.java:816)
        at org.eclipse.ui.internal.WorkbenchPage.activatePart(WorkbenchPage.java
:562)
        at org.eclipse.ui.internal.WorkbenchPage.setActivePart(WorkbenchPage.jav
a:2971)
        at org.eclipse.ui.internal.WorkbenchPage.activate(WorkbenchPage.java:555
)
        at org.eclipse.ui.internal.WorkbenchPage.showEditor(WorkbenchPage.java:2
418)
        at org.eclipse.ui.internal.WorkbenchPage.busyOpenEditorBatched(Workbench
Page.java:2381)
        at org.eclipse.ui.internal.WorkbenchPage.busyOpenEditor(WorkbenchPage.ja
va:2325)
        at org.eclipse.ui.internal.WorkbenchPage.access$10(WorkbenchPage.java:23
17)
        at org.eclipse.ui.internal.WorkbenchPage$9.run(WorkbenchPage.java:2303)
        at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:69)
        at org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:2
298)
        at org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:2
283)
        at org.eclipse.ui.ide.IDE.openEditor(IDE.java:384)
        at org.eclipse.ui.ide.IDE.openEditor(IDE.java:347)
        at org.eclipse.jdt.internal.ui.javaeditor.EditorUtility.openInEditor(Edi
torUtility.java:275)
        at org.eclipse.jdt.internal.ui.javaeditor.EditorUtility.openInEditor(Edi
torUtility.java:139)
        at org.eclipse.jdt.internal.ui.actions.OpenActionUtil.open(OpenActionUti
l.java:49)
        at org.eclipse.jdt.ui.actions.OpenAction.run(OpenAction.java:181)
        at org.eclipse.jdt.ui.actions.OpenAction.run(OpenAction.java:165)
        at org.eclipse.jdt.ui.actions.SelectionDispatchAction.dispatchRun(Select
ionDispatchAction.java:267)
        at org.eclipse.jdt.ui.actions.SelectionDispatchAction.run(SelectionDispa
tchAction.java:243)
        at org.eclipse.jdt.internal.ui.packageview.PackageExplorerActionGroup.ha
ndleOpen(PackageExplorerActionGroup.java:296)
        at org.eclipse.jdt.internal.ui.packageview.PackageExplorerPart$4.open(Pa
ckageExplorerPart.java:650)
        at org.eclipse.jface.viewers.StructuredViewer$2.run(StructuredViewer.jav
a:780)
        at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:37)
        at org.eclipse.core.runtime.Platform.run(Platform.java:816)
        at org.eclipse.ui.internal.JFaceUtil$1.run(JFaceUtil.java:44)
        at org.eclipse.jface.util.SafeRunnable.run(SafeRunnable.java:148)
        at org.eclipse.jface.viewers.StructuredViewer.fireOpen(StructuredViewer.
java:778)
        at org.eclipse.jface.viewers.StructuredViewer.handleOpen(StructuredViewe
r.java:1009)
        at org.eclipse.jface.viewers.StructuredViewer$6.handleOpen(StructuredVie
wer.java:1108)
        at org.eclipse.jface.util.OpenStrategy.fireOpenEvent(OpenStrategy.java:2
44)
        at org.eclipse.jface.util.OpenStrategy.access$2(OpenStrategy.java:239)
        at org.eclipse.jface.util.OpenStrategy$1.handleEvent(OpenStrategy.java:2
78)
        at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:66)
        at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1450)
        at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1474)
        at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1459)
        at org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java:1236)
        at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3259)
        at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2897)
        at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:1899)
        at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:1863)
        at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.jav
a:417)
        at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:143)
        at org.eclipse.ui.internal.ide.IDEApplication.run(IDEApplication.java:10
6)
        at org.eclipse.core.internal.runtime.PlatformActivator$1.run(PlatformAct
ivator.java:99)
        at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runAppli
cation(EclipseAppLauncher.java:92)
        at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(Ec
lipseAppLauncher.java:68)
        at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.ja
va:374)
        at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.ja
va:169)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
sorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:585)
        at org.eclipse.core.launcher.Main.invokeFramework(Main.java:338)
        at org.eclipse.core.launcher.Main.basicRun(Main.java:282)
        at org.eclipse.core.launcher.Main.run(Main.java:977)
        at org.eclipse.core.launcher.Main.main(Main.java:952)
what expected clean compile
[back to overview]
Changes of this bug report
Burak  edited on  2007-08-29 11:42:46.0