Uploaded image for project: 'Commons DbUtils'
  1. Commons DbUtils
  2. DBUTILS-3

[dbutils] Setting bean properties fails silently

VotersWatch issueWatchersLinkCloneUpdate Comment AuthorReplace String in CommentUpdate Comment VisibilityDelete Comments
    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • None
    • 1.1
    • None
    • Operating System: other
      Platform: Other

    • 38076

    Description

      I had a property in my bean that wasn't being set by BeanHandler. No matter
      the value of the matching field name in the database, the value in the bean
      would always come back as 0.

      I traced the culprit to BasicRowProcessor.callSetter(), which calls the
      setter method on the bean corresponding to the same field name in the
      database. Before it attempts to call the setter, it checks to make sure that
      the type of the value retrieved from the database is compatible with the type
      of the bean. This behavior is fair enough, but if the types are determined to
      be incompatible, DBUtils essentially fails silently. That is, it does not call
      the setter and it does nothing to inform the developer that this is what
      happened.

      This was frustrating for me because I had a field that was type int in my bean
      and type long in the database, but I didn't realize why it wasn't being set
      until I stepped through the code.

      POSSIBLE RESOLUTIONS
      --------------------
      1. Start a FAQ for DBUtils and mention that a bean's property will not be
      initialized if its type is incompatible with the corresponding field in the
      database

      2. Log some message to this effect when it occurs (I don't believe DBUtils has
      any logging, so this probably isn't viable)

      3. Throw an exception when this case occurs. Better that the program fail
      obviously and with some information about what happened rather than return a
      bean in an invalid state.

      Attachments

        Activity

          This comment will be Viewable by All Users Viewable by All Users
          Cancel

          People

            Unassigned Unassigned
            bailen@cs.wisc.edu Tim Bailen
            Votes:
            1 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Slack

                Issue deployment