Uploaded image for project: 'Tapestry 5'
  1. Tapestry 5
  2. TAP5-920

Loop component causes NPE for hibernate enitites using a composite-id (ie multi-column id)

    XMLWordPrintableJSON

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Major
    • Resolution: Won't Fix
    • Affects Version/s: 5.1.0.5
    • Fix Version/s: None
    • Labels:
      None

      Description

      This issue is in reference to thread: http://old.nabble.com/T5%3A-HibernateEntityValueEncoder-nullpointerException-after-Tapestry-update-ts25041718.html

      "After some investigation it SEEMS that:

      • looping of entities (for which HibernateEntityValueEncoder is called) WORKS for entities with standard IDs
      • looping FAILS for entities with an @IdClass specified (i.e: multi-column id)
      • querying of all entities works (so it isn't a hibernate issue as far as I can tell) "

      This issue was introduced in T5.1.x, it does not occur in 5.0.x. From what I can tell, I think it has something to do with the way the loop component is creating the value encoder.

      When debugging with T5.0.x:
      The ValueEncoderFactory for the entity (created in HibernateModule.contributeValueEncoderSource()) is never created for the loop.

      When debugging with T5.1.x:
      The ValueEncoderFactory is always created and throws an NPE when accessing the value returned from persistentClass.getIdentifierProperty(). It is correct for persistentClass.getIdentifierProperty() to be null when the entity is using a composite-id.

      It appears that T5.0.x is smarter about when it should and shouldn't create the encoder.

        Attachments

          Activity

            People

            • Assignee:
              Unassigned
              Reporter:
              buckofive Joe Klecko
            • Votes:
              1 Vote for this issue
              Watchers:
              5 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: