Uploaded image for project: 'Cayenne'
  1. Cayenne
  2. CAY-1519

Application deadlock trying to guess static constant fields

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Critical
    • Resolution: Fixed
    • 3.1M1
    • 3.1M2
    • Core Library
    • None
    • java version "1.6.0_20"
      Java(TM) SE Runtime Environment (build 1.6.0_20-b02)
      Java HotSpot(TM) Server VM (build 16.3-b01, mixed mode)
      SunOS pa-app01 5.10 Generic_142901-12 i86pc i386 i86pc

    Description

      Per CAY-1213 we are trying to guess if a String constant in an expression is a path or an enum or a constant. This code deadlocks the app for me under load on Java 6:

      java.lang.Thread.State: BLOCKED (on object monitor)
      at java.lang.Class.forName0(Native Method)
      at java.lang.Class.forName(Class.java:247)
      at org.apache.cayenne.util.Util.getJavaClass(Util.java:663)
      at org.apache.cayenne.util.Util.getClassFieldValue(Util.java:763)
      at org.apache.cayenne.exp.parser.ASTObjPath.evaluateNode(ASTObjPath.java:58)
      at org.apache.cayenne.exp.parser.SimpleNode.evaluate(SimpleNode.java:335)
      at org.apache.cayenne.exp.parser.SimpleNode.evaluateChild(SimpleNode.java:323)
      at org.apache.cayenne.exp.parser.ASTEqual.evaluateNode(ASTEqual.java:66)
      at org.apache.cayenne.exp.parser.SimpleNode.evaluate(SimpleNode.java:335)
      at org.apache.cayenne.exp.Expression.match(Expression.java:367)
      at org.apache.cayenne.exp.Expression.filter(Expression.java:389)
      at org.apache.cayenne.exp.Expression.filterObjects(Expression.java:378)

      I had to locally unroll the following SVN revs to clear the problem: 998620, 1001040, 1001041

      Attachments

        Activity

          People

            andrus Andrus Adamchik
            andrus Andrus Adamchik
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: