<!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-65ea3eaa-62bf-478a-b11f-0ac580393de6" 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="toudick" id="email_toudick" href="https://hibernate.atlassian.net/secure/ViewProfile.jspa?name=toudick" style="color:#6c797f;; color: #3b73af; text-decoration: none">Waldemar Prabucki</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"> </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/HV" style="color: #3b73af; text-decoration: none">Hibernate Validator</a> / <a href="https://hibernate.atlassian.net/browse/HV-1079" style="color: #3b73af; text-decoration: none"><img src="cid:jira-generated-image-avatar-8aabc66b-2711-41ff-8a91-ff2f3ca55b86" height="16" width="16" border="0" align="absmiddle" alt="Bug" style="vertical-align: text-bottom"></a> <a href="https://hibernate.atlassian.net/browse/HV-1079" style="color: #3b73af; text-decoration: none">HV-1079</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/HV-1079" style="color: #3b73af; text-decoration: none">HibernateValidation sometimes fails to load the Validation Constraints from method</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-avatar-8aabc66b-2711-41ff-8a91-ff2f3ca55b86" 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: 0; border-collapse: collapse; font: normal 14px/20px Arial, sans-serif; padding: 2px 0 2px 5px; vertical-align: top"> 4.3.2.Final </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">Created:</th>
<td style="padding: 0; border-collapse: collapse; font: normal 14px/20px Arial, sans-serif; padding: 2px 0 2px 5px; vertical-align: top"> 12/Jul/2016 03:50 AM </td>
</tr>
<tr>
<th style="color: #707070; font: normal 14px/20px Arial, sans-serif; text-align: left; vertical-align: top; padding: 2px 0">Environment:</th>
<td style="padding: 0; border-collapse: collapse; font: normal 14px/20px Arial, sans-serif; padding: 2px 0 2px 5px; vertical-align: top"> IBM WebSphere 8.0.0.9 <br> Hibernate Validator 4.3.2.Final </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-critical-61b9b8a1-9ddb-441b-8cd0-edfb1dfa08ab" height="16" width="16" border="0" align="absmiddle" alt="Critical" style="vertical-align: text-bottom"> Critical </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="toudick" id="email_toudick" href="https://hibernate.atlassian.net/secure/ViewProfile.jspa?name=toudick" style="color:#6c797f;; color: #3b73af; text-decoration: none">Waldemar Prabucki</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 Running the validation from within the REST Application, the Validation is not being executed trustworthy, sometimes resulting in positive validation however the given parameters should result in ConstraintViolation.</p> <p style="margin-top:0;margin-bottom:10px;; margin: 10px 0 0">REST Request was triggered by SOAP-UI and/or Postman.<br> Request has been successfully parsed and validation of input Parameters has been triggered.</p> <p style="margin-top:0;margin-bottom:10px;; margin: 10px 0 0">This is how we trigger validation:</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"><span class="code-keyword" style="color: #000091">public</span> <span class="code-keyword" style="color: #000091">final</span> class ValidationHelper {
<span class="code-comment" style="color: #808080">//[...]
</span> <span class="code-keyword" style="color: #000091">private</span> <span class="code-keyword" style="color: #000091">static</span> MethodValidator validator = <span class="code-keyword" style="color: #000091">null</span>;
<span class="code-keyword" style="color: #000091">public</span> <span class="code-keyword" style="color: #000091">static</span> void validateInput(MessageContext context) {
org.apache.wink.server.internal.handlers.SearchResult searchResult = loadFromContext(context);
<span class="code-comment" style="color: #808080">//[...]
</span> Method javaMethod = getMethodProxyFromContext(searchResult);
<span class="code-object" style="color: #910091">Object</span>[] parameters = getInvocationParameters(searchResult);
<span class="code-object" style="color: #910091">Object</span> instance = getMethodInstanceFromContext(context, searchResult);
<span class="code-comment" style="color: #808080">// Use all <span class="code-keyword" style="color: #000091; color: #808080">this</span> to perform validation...
</span> Set<MethodConstraintViolation<<span class="code-object" style="color: #910091">Object</span>>> violations =
getValidatorInstance().validateAllParameters(instance, javaMethod, parameters);
<span class="code-keyword" style="color: #000091">if</span> (!violations.isEmpty()) {
<span class="code-keyword" style="color: #000091">throw</span> <span class="code-keyword" style="color: #000091">new</span> RestInputParameterValidationException(violations);
}
}
<span class="code-keyword" style="color: #000091">private</span> <span class="code-keyword" style="color: #000091">static</span> MethodValidator getValidatorInstance() {
<span class="code-keyword" style="color: #000091">synchronized</span> (ValidationHelper.class) {
<span class="code-keyword" style="color: #000091">if</span> (validator == <span class="code-keyword" style="color: #000091">null</span>) {
MethodValidator validatorTmp = Validation.byProvider(HibernateValidator.class).configure()
.buildValidatorFactory().getValidator().unwrap(MethodValidator.class);
validator = validatorTmp;
}
}
<span class="code-keyword" style="color: #000091">return</span> validator;
}
}
</pre>
</div>
</div> <p style="margin-top:0;margin-bottom:10px;; margin: 10px 0 0">Previosly Validatoor instance was loaded on each execution like:</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"><span class="code-keyword" style="color: #000091">public</span> <span class="code-keyword" style="color: #000091">final</span> class ValidationHelper {
<span class="code-comment" style="color: #808080">//[...]
</span> <span class="code-keyword" style="color: #000091">public</span> <span class="code-keyword" style="color: #000091">static</span> void validateInput(MessageContext context) {
org.apache.wink.server.internal.handlers.SearchResult searchResult = loadFromContext(context);
<span class="code-comment" style="color: #808080">//[...]
</span> Method javaMethod = getMethodProxyFromContext(searchResult);
<span class="code-object" style="color: #910091">Object</span>[] parameters = getInvocationParameters(searchResult);
<span class="code-object" style="color: #910091">Object</span> instance = getMethodInstanceFromContext(context, searchResult);
<span class="code-comment" style="color: #808080">// Use all <span class="code-keyword" style="color: #000091; color: #808080">this</span> to perform validation...
</span> MethodValidator validatorTmp = Validation.byProvider(HibernateValidator.class).configure()
.buildValidatorFactory().getValidator().unwrap(MethodValidator.class);
Set<MethodConstraintViolation<<span class="code-object" style="color: #910091">Object</span>>> violations =
validatorTmp.validateAllParameters(instance, javaMethod, parameters);
<span class="code-keyword" style="color: #000091">if</span> (!violations.isEmpty()) {
<span class="code-keyword" style="color: #000091">throw</span> <span class="code-keyword" style="color: #000091">new</span> RestInputParameterValidationException(violations);
}
}
}
</pre>
</div>
</div> <p style="margin-top:0;margin-bottom:10px;; margin: 10px 0 0">The static Validator has been implemented to make the results more stable. However if now the validator fails to load constraints it stays so until application restart...</p> <p style="margin-top:0;margin-bottom:10px;; margin: 10px 0 0">After some debugging with validator loaded on demand and the same request being validated I have found out following:</p>
<ol>
<li>Method Instance given for Validation and Proxy-Bean Instance is same.</li>
<li>Parameter instances changes, but always contain same value.</li>
<li>Sometimes ParameterMetaData does not contain constraints However Method Instance as mentioned does not change and contains all required.</li>
</ol> <p style="margin-top:0;margin-bottom:10px;; margin: 10px 0 0">I was not able to reproduce it in jUnit on same JVM. Not sure it it is somehow connected with running on WebSphere.</p> <p style="margin-top:0;margin-bottom:10px;; margin: 10px 0 0">WebSphere Version Log</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">
************ Start Display Current Environment ************
WebSphere Platform 8.0.0.9 [BASE 8.0.0.9 cf091421.02] running with process name iap\iapnode0\server and process id 15048
Host Operating <span class="code-object" style="color: #910091">System</span> is Windows 7, version 6.1
Java version = 1.6.0, Java <span class="code-object" style="color: #910091">Compiler</span> = j9jit26, Java VM name = IBM J9 VM
was.install.root = c:\opt\IBM\WebSphere\AppServer
user.install.root = c:\opt\IBM\WebSphere\Profiles\base
Java Home = c:\opt\IBM\WebSphere\AppServer\java\jre
ws.ext.dirs = c:\opt\IBM\WebSphere\AppServer/java/lib;c:\opt\IBM\WebSphere\Profiles\base/classes;c:\opt\IBM\WebSphere\AppServer/classes;c:\opt\IBM\WebSphere\AppServer/lib;c:\opt\IBM\WebSphere\AppServer/installedChannels;c:\opt\IBM\WebSphere\AppServer/lib/ext;c:\opt\IBM\WebSphere\AppServer/web/help;c:\opt\IBM\WebSphere\AppServer/deploytool/itp/plugins/com.ibm.etools.ejbdeploy/runtime
Classpath = c:\opt\IBM\WebSphere\Profiles\base/properties;c:\opt\IBM\WebSphere\AppServer/properties;c:\opt\IBM\WebSphere\AppServer/lib/startup.jar;c:\opt\IBM\WebSphere\AppServer/lib/bootstrap.jar;c:\opt\IBM\WebSphere\AppServer/lib/jsf-nls.jar;c:\opt\IBM\WebSphere\AppServer/lib/lmproxy.jar;c:\opt\IBM\WebSphere\AppServer/lib/urlprotocols.jar;c:\opt\IBM\WebSphere\AppServer/deploytool/itp/batchboot.jar;c:\opt\IBM\WebSphere\AppServer/deploytool/itp/batch2.jar;c:\opt\IBM\WebSphere\AppServer/java/lib/tools.jar
Java Library path = c:\opt\IBM\WebSphere\AppServer/lib/<span class="code-keyword" style="color: #000091">native</span>/win/x86_32/;C:\opt\IBM\WebSphere\AppServer\java\jre\bin\<span class="code-keyword" style="color: #000091">default</span>;C:\opt\IBM\WebSphere\AppServer\java\jre\bin;C:\WINDOWS\SysWOW64;C:\WINDOWS;C:\opt\IBM\WebSphere\AppServer\lib\<span class="code-keyword" style="color: #000091">native</span>\win\x86_32;C:\opt\IBM\WebSphere\AppServer\bin;C:\opt\IBM\WebSphere\AppServer\java\bin;C:\opt\IBM\WebSphere\AppServer\java\jre\bin;C:\app\software\python\Scripts;\bin;\usr\bin;\cmd;c:\app\tools\apache-maven-3.0.4\bin;c:\app\tools\apache-ant-1.9.6\bin;C:\app\software\python\Scripts;C:\app\software\Git\usr\bin;C:\app\software\Git\bin;C:\app\software\python\Scripts;C:\app\software\Git\usr\bin;C:\app\software\Git\bin;C:\ProgramData\Oracle\Java\javapath;C:\app\software\python\Scripts\;C:\app\software\python\;C:\Program Files (x86)\Apache-ANT-1.9.4\bin;c:\app\tools\apache-maven-3.0.4\bin;c:\program files (x86)\intel\icls client\;c:\program files\intel\icls client\;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\system32\wbem;C:\WINDOWS\system32\windowspowershell\v1.0\;c:\program files\intel\intel(r) management engine components\dal;c:\program files\intel\intel(r) management engine components\ipt;c:\program files (x86)\intel\intel(r) management engine components\dal;c:\program files (x86)\intel\intel(r) management engine components\ipt;c:\program files\tortoisesvn\bin;c:\program files (x86)\git\cmd;c:\program files\ibm\gsk8\lib64;c:\program files (x8;c:\app\tools\apache-ant-1.9.6\bin\;c:\program files (x86)\ibm\gs;.;
Orb Version = IBM Java ORB build orb626ifx-20140404.00 (IX90144)
************* End Display Current Environment *************
</pre>
</div>
</div> <p style="margin-top:0;margin-bottom:10px;; margin: 10px 0 0">In current situation the validator is no use at it can't guarantee the results <img class="emoticon" src="cid:jira-generated-image-static-sad-7d8c9ae3-d4cb-4495-9be5-566b8881cf9f" height="16" width="16" align="absmiddle" alt="" border="0"></p> <p style="margin-top:0;margin-bottom:10px;; margin: 10px 0 0">Please let me know, if I can provide any further details.</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/HV-1079#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-9082afe4-7ad8-4a78-bd33-c7fa8de377a7" 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/HV-1079#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"> </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.148.2#100005-<span title="f06b59a76c64f4b30a767e7de652ea2471420bf9" data-commit-id="f06b59a76c64f4b30a767e7de652ea2471420bf9}">sha1:f06b59a</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-dc9dfba3-0dc4-4e9c-af07-e43b6ea310a3" 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>