<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
    <head> 
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 
        <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0"> 
        <base href="https://hibernate.atlassian.net"> 
        <title>Message Title</title> 
    </head> 
    <body class="jira" style="color: #333333; font-family: Arial, sans-serif; font-size: 14px; line-height: 1.429"> 
        <table id="background-table" cellpadding="0" cellspacing="0" width="100%" style="border-collapse: collapse; mso-table-lspace: 0; mso-table-rspace: 0; background-color: #f5f5f5; border-collapse: collapse; mso-table-lspace: 0; mso-table-rspace: 0" bgcolor="#f5f5f5"> 
            <!-- header here --> 
            <tbody>
                <tr> 
                    <td id="header-pattern-container" style="padding: 0; border-collapse: collapse; padding: 10px 20px"> 
                        <table id="header-pattern" cellspacing="0" cellpadding="0" border="0" style="border-collapse: collapse; mso-table-lspace: 0; mso-table-rspace: 0"> 
                            <tbody>
                                <tr> 
                                    <td id="header-avatar-image-container" valign="top" style="padding: 0; border-collapse: collapse; vertical-align: top; width: 32px; padding-right: 8px" width="32"> <img id="header-avatar-image" class="image_fix" src="cid:jira-generated-image-avatar-7ad6038f-aa9a-42be-9d62-888a380d0312" height="32" width="32" border="0" style="border-radius: 3px; vertical-align: top"> </td> 
                                    <td id="header-text-container" valign="middle" style="padding: 0; border-collapse: collapse; vertical-align: middle; font-family: Arial, sans-serif; font-size: 14px; line-height: 20px; mso-line-height-rule: exactly; mso-text-raise: 1px"> <a class="user-hover" rel="wbdarby" id="email_wbdarby" href="https://hibernate.atlassian.net/secure/ViewProfile.jspa?name=wbdarby" style="color:#6c797f;; color: #3b73af; text-decoration: none">Will Darby</a> <strong>created</strong> an issue </td> 
                                </tr> 
                            </tbody>
                        </table> </td> 
                </tr> 
                <tr> 
                    <td id="email-content-container" style="padding: 0; border-collapse: collapse; padding: 0 20px"> 
                        <table id="email-content-table" cellspacing="0" cellpadding="0" border="0" width="100%" style="border-collapse: collapse; mso-table-lspace: 0; mso-table-rspace: 0; border-spacing: 0; border-collapse: separate"> 
                            <tbody>
                                <tr> 
                                    <!-- there needs to be content in the cell for it to render in some clients --> 
                                    <td class="email-content-rounded-top mobile-expand" style="padding: 0; border-collapse: collapse; color: #ffffff; padding: 0 15px 0 16px; height: 15px; background-color: #ffffff; border-left: 1px solid #cccccc; border-top: 1px solid #cccccc; border-right: 1px solid #cccccc; border-bottom: 0; border-top-right-radius: 5px; border-top-left-radius: 5px; height: 10px; line-height: 10px; padding: 0 15px 0 16px; mso-line-height-rule: exactly" height="10" bgcolor="#ffffff">&nbsp;</td> 
                                </tr> 
                                <tr> 
                                    <td class="email-content-main mobile-expand " style="padding: 0; border-collapse: collapse; border-left: 1px solid #cccccc; border-right: 1px solid #cccccc; border-top: 0; border-bottom: 0; padding: 0 15px 0 16px; background-color: #ffffff" bgcolor="#ffffff"> 
                                        <table class="page-title-pattern" cellspacing="0" cellpadding="0" border="0" width="100%" style="border-collapse: collapse; mso-table-lspace: 0; mso-table-rspace: 0"> 
                                            <tbody>
                                                <tr> 
                                                    <td class="page-title-pattern-first-line " style="padding: 0; border-collapse: collapse; font-family: Arial, sans-serif; font-size: 14px; padding-top: 10px"> <a href="https://hibernate.atlassian.net/browse/HHH" style="color: #3b73af; text-decoration: none">Hibernate ORM</a> / <a href="https://hibernate.atlassian.net/browse/HHH-10976" style="color: #3b73af; text-decoration: none"><img src="cid:jira-generated-image-static-remove_feature-af23322b-f612-4f50-bc92-2f0561b9d215" height="16" width="16" border="0" align="absmiddle" alt="Deprecation" style="vertical-align: text-bottom"></a> <a href="https://hibernate.atlassian.net/browse/HHH-10976" style="color: #3b73af; text-decoration: none">HHH-10976</a> </td> 
                                                </tr> 
                                                <tr> 
                                                    <td style="vertical-align: top;; padding: 0; border-collapse: collapse; padding-right: 5px; font-size: 20px; line-height: 30px; mso-line-height-rule: exactly" class="page-title-pattern-header-container"> <span class="page-title-pattern-header" style="font-family: Arial, sans-serif; padding: 0; font-size: 20px; line-height: 30px; mso-text-raise: 2px; mso-line-height-rule: exactly; vertical-align: middle"> <a href="https://hibernate.atlassian.net/browse/HHH-10976" style="color: #3b73af; text-decoration: none">PersistentList.add(Object) with index assigned creates null entry in list</a> </span> </td> 
                                                </tr> 
                                            </tbody>
                                        </table> </td> 
                                </tr> 
                                <tr> 
                                    <td class="email-content-main mobile-expand  wrapper-special-margin" style="padding: 0; border-collapse: collapse; border-left: 1px solid #cccccc; border-right: 1px solid #cccccc; border-top: 0; border-bottom: 0; padding: 0 15px 0 16px; background-color: #ffffff; padding-top: 10px; padding-bottom: 5px" bgcolor="#ffffff"> 
                                        <table class="keyvalue-table" style="border-collapse: collapse; mso-table-lspace: 0; mso-table-rspace: 0"> 
                                            <tbody>
                                                <tr> 
                                                    <th style="color: #707070; font: normal 14px/20px Arial, sans-serif; text-align: left; vertical-align: top; padding: 2px 0">Issue Type:</th> 
                                                    <td class="has-icon" style="padding: 0; border-collapse: collapse; font: normal 14px/20px Arial, sans-serif; padding: 2px 0 2px 5px; vertical-align: top"> <img src="cid:jira-generated-image-static-remove_feature-af23322b-f612-4f50-bc92-2f0561b9d215" height="16" width="16" border="0" align="absmiddle" alt="Deprecation" style="vertical-align: text-bottom"> Deprecation </td> 
                                                </tr> 
                                                <tr> 
                                                    <th style="color: #707070; font: normal 14px/20px Arial, sans-serif; text-align: left; vertical-align: top; padding: 2px 0">Affects Versions:</th> 
                                                    <td style="padding: 0; border-collapse: collapse; font: normal 14px/20px Arial, sans-serif; padding: 2px 0 2px 5px; vertical-align: top"> 5.2.1 </td> 
                                                </tr> 
                                                <tr> 
                                                    <th style="color: #707070; font: normal 14px/20px Arial, sans-serif; text-align: left; vertical-align: top; padding: 2px 0">Assignee:</th> 
                                                    <td style="padding: 0; border-collapse: collapse; font: normal 14px/20px Arial, sans-serif; padding: 2px 0 2px 5px; vertical-align: top"> Unassigned </td> 
                                                </tr> 
                                                <tr> 
                                                    <th style="color: #707070; font: normal 14px/20px Arial, sans-serif; text-align: left; vertical-align: top; padding: 2px 0">Components:</th> 
                                                    <td style="padding: 0; border-collapse: collapse; font: normal 14px/20px Arial, sans-serif; padding: 2px 0 2px 5px; vertical-align: top"> hibernate-core </td> 
                                                </tr> 
                                                <tr> 
                                                    <th style="color: #707070; font: normal 14px/20px Arial, sans-serif; text-align: left; vertical-align: top; padding: 2px 0">Created:</th> 
                                                    <td style="padding: 0; border-collapse: collapse; font: normal 14px/20px Arial, sans-serif; padding: 2px 0 2px 5px; vertical-align: top"> 20/Jul/2016 09:02 AM </td> 
                                                </tr> 
                                                <tr> 
                                                    <th style="color: #707070; font: normal 14px/20px Arial, sans-serif; text-align: left; vertical-align: top; padding: 2px 0">Priority:</th> 
                                                    <td class="has-icon" style="padding: 0; border-collapse: collapse; font: normal 14px/20px Arial, sans-serif; padding: 2px 0 2px 5px; vertical-align: top"> <img src="cid:jira-generated-image-static-minor-e7349b0f-fbb9-4462-bdc2-871b937b5bf0" height="16" width="16" border="0" align="absmiddle" alt="Minor" style="vertical-align: text-bottom"> Minor </td> 
                                                </tr> 
                                                <tr> 
                                                    <th style="color: #707070; font: normal 14px/20px Arial, sans-serif; text-align: left; vertical-align: top; padding: 2px 0">Reporter:</th> 
                                                    <td style="padding: 0; border-collapse: collapse; font: normal 14px/20px Arial, sans-serif; padding: 2px 0 2px 5px; vertical-align: top"> <a class="user-hover" rel="wbdarby" id="email_wbdarby" href="https://hibernate.atlassian.net/secure/ViewProfile.jspa?name=wbdarby" style="color:#6c797f;; color: #3b73af; text-decoration: none">Will Darby</a> </td> 
                                                </tr> 
                                            </tbody>
                                        </table> </td> 
                                </tr> 
                                <tr> 
                                    <td class="email-content-main mobile-expand  issue-description-container" style="padding: 0; border-collapse: collapse; border-left: 1px solid #cccccc; border-right: 1px solid #cccccc; border-top: 0; border-bottom: 0; padding: 0 15px 0 16px; background-color: #ffffff; padding-top: 5px; padding-bottom: 10px" bgcolor="#ffffff"> 
                                        <table class="text-paragraph-pattern" cellspacing="0" cellpadding="0" border="0" width="100%" style="border-collapse: collapse; mso-table-lspace: 0; mso-table-rspace: 0; font-family: Arial, sans-serif; font-size: 14px; line-height: 20px; mso-line-height-rule: exactly; mso-text-raise: 2px"> 
                                            <tbody>
                                                <tr> 
                                                    <td class="text-paragraph-pattern-container mobile-resize-text " style="padding: 0; border-collapse: collapse; padding: 0 0 10px"> <p style="margin-top:0;margin-bottom:10px;; margin: 10px 0 0; margin-top: 0">When adding a new element to a persistent list using add(Object) with a list index position assigned to the end of the list, Hibernate adds the element and assigns the list index position equal to the the largest index+1 (equal to the new table size). This has the effect of inserting a null element at the next to last position in the list. It is remedied using add(int,Object) to specify the position during the add. This behavior changed from version 4.1, which would insert the element at the end of the list.</p> <p style="margin-top:0;margin-bottom:10px;; margin: 10px 0 0">This occurs for lazy lists that are not read prior to flush().</p> <p style="margin-top:0;margin-bottom:10px;; margin: 10px 0 0">Tracing the SQL operations:<br> 1. An insert is performed with the new list element (and its assigned list index).<br> 2. select max (list index column) + 1<br> 3. Update new element list index (Not that no element with the originally assigned list index exists) </p> <p style="margin-top:0;margin-bottom:10px;; margin: 10px 0 0">Here is an example mapping file and source:</p> 
                                                        <div class="code panel" style="border-width: 1px;; border: 1px solid #cccccc; background: #f5f5f5; font-size: 12px; line-height: 1.333; font-family: monospace; border: 1px solid #cccccc; -moz-border-radius: 3px; border-radius: 3px; margin: 9px 0">
                                                            <div class="codeContent panelContent" style="padding: 9px 12px"> 
                                                                <pre class="code-java" style="margin: 10px 0 0; margin-top: 0; max-height: 30em; overflow: auto; white-space: pre-wrap; word-wrap: normal">
&lt;class name=<span class="code-quote" style="color: #009100">"name.willdarby.trading.account.TradeDate"</span> table=<span class="code-quote" style="color: #009100">"ACCOUNT_TRADE_DATE"</span>&gt;
    &lt;id name=<span class="code-quote" style="color: #009100">"id"</span> column=<span class="code-quote" style="color: #009100">"ID"</span> type=<span class="code-quote" style="color: #009100">"integer"</span>&gt;
      &lt;generator class=<span class="code-quote" style="color: #009100">"increment"</span> /&gt;
    &lt;/id&gt;
    
    &lt;natural-id&gt;
      &lt;many-to-one name=<span class="code-quote" style="color: #009100">"user"</span> column=<span class="code-quote" style="color: #009100">"UNAME"</span> class=<span class="code-quote" style="color: #009100">"name.willdarby.trading.account.UserAccount"</span>
                   cascade=<span class="code-quote" style="color: #009100">"none"</span> not-<span class="code-keyword" style="color: #000091">null</span>=<span class="code-quote" style="color: #009100">"<span class="code-keyword" style="color: #000091; color: #009100">true</span>"</span>/&gt;
      &lt;property name=<span class="code-quote" style="color: #009100">"date"</span> column=<span class="code-quote" style="color: #009100">"TRADE_DATE"</span> type=<span class="code-quote" style="color: #009100">"date"</span> not-<span class="code-keyword" style="color: #000091">null</span>=<span class="code-quote" style="color: #009100">"<span class="code-keyword" style="color: #000091; color: #009100">true</span>"</span>/&gt;
    &lt;/natural-id&gt;
 
    &lt;!-- Identify the trades reconciled with eMarket --&gt;
    &lt;property name=<span class="code-quote" style="color: #009100">"tradesComplete"</span> type=<span class="code-quote" style="color: #009100">"<span class="code-object" style="color: #910091; color: #009100">boolean</span>"</span> &gt;
      &lt;column name=<span class="code-quote" style="color: #009100">"TRADES_COMPLETE"</span> unique=<span class="code-quote" style="color: #009100">"<span class="code-keyword" style="color: #000091; color: #009100">false</span>"</span> index=<span class="code-quote" style="color: #009100">"TRADES_COMPLETE_IDX"</span> not-<span class="code-keyword" style="color: #000091">null</span>=<span class="code-quote" style="color: #009100">"<span class="code-keyword" style="color: #000091; color: #009100">true</span>"</span>/&gt;
    &lt;/property&gt;
    
    &lt;list name=<span class="code-quote" style="color: #009100">"trades"</span> table=<span class="code-quote" style="color: #009100">"ACCOUNT_TRADE"</span> inverse=<span class="code-quote" style="color: #009100">"<span class="code-keyword" style="color: #000091; color: #009100">true</span>"</span>
          cascade=<span class="code-quote" style="color: #009100">"all-delete-orphan"</span> lazy=<span class="code-quote" style="color: #009100">"extra"</span>&gt;
      &lt;key column=<span class="code-quote" style="color: #009100">"TRADE_DATE_ID"</span> not-<span class="code-keyword" style="color: #000091">null</span>=<span class="code-quote" style="color: #009100">"<span class="code-keyword" style="color: #000091; color: #009100">true</span>"</span> /&gt;
      &lt;list-index column=<span class="code-quote" style="color: #009100">"DATE_IDX"</span> /&gt;
      &lt;one-to-many class=<span class="code-quote" style="color: #009100">"name.willdarby.trading.account.Trade"</span> /&gt;
    &lt;/list&gt;
  &lt;/class&gt;
  
  &lt;!-- Individual trades --&gt;
  &lt;class name=<span class="code-quote" style="color: #009100">"name.willdarby.trading.account.Trade"</span> table=<span class="code-quote" style="color: #009100">"ACCOUNT_TRADE"</span>&gt;
    &lt;id name=<span class="code-quote" style="color: #009100">"id"</span> column=<span class="code-quote" style="color: #009100">"ID"</span> type=<span class="code-quote" style="color: #009100">"integer"</span>&gt;
      &lt;generator class=<span class="code-quote" style="color: #009100">"increment"</span> /&gt; &lt;!-- Only <span class="code-keyword" style="color: #000091">for</span> TEST use --&gt;
    &lt;/id&gt;
    
   &lt;many-to-one name=<span class="code-quote" style="color: #009100">"tradeDate"</span> column=<span class="code-quote" style="color: #009100">"TRADE_DATE_ID"</span> class=<span class="code-quote" style="color: #009100">"name.willdarby.trading.account.TradeDate"</span>
                 cascade=<span class="code-quote" style="color: #009100">"none"</span> not-<span class="code-keyword" style="color: #000091">null</span>=<span class="code-quote" style="color: #009100">"<span class="code-keyword" style="color: #000091; color: #009100">true</span>"</span>/&gt;
    &lt;property name=<span class="code-quote" style="color: #009100">"idx"</span> column=<span class="code-quote" style="color: #009100">"DATE_IDX"</span> type=<span class="code-quote" style="color: #009100">"<span class="code-object" style="color: #910091; color: #009100">short</span>"</span> not-<span class="code-keyword" style="color: #000091">null</span>=<span class="code-quote" style="color: #009100">"<span class="code-keyword" style="color: #000091; color: #009100">true</span>"</span> /&gt;
    ...
  &lt;/class&gt;
