<!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: 0pt; mso-table-rspace: 0pt; background-color: #f5f5f5; border-collapse: collapse; mso-table-lspace: 0pt; mso-table-rspace: 0pt" bgcolor="#f5f5f5"> 
            <!-- header here --> 
            <tbody>
                <tr> 
                    <td id="header-pattern-container" style="padding: 0px; border-collapse: collapse; padding: 10px 20px"> 
                        <table id="header-pattern" cellspacing="0" cellpadding="0" border="0" style="border-collapse: collapse; mso-table-lspace: 0pt; mso-table-rspace: 0pt"> 
                            <tbody>
                                <tr> 
                                    <td id="header-avatar-image-container" valign="top" style="padding: 0px; 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-415b3ca8-a219-47dc-b730-69e0a20512d3" height="32" width="32" border="0" style="border-radius: 3px; vertical-align: top"> </td> 
                                    <td id="header-text-container" valign="middle" style="padding: 0px; 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="piotr" id="email_piotr" href="https://hibernate.atlassian.net/secure/ViewProfile.jspa?name=piotr" style="color:#6c797f;; color: #3b73af; text-decoration: none">Piotr</a> <strong>created</strong> an issue </td> 
                                </tr> 
                            </tbody>
                        </table> </td> 
                </tr> 
                <tr> 
                    <td id="email-content-container" style="padding: 0px; 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: 0pt; mso-table-rspace: 0pt; 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: 0px; 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: 0px; 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: 0pt; mso-table-rspace: 0pt"> 
                                            <tbody>
                                                <tr> 
                                                    <td class="page-title-pattern-first-line " style="padding: 0px; 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-10340" style="color: #3b73af; text-decoration: none"><img src="cid:jira-generated-image-avatar-7dbd1cd8-bf10-408c-ac9a-6038a4b30233" height="16" width="16" border="0" align="absmiddle" alt="Bug" style="vertical-align: text-bottom"></a> <a href="https://hibernate.atlassian.net/browse/HHH-10340" style="color: #3b73af; text-decoration: none">HHH-10340</a> </td> 
                                                </tr> 
                                                <tr> 
                                                    <td style="vertical-align: top;; padding: 0px; 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-10340" style="color: #3b73af; text-decoration: none">Optimistic locking with the database generated version - Incorrectly incremented version number</a> </span> </td> 
                                                </tr> 
                                            </tbody>
                                        </table> </td> 
                                </tr> 
                                <tr> 
                                    <td class="email-content-main mobile-expand  wrapper-special-margin" style="padding: 0px; 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: 0pt; mso-table-rspace: 0pt"> 
                                            <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: 0px; border-collapse: collapse; font: normal 14px/20px Arial, sans-serif; padding: 2px 0 2px 5px; vertical-align: top"> <img src="cid:jira-generated-image-avatar-7dbd1cd8-bf10-408c-ac9a-6038a4b30233" height="16" width="16" border="0" align="absmiddle" alt="Bug" style="vertical-align: text-bottom"> Bug </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: 0px; border-collapse: collapse; font: normal 14px/20px Arial, sans-serif; padding: 2px 0 2px 5px; vertical-align: top"> 4.3.11 </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: 0px; 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">Attachments:</th> 
                                                    <td style="padding: 0px; border-collapse: collapse; font: normal 14px/20px Arial, sans-serif; padding: 2px 0 2px 5px; vertical-align: top"> hibernate-optimisticlocking-bug.zip </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: 0px; 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: 0px; border-collapse: collapse; font: normal 14px/20px Arial, sans-serif; padding: 2px 0 2px 5px; vertical-align: top"> 26/Nov/2015 07: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: 0px; 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-major-9b9ee378-2df4-47a2-8e1c-788264308061" height="16" width="16" border="0" align="absmiddle" alt="Major" style="vertical-align: text-bottom"> Major </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: 0px; border-collapse: collapse; font: normal 14px/20px Arial, sans-serif; padding: 2px 0 2px 5px; vertical-align: top"> <a class="user-hover" rel="piotr" id="email_piotr" href="https://hibernate.atlassian.net/secure/ViewProfile.jspa?name=piotr" style="color:#6c797f;; color: #3b73af; text-decoration: none">Piotr</a> </td> 
                                                </tr> 
                                            </tbody>
                                        </table> </td> 
                                </tr> 
                                <tr> 
                                    <td class="email-content-main mobile-expand  issue-description-container" style="padding: 0px; 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: 0pt; mso-table-rspace: 0pt; 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: 0px; border-collapse: collapse; padding: 0 0 10px 0"> <p style="margin-top:0;margin-bottom:10px;; margin: 10px 0 0 0; margin-top: 0">I want to use the optimistic locking feature present in hibernate. To do this I configured the mapping for my table as follows:</p> 
                                                        <blockquote style="margin: 10px 0 0 0; border-left: 1px solid #cccccc; color: #707070; margin-left: 19px; padding: 10px 20px"> 
                                                            <p style="margin-top:0;margin-bottom:10px;; margin: 10px 0 0 0; margin-top: 0">&lt;hibernate-mapping package="org.sandbox.optimisticlocking.dao.entity"&gt;<br> &lt;class name="EmployeeEntity" table="employee"&gt;<br> &lt;id name="id" column="employee_id"&gt;<br> &lt;generator class="identity"/&gt;<br> &lt;/id&gt;<br> &lt;version name="version" column="version" type="java.lang.Integer" generated="always"/&gt;<br> &lt;property name="firstName" column="first_name" type="java.lang.String"/&gt;</p> 
                                                            <p style="margin-top:0;margin-bottom:10px;; margin: 10px 0 0 0"> &lt;set name="projects" table="employee_to_project" inverse="true"&gt;<br> &lt;key column="employee_id"/&gt;<br> &lt;many-to-many column="project_id" class="ProjectEntity"/&gt;<br> &lt;/set&gt;<br> &lt;/class&gt;<br> &lt;/hibernate-mapping&gt;</p>
                                                        </blockquote> <p style="margin-top:0;margin-bottom:10px;; margin: 10px 0 0 0">I used generated="always" and created the following trigger in db:</p> 
                                                        <blockquote style="margin: 10px 0 0 0; border-left: 1px solid #cccccc; color: #707070; margin-left: 19px; padding: 10px 20px"> 
                                                            <p style="margin-top:0;margin-bottom:10px;; margin: 10px 0 0 0; margin-top: 0">CREATE OR REPLACE FUNCTION public.tab_employee_update_version()<br> RETURNS trigger<br> LANGUAGE plpgsql<br> AS<br> $body$<br> BEGIN<br> NEW.version = coalesce(OLD.version,0) + 1;<br> RETURN NEW;<br> END;<br> $body$<br> /</p>
                                                        </blockquote> <p style="margin-top:0;margin-bottom:10px;; margin: 10px 0 0 0">Then I run the following code:</p> 
                                                        <blockquote style="margin: 10px 0 0 0; border-left: 1px solid #cccccc; color: #707070; margin-left: 19px; padding: 10px 20px"> 
                                                            <p style="margin-top:0;margin-bottom:10px;; margin: 10px 0 0 0; margin-top: 0">public static void main(String[] args) {<br> ApplicationContext ctx = new ClassPathXmlApplicationContext("optimisticlocking-context.xml");</p> 
                                                            <p style="margin-top:0;margin-bottom:10px;; margin: 10px 0 0 0"> final EmployeeService employeeService = ctx.getBean("employeeService", EmployeeService.class);</p> 
                                                            <p style="margin-top:0;margin-bottom:10px;; margin: 10px 0 0 0"> // INSERT<br> final Integer employeeId = employeeService.save(createEmployee());</p> 
                                                            <p style="margin-top:0;margin-bottom:10px;; margin: 10px 0 0 0"> // SELECT<br> final Employee employee = employeeService.getById(employeeId);</p> 
                                                            <p style="margin-top:0;margin-bottom:10px;; margin: 10px 0 0 0"> // UPDATE<br> employeeService.update(employee);</p>
                                                        </blockquote> <p style="margin-top:0;margin-bottom:10px;; margin: 10px 0 0 0">and get the HibernateOptimisticLockingFailureException despite the fact that employee record was not changed by another transaction meantime:</p> 
                                                        <blockquote style="margin: 10px 0 0 0; border-left: 1px solid #cccccc; color: #707070; margin-left: 19px; padding: 10px 20px"> 
                                                            <p style="margin-top:0;margin-bottom:10px;; margin: 10px 0 0 0; margin-top: 0">Exception in thread "main" org.springframework.orm.hibernate4.HibernateOptimisticLockingFailureException: Object of class <span class="error">[org.sandbox.optimisticlocking.dao.entity.EmployeeEntity]</span> with identifier <span class="error">[1]</span>: optimistic locking failed; nested exception is org.hibernate.StaleObjectStateException: Row was updated or deleted by another transaction (or unsaved-value mapping was incorrect) : <a href="#1" style="color: #3b73af; text-decoration: none">org.sandbox.optimisticlocking.dao.entity.EmployeeEntity#1</a><br> at org.springframework.orm.hibernate4.SessionFactoryUtils.convertHibernateAccessException(SessionFactoryUtils.java:202)<br> at org.springframework.orm.hibernate4.HibernateTransactionManager.convertHibernateAccessException(HibernateTransactionManager.java:730)<br> at org.springframework.orm.hibernate4.HibernateTransactionManager.doCommit(HibernateTransactionManager.java:592)<br> at org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(AbstractPlatformTransactionManager.java:761)<br> at org.springframework.transaction.support.AbstractPlatformTransactionManager.commit(AbstractPlatformTransactionManager.java:730)<br> at org.springframework.transaction.interceptor.TransactionAspectSupport.commitTransactionAfterReturning(TransactionAspectSupport.java:485)<br> at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:291)<br> at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:96)<br> at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)<br> at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:207)<br> at com.sun.proxy.$Proxy15.update(Unknown Source)<br> at org.sandbox.optimisticlocking.App.main(App.java:22)<br> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)<br> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)<br> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)<br> at java.lang.reflect.Method.invoke(Method.java:606)<br> at com.intellij.rt.execution.application.AppMain.main(AppMain.java:134)<br> Caused by: org.hibernate.StaleObjectStateException: Row was updated or deleted by another transaction (or unsaved-value mapping was incorrect) : <a href="#1" style="color: #3b73af; text-decoration: none">org.sandbox.optimisticlocking.dao.entity.EmployeeEntity#1</a><br> at org.hibernate.persister.entity.AbstractEntityPersister.check(AbstractEntityPersister.java:2541)<br> at org.hibernate.persister.entity.AbstractEntityPersister.update(AbstractEntityPersister.java:3285)<br> at org.hibernate.persister.entity.AbstractEntityPersister.updateOrInsert(AbstractEntityPersister.java:3183)<br> at org.hibernate.persister.entity.AbstractEntityPersister.update(AbstractEntityPersister.java:3525)<br> at org.hibernate.action.internal.EntityUpdateAction.execute(EntityUpdateAction.java:159)<br> at org.hibernate.engine.spi.ActionQueue.executeActions(ActionQueue.java:465)<br> at org.hibernate.engine.spi.ActionQueue.executeActions(ActionQueue.java:351)<br> at org.hibernate.event.internal.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:350)<br> at org.hibernate.event.internal.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:56)<br> at org.hibernate.internal.SessionImpl.flush(SessionImpl.java:1258)<br> at org.hibernate.internal.SessionImpl.managedFlush(SessionImpl.java:425)<br> at org.hibernate.engine.transaction.internal.jdbc.JdbcTransaction.beforeTransactionCommit(JdbcTransaction.java:101)<br> at org.hibernate.engine.transaction.spi.AbstractTransactionImpl.commit(AbstractTransactionImpl.java:177)<br> at org.springframework.orm.hibernate4.HibernateTransactionManager.doCommit(HibernateTransactionManager.java:584)<br> ... 14 more</p>
                                                        </blockquote> <p style="margin-top:0;margin-bottom:10px;; margin: 10px 0 0 0">Transaction boundaries are on service level (the EmployeeService class is marked with the @Transactional annotation).</p> <p style="margin-top:0;margin-bottom:10px;; margin: 10px 0 0 0">I debugged the code and found out, that hibernate automatically increases the version during the update:</p> 
                                                        <blockquote style="margin: 10px 0 0 0; border-left: 1px solid #cccccc; color: #707070; margin-left: 19px; padding: 10px 20px"> 
                                                            <p style="margin-top:0;margin-bottom:10px;; margin: 10px 0 0 0; margin-top: 0">Hibernate: insert into employee (employee_id, first_name) values (null, ?)<br> 14:35:24,724 TRACE main sql.BasicBinder:81 - binding parameter <span class="error">[1]</span> as <span class="error">[VARCHAR]</span> - <span class="error">[Piotr]</span><br> Hibernate: select employeeen_.version as version2_0_ from employee employeeen_ where employeeen_.employee_id=?<br> 14:35:24,730 TRACE main sql.BasicBinder:81 - binding parameter <span class="error">[1]</span> as <span class="error">[INTEGER]</span> - <span class="error">[1]</span><br> 14:35:24,732 TRACE main sql.BasicExtractor:78 - extracted value (<span class="error">[version2_0_]</span> : <span class="error">[INTEGER]</span>) - <span class="error">[0]</span></p> 
                                                            <p style="margin-top:0;margin-bottom:10px;; margin: 10px 0 0 0">Hibernate: select employeeen0_.employee_id as employee1_0_0_, employeeen0_.version as version2_0_0_, employeeen0_.first_name as first_na3_0_0_ from employee employeeen0_ where employeeen0_.employee_id=?<br> 14:35:24,745 TRACE main sql.BasicBinder:81 - binding parameter <span class="error">[1]</span> as <span class="error">[INTEGER]</span> - <span class="error">[1]</span><br> 14:35:24,749 TRACE main sql.BasicExtractor:78 - extracted value (<span class="error">[version2_0_0_]</span> : <span class="error">[INTEGER]</span>) - <span class="error">[0]</span><br> 14:35:24,750 TRACE main sql.BasicExtractor:78 - extracted value (<span class="error">[first_na3_0_0_]</span> : <span class="error">[VARCHAR]</span>) - <span class="error">[Piotr]</span><br> 14:35:24,756 TRACE main type.CollectionType:783 - Created collection wrapper: <a href="#1" style="color: #3b73af; text-decoration: none">org.sandbox.optimisticlocking.dao.entity.EmployeeEntity.projects#1</a><br> Hibernate: select projects0_.employee_id as employee1_0_0_, projects0_.project_id as project_2_1_0_, projectent1_.project_id as project_1_2_1_, projectent1_.name as name2_2_1_ from employee_to_project projects0_ inner join project projectent1_ on projects0_.project_id=projectent1_.project_id where projects0_.employee_id=?<br> 14:35:24,762 TRACE main sql.BasicBinder:81 - binding parameter <span class="error">[1]</span> as <span class="error">[INTEGER]</span> - <span class="error">[1]</span></p> 
                                                            <p style="margin-top:0;margin-bottom:10px;; margin: 10px 0 0 0">Hibernate: update employee set first_name=? where employee_id=? and version=?<br> 14:35:24,773 TRACE main sql.BasicBinder:81 - binding parameter <span class="error">[1]</span> as <span class="error">[VARCHAR]</span> - <span class="error">[Piotr]</span><br> 14:35:24,773 TRACE main sql.BasicBinder:81 - binding parameter <span class="error">[2]</span> as <span class="error">[INTEGER]</span> - <span class="error">[1]</span><br> 14:35:24,773 TRACE main sql.BasicBinder:81 - binding parameter <span class="error">[3]</span> as <span class="error">[INTEGER]</span> - <span class="error">[1]</span></p>
                                                        </blockquote> <p style="margin-top:0;margin-bottom:10px;; margin: 10px 0 0 0">Additionally, I found out that if I select and update a record in the same transaction, hibernate does not increase the version and everything works fine. It works fine also after removing the 'set' element from the mapping file:</p> 
                                                        <blockquote style="margin: 10px 0 0 0; border-left: 1px solid #cccccc; color: #707070; margin-left: 19px; padding: 10px 20px"> 
                                                            <p style="margin-top:0;margin-bottom:10px;; margin: 10px 0 0 0; margin-top: 0">&lt;set name="projects" table="employee_to_project" inverse="true"&gt;<br> &lt;key column="employee_id"/&gt;<br> &lt;many-to-many column="project_id" class="ProjectEntity"/&gt;<br> &lt;/set&gt;</p>
                                                        </blockquote> <p style="margin-top:0;margin-bottom:10px;; margin: 10px 0 0 0">I am attaching an application, which exposes the error. To reproduce the bug run the App.java class.</p> </td> 
                                                </tr> 
                                            </tbody>
                                        </table> </td> 
                                </tr> 
                                <tr> 
                                    <td class="email-content-main mobile-expand " style="padding: 0px; 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: 0pt; mso-table-rspace: 0pt; 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: 0px; border-collapse: collapse; padding: 10px 0 10px 24px; vertical-align: middle; padding-left: 0"> 
                                                        <table align="left" style="border-collapse: collapse; mso-table-lspace: 0pt; mso-table-rspace: 0pt"> 
                                                            <tbody>
                                                                <tr> 
                                                                    <td class="actions-pattern-action-icon-container" style="padding: 0px; border-collapse: collapse; font-family: Arial, sans-serif; font-size: 14px; line-height: 20px; mso-line-height-rule: exactly; mso-text-raise: 0px; vertical-align: middle"> <a href="https://hibernate.atlassian.net/browse/HHH-10340#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-5af7f8f4-5cfa-4acd-ad35-1fb25504d86b" 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: 0px; 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-10340#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: 0px; 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: 0px; border-collapse: collapse; padding: 12px 20px"> 
                        <table id="footer-pattern-container" cellspacing="0" cellpadding="0" border="0" style="border-collapse: collapse; mso-table-lspace: 0pt; mso-table-rspace: 0pt"> 
                            <tbody>
                                <tr> 
                                    <td id="footer-pattern-text" class="mobile-resize-text" width="100%" style="padding: 0px; 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">(v7.1.0-OD-01-053#71000-<span title="a4ca3dd735431e5de35415056c11f76d12be43b7" data-commit-id="a4ca3dd735431e5de35415056c11f76d12be43b7}">sha1:a4ca3dd</span>)</span> </td> 
                                    <td id="footer-pattern-logo-desktop-container" valign="top" style="padding: 0px; border-collapse: collapse; padding-left: 20px; vertical-align: top"> 
                                        <table style="border-collapse: collapse; mso-table-lspace: 0pt; mso-table-rspace: 0pt"> 
                                            <tbody>
                                                <tr> 
                                                    <td id="footer-pattern-logo-desktop-padding" style="padding: 0px; border-collapse: collapse; padding-top: 3px"> <img id="footer-pattern-logo-desktop" src="cid:jira-generated-image-static-footer-desktop-logo-2ac3871f-d965-427c-946f-50a6ccf131d0" 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>