Cayenne
  1. Cayenne
  2. CAY-1519

Application deadlock trying to guess static constant fields

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Critical Critical
    • Resolution: Fixed
    • Affects Version/s: 3.1M1
    • Fix Version/s: 3.1M2
    • Component/s: Core Library
    • Labels:
      None
    • Environment:
      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

        Activity

          People

          • Assignee:
            Andrus Adamchik
            Reporter:
            Andrus Adamchik
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development