</pre> 
                                                            </div>
                                                        </div> 
                                                        <div class="code panel" style="border-width: 1px;; border: 1px solid #cccccc; background: #f5f5f5; font-size: 12px; line-height: 1.333; font-family: monospace; border: 1px solid #cccccc; -moz-border-radius: 3px; border-radius: 3px; margin: 9px 0">
                                                            <div class="codeContent panelContent" style="padding: 9px 12px"> 
                                                                <pre class="code-java" style="margin: 10px 0 0; margin-top: 0; max-height: 30em; overflow: auto; white-space: pre-wrap; word-wrap: normal">
List&lt;Trade&gt; tradeList = tradeDate.getTrades();
     <span class="code-keyword" style="color: #000091">final</span> <span class="code-object" style="color: #910091">int</span> initSize = tradeList.size();
     Trade newTrade = <span class="code-keyword" style="color: #000091">new</span> Trade();
      newTrade.setTradeDate( tradeDate );
      newTrade.setIdx( initSize );
      tradeList.add( newTrade );

      session.flush();

      tradeDate = acct.getTradeDate( trades.getDate() );
      ListIterator&lt;Trade&gt; tradeIter = tradeDate.getTrades().listIterator( initSize );
</pre> 
                                                            </div>
                                                        </div> <p style="margin-top:0;margin-bottom:10px;; margin: 10px 0 0">If the list was not empty prior to executing this code, then tradeIter will point at an empty element and the trade list will now contain initSize+2 elements.</p> </td> 
                                                </tr> 
                                            </tbody>
                                        </table> </td> 
                                </tr> 
                                <tr> 
                                    <td class="email-content-main mobile-expand " style="padding: 0; border-collapse: collapse; border-left: 1px solid #cccccc; border-right: 1px solid #cccccc; border-top: 0; border-bottom: 0; padding: 0 15px 0 16px; background-color: #ffffff" bgcolor="#ffffff"> 
                                        <table id="actions-pattern" cellspacing="0" cellpadding="0" border="0" width="100%" style="border-collapse: collapse; mso-table-lspace: 0; mso-table-rspace: 0; font-family: Arial, sans-serif; font-size: 14px; line-height: 20px; mso-line-height-rule: exactly; mso-text-raise: 1px"> 
                                            <tbody>
                                                <tr> 
                                                    <td id="actions-pattern-container" valign="middle" style="padding: 0; border-collapse: collapse; padding: 10px 0 10px 24px; vertical-align: middle; padding-left: 0"> 
                                                        <table align="left" style="border-collapse: collapse; mso-table-lspace: 0; mso-table-rspace: 0"> 
                                                            <tbody>
                                                                <tr> 
                                                                    <td class="actions-pattern-action-icon-container" style="padding: 0; border-collapse: collapse; font-family: Arial, sans-serif; font-size: 14px; line-height: 20px; mso-line-height-rule: exactly; mso-text-raise: 0; vertical-align: middle"> <a href="https://hibernate.atlassian.net/browse/HHH-10976#add-comment" target="_blank" title="Add Comment" style="color: #3b73af; text-decoration: none"> <img class="actions-pattern-action-icon-image" src="cid:jira-generated-image-static-comment-icon-aeb1c380-724d-47a5-a5af-6bf97b04084a" alt="Add Comment" title="Add Comment" height="16" width="16" border="0" style="vertical-align: middle"> </a> </td> 
                                                                    <td class="actions-pattern-action-text-container" style="padding: 0; border-collapse: collapse; font-family: Arial, sans-serif; font-size: 14px; line-height: 20px; mso-line-height-rule: exactly; mso-text-raise: 4px; padding-left: 5px"> <a href="https://hibernate.atlassian.net/browse/HHH-10976#add-comment" target="_blank" title="Add Comment" style="color: #3b73af; text-decoration: none">Add Comment</a> </td> 
                                                                </tr> 
                                                            </tbody>
                                                        </table> </td> 
                                                </tr> 
                                            </tbody>
                                        </table> </td> 
                                </tr> 
                                <!-- there needs to be content in the cell for it to render in some clients --> 
                                <tr> 
                                    <td class="email-content-rounded-bottom mobile-expand" style="padding: 0; border-collapse: collapse; color: #ffffff; padding: 0 15px 0 16px; height: 5px; line-height: 5px; background-color: #ffffff; border-top: 0; border-left: 1px solid #cccccc; border-bottom: 1px solid #cccccc; border-right: 1px solid #cccccc; border-bottom-right-radius: 5px; border-bottom-left-radius: 5px; mso-line-height-rule: exactly" height="5" bgcolor="#ffffff">&nbsp;</td> 
                                </tr> 
                            </tbody>
                        </table> </td> 
                </tr> 
                <tr> 
                    <td id="footer-pattern" style="padding: 0; border-collapse: collapse; padding: 12px 20px"> 
                        <table id="footer-pattern-container" cellspacing="0" cellpadding="0" border="0" style="border-collapse: collapse; mso-table-lspace: 0; mso-table-rspace: 0"> 
                            <tbody>
                                <tr> 
                                    <td id="footer-pattern-text" class="mobile-resize-text" width="100%" style="padding: 0; border-collapse: collapse; color: #999999; font-size: 12px; line-height: 18px; font-family: Arial, sans-serif; mso-line-height-rule: exactly; mso-text-raise: 2px"> This message was sent by Atlassian JIRA <span id="footer-build-information">(v1000.184.0#100008-<span title="ca15c4ee03c4a2b914a718b5458519a32e786d7c" data-commit-id="ca15c4ee03c4a2b914a718b5458519a32e786d7c}">sha1:ca15c4e</span>)</span> </td> 
                                    <td id="footer-pattern-logo-desktop-container" valign="top" style="padding: 0; border-collapse: collapse; padding-left: 20px; vertical-align: top"> 
                                        <table style="border-collapse: collapse; mso-table-lspace: 0; mso-table-rspace: 0"> 
                                            <tbody>
                                                <tr> 
                                                    <td id="footer-pattern-logo-desktop-padding" style="padding: 0; border-collapse: collapse; padding-top: 3px"> <img id="footer-pattern-logo-desktop" src="cid:jira-generated-image-static-footer-desktop-logo-f73eefd6-4f0c-4c06-8586-e7a7b362f9bb" alt="Atlassian logo" title="Atlassian logo" width="169" height="36" class="image_fix"> </td> 
                                                </tr> 
                                            </tbody>
                                        </table> </td> 
                                </tr> 
                            </tbody>
                        </table> </td> 
                </tr> 
            </tbody>
        </table>   
    </body>
</html>