<!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: #333; 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"> 
            <!-- header here --> 
            <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"> 
                        <tr> 
                            <td id="header-avatar-image-container" valign="top" style="padding: 0px; border-collapse: collapse; vertical-align: top; width: 32px; padding-right: 8px"> <img id="header-avatar-image" class="image_fix" src="https://secure.gravatar.com/avatar/12df4da7e3351be801bc16b66caf8038?d=mm&amp;s=48" 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="hardy.ferentschik" id="email_hardy.ferentschik" href="https://hibernate.atlassian.net/secure/ViewProfile.jspa?name=hardy.ferentschik" style="color:#6c797f;; color: #3b73af; text-decoration: none">Hardy Ferentschik</a> <strong>created</strong> an issue 
                            </td> 
                        </tr> 
                    </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"> 
                        <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: #fff; padding: 0 15px 0 16px; height: 15px; background-color: #fff; border-left: 1px solid #ccc; border-top: 1px solid #ccc; border-right: 1px solid #ccc; 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">
                                &nbsp;
                            </td> 
                        </tr> 
                        <tr> 
                            <td class="email-content-main mobile-expand " style="padding: 0px; border-collapse: collapse; border-left: 1px solid #ccc; border-right: 1px solid #ccc; border-top: 0; border-bottom: 0; padding: 0 15px 0 16px; background-color: #fff"> 
                                <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"> 
                                    <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/HSEARCH" style="color: #3b73af; text-decoration: none">Hibernate Search</a> / <a href="https://hibernate.atlassian.net/browse/HSEARCH-1708" style="color: #3b73af; text-decoration: none"><img src="cid:jira-generated-image-static-bug-d8b024f1-821f-4041-bad3-e6405028dde4" height="16" width="16" border="0" align="absmiddle" alt="Bug" style="vertical-align: text-bottom" /></a> <a href="https://hibernate.atlassian.net/browse/HSEARCH-1708" style="color: #3b73af; text-decoration: none">HSEARCH-1708</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/HSEARCH-1708" style="color: #3b73af; text-decoration: none">Using DistanceSortField does not verify the field parameter passed to the constructor</a> </span> 
                                        </td> 
                                    </tr> 
                                </table> 
                            </td> 
                        </tr> 
                        <tr> 
                            <td class="email-content-main mobile-expand  wrapper-special-margin" style="padding: 0px; border-collapse: collapse; border-left: 1px solid #ccc; border-right: 1px solid #ccc; border-top: 0; border-bottom: 0; padding: 0 15px 0 16px; background-color: #fff; padding-top: 10px; padding-bottom: 5px"> 
                                <table class="keyvalue-table" style="border-collapse: collapse; mso-table-lspace: 0pt; mso-table-rspace: 0pt"> 
                                    <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-static-bug-d8b024f1-821f-4041-bad3-e6405028dde4" 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">
                                             5.0.0.Beta1 
                                        </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">
                                            Components:
                                        </th> 
                                        <td style="padding: 0px; border-collapse: collapse; font: normal 14px/20px Arial, sans-serif; padding: 2px 0 2px 5px; vertical-align: top">
                                             spatial 
                                        </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">
                                             03/Nov/2014 11:09 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-487d73e2-e61f-44df-b095-c98f7c415aa7" 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="hardy.ferentschik" id="email_hardy.ferentschik" href="https://hibernate.atlassian.net/secure/ViewProfile.jspa?name=hardy.ferentschik" style="color:#6c797f;; color: #3b73af; text-decoration: none">Hardy Ferentschik</a> 
                                        </td> 
                                    </tr> 
                                </table> 
                            </td> 
                        </tr> 
                        <tr> 
                            <td class="email-content-main mobile-expand  issue-description-container" style="padding: 0px; border-collapse: collapse; border-left: 1px solid #ccc; border-right: 1px solid #ccc; border-top: 0; border-bottom: 0; padding: 0 15px 0 16px; background-color: #fff; padding-top: 5px; padding-bottom: 10px"> 
                                <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"> 
                                    <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">It is possible to use <tt>DistanceSortField</tt> on non existent or non spatial fields without warning or error. From <tt>SpatialIndexingTest</tt>:</p> 
                                            <div class="code panel" style="border-style: solid;border-width: 1px;; border: 1px solid #ccc; background: #f5f5f5; font-size: 12px; line-height: 1.333; font-family: monospace; border: 1px solid #ccc; -moz-border-radius: 3px 3px 3px 3px; border-radius: 3px 3px 3px 3px; margin: 9px 0">
                                                <div class="codeHeader panelHeader" style="border-bottom-width: 1px;border-bottom-style: solid;; border-bottom: 1px solid #ccc; padding: 9px 12px">
                                                    <b>SpatialIndexingTest.java</b>
                                                </div>
                                                <div class="codeContent panelContent" style="padding: 9px 12px"> 
                                                    <pre class="code-java" style="margin: 10px 0 0 0; max-height: 30em; overflow: auto; white-space: pre-wrap; word-wrap: normal">
@Test
        <span class="code-keyword" style="color: #000091">public</span> void testNonGeoDistanceSort() <span class="code-keyword" style="color: #000091">throws</span> Exception {
                NonGeoPOI poi = <span class="code-keyword" style="color: #000091">new</span> NonGeoPOI( 1, <span class="code-quote" style="color: #009100">&quot;Distance to 24,32 : 0&quot;</span>, 24.0d, <span class="code-keyword" style="color: #000091">null</span>, &quot;&quot; );
                NonGeoPOI poi2 = <span class="code-keyword" style="color: #000091">new</span> NonGeoPOI( 2, <span class="code-quote" style="color: #009100">&quot;Distance to 24,32 : 24.45&quot;</span>, 24.2d, 31.9d, &quot;&quot; );
                NonGeoPOI poi3 = <span class="code-keyword" style="color: #000091">new</span> NonGeoPOI( 3, <span class="code-quote" style="color: #009100">&quot;Distance to 24,32 : 10.16&quot;</span>, 24.0d, 31.9d, &quot;&quot; );
                NonGeoPOI poi4 = <span class="code-keyword" style="color: #000091">new</span> NonGeoPOI( 4, <span class="code-quote" style="color: #009100">&quot;Distance to 24,32 : 15.06&quot;</span>, 23.9d, 32.1d, &quot;&quot; );
                NonGeoPOI poi5 = <span class="code-keyword" style="color: #000091">new</span> NonGeoPOI( 5, <span class="code-quote" style="color: #009100">&quot;Distance to 24,32 : 11.12&quot;</span>, 23.9d, 32.0d, &quot;&quot; );
                NonGeoPOI poi6 = <span class="code-keyword" style="color: #000091">new</span> NonGeoPOI( 6, <span class="code-quote" style="color: #009100">&quot;Distance to 24,32 : 22.24&quot;</span>, 24.2d, 32.0d, &quot;&quot; );

                FullTextSession fullTextSession = Search.getFullTextSession( openSession() );

                Transaction tx = fullTextSession.beginTransaction();
                fullTextSession.save( poi );
                fullTextSession.save( poi2 );
                fullTextSession.save( poi3 );
                fullTextSession.save( poi4 );
                fullTextSession.save( poi5 );
                fullTextSession.save( poi6 );
                tx.commit();

                tx = fullTextSession.beginTransaction();
                <span class="code-object" style="color: #910091">double</span> centerLatitude = 24.0d;
                <span class="code-object" style="color: #910091">double</span> centerLongitude = 32.0d;

                <span class="code-keyword" style="color: #000091">final</span> QueryBuilder builder = fullTextSession.getSearchFactory()
                                .buildQueryBuilder().forEntity( NonGeoPOI.class ).get();

                org.apache.lucene.search.Query luceneQuery = builder.all().createQuery();

                FullTextQuery hibQuery = fullTextSession.createFullTextQuery( luceneQuery, NonGeoPOI.class );
                Sort distanceSort = <span class="code-keyword" style="color: #000091">new</span> Sort( <span class="code-keyword" style="color: #000091">new</span> DistanceSortField( centerLatitude, centerLongitude, <span class="code-quote" style="color: #009100">&quot;location&quot;</span> ));
                hibQuery.setSort( distanceSort );
                hibQuery.setProjection( FullTextQuery.THIS, FullTextQuery.SPATIAL_DISTANCE );
                hibQuery.setSpatialParameters( centerLatitude, centerLongitude, <span class="code-quote" style="color: #009100">&quot;location&quot;</span> );
                List&lt;<span class="code-object" style="color: #910091">Object</span>[]&gt; results = hibQuery.list();

                <span class="code-object" style="color: #910091">Double</span> previousDistance = (<span class="code-object" style="color: #910091">Double</span>) results.get( 0 )[1];
                <span class="code-keyword" style="color: #000091">for</span> ( <span class="code-object" style="color: #910091">Object</span>[] projectionEntry : results ) {
                        <span class="code-object" style="color: #910091">Double</span> currentDistance = (<span class="code-object" style="color: #910091">Double</span>) projectionEntry[1];
                        assertTrue( previousDistance + <span class="code-quote" style="color: #009100">&quot; should be &lt;= &quot;</span> + currentDistance, previousDistance &lt;= currentDistance );
                        previousDistance = currentDistance;
                }

                tx.commit();
        }
</pre> 
                                                </div>
                                            </div> 
                                            <p style="margin-top:0;margin-bottom:10px;; margin: 10px 0 0 0">where <tt>NonGeoPOI</tt> looks like this:</p> 
                                            <div class="code panel" style="border-style: solid;border-width: 1px;; border: 1px solid #ccc; background: #f5f5f5; font-size: 12px; line-height: 1.333; font-family: monospace; border: 1px solid #ccc; -moz-border-radius: 3px 3px 3px 3px; border-radius: 3px 3px 3px 3px; margin: 9px 0">
                                                <div class="codeHeader panelHeader" style="border-bottom-width: 1px;border-bottom-style: solid;; border-bottom: 1px solid #ccc; padding: 9px 12px">
                                                    <b>NonGeoPOI.java</b>
                                                </div>
                                                <div class="codeContent panelContent" style="padding: 9px 12px"> 
                                                    <pre class="code-java" style="margin: 10px 0 0 0; max-height: 30em; overflow: auto; white-space: pre-wrap; word-wrap: normal">
@Entity
@Indexed
<span class="code-keyword" style="color: #000091">public</span> class NonGeoPOI {
        @Id
        <span class="code-object" style="color: #910091">Integer</span> id;

        @Field(store = Store.YES)
        <span class="code-object" style="color: #910091">String</span> name;

        @Field(store = Store.YES, index = Index.YES)
        <span class="code-object" style="color: #910091">String</span> type;

        @Field(store = Store.YES, index = Index.YES)
        @NumericField
        <span class="code-object" style="color: #910091">Double</span> latitude;
        @Field(store = Store.YES, index = Index.YES)
        @NumericField
        <span class="code-object" style="color: #910091">Double</span> longitude;

        <span class="code-keyword" style="color: #000091">public</span> NonGeoPOI(<span class="code-object" style="color: #910091">Integer</span> id, <span class="code-object" style="color: #910091">String</span> name, <span class="code-object" style="color: #910091">Double</span> latitude, <span class="code-object" style="color: #910091">Double</span> longitude, <span class="code-object" style="color: #910091">String</span> type) {
                <span class="code-keyword" style="color: #000091">this</span>.id = id;
                <span class="code-keyword" style="color: #000091">this</span>.name = name;
                <span class="code-keyword" style="color: #000091">this</span>.latitude = latitude;
                <span class="code-keyword" style="color: #000091">this</span>.longitude = longitude;
                <span class="code-keyword" style="color: #000091">this</span>.type = type;
        }

        <span class="code-keyword" style="color: #000091">public</span> NonGeoPOI() {
        }

        <span class="code-keyword" style="color: #000091">public</span> <span class="code-object" style="color: #910091">Integer</span> getId() {
                <span class="code-keyword" style="color: #000091">return</span> id;
        }

        <span class="code-keyword" style="color: #000091">public</span> <span class="code-object" style="color: #910091">String</span> getName() {
                <span class="code-keyword" style="color: #000091">return</span> name;
        }

        <span class="code-keyword" style="color: #000091">public</span> <span class="code-object" style="color: #910091">double</span> getLatitude() {
                <span class="code-keyword" style="color: #000091">return</span> latitude;
        }

        <span class="code-keyword" style="color: #000091">public</span> <span class="code-object" style="color: #910091">double</span> getLongitude() {
                <span class="code-keyword" style="color: #000091">return</span> longitude;
        }

        <span class="code-keyword" style="color: #000091">public</span> <span class="code-object" style="color: #910091">String</span> getType() {
                <span class="code-keyword" style="color: #000091">return</span> type;
        }
}
</pre> 
                                                </div>
                                            </div> 
                                            <p style="margin-top:0;margin-bottom:10px;; margin: 10px 0 0 0">The test refers to a filed <tt>location</tt> which does not even exist. The code does neither fail or log a warning. The projected distance value is constant for all indexed points. </p> 
                                            <p style="margin-top:0;margin-bottom:10px;; margin: 10px 0 0 0">One could try to verify whether the field exists using the meta data, but this requires that the targeted entity is known. What would one do, if all entities are targeted? Does this even make sense?</p> 
                                        </td> 
                                    </tr> 
                                </table> 
                            </td> 
                        </tr> 
                        <tr> 
                            <td class="email-content-main mobile-expand " style="padding: 0px; border-collapse: collapse; border-left: 1px solid #ccc; border-right: 1px solid #ccc; border-top: 0; border-bottom: 0; padding: 0 15px 0 16px; background-color: #fff"> 
                                <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"> 
                                    <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"> 
                                                <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/HSEARCH-1708#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-3c5b2bc9-2d70-4762-ad80-37cdb981d827" 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/HSEARCH-1708#add-comment" target="_blank" title="Add Comment" style="color: #3b73af; text-decoration: none">Add Comment</a> 
                                                    </td> 
                                                </tr> 
                                            </table> 
                                        </td> 
                                    </tr> 
                                </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: #fff; padding: 0 15px 0 16px; height: 5px; line-height: 5px; background-color: #fff; border-top: 0; border-left: 1px solid #ccc; border-bottom: 1px solid #ccc; border-right: 1px solid #ccc; border-bottom-right-radius: 5px; border-bottom-left-radius: 5px; mso-line-height-rule: exactly">
                                &nbsp;
                            </td> 
                        </tr> 
                    </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"> 
                        <tr> 
                            <td id="footer-pattern-text" class="mobile-resize-text" width="100%" style="padding: 0px; border-collapse: collapse; color: #999; 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">(v6.4-OD-09-005#64005-<span title="a6d51a03bd4ee52383447adea72d1accf7dd6622" data-commit-id="a6d51a03bd4ee52383447adea72d1accf7dd6622}">sha1:a6d51a0</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"> 
                                    <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-57fd6907-40d1-4542-865b-570f395ce017" alt="Atlassian logo" title="Atlassian logo" width="169" height="36" class="image_fix" /> 
                                        </td> 
                                    </tr> 
                                </table> 
                            </td> 
                        </tr> 
                    </table> 
                </td> 
            </tr> 
        </table>   
    </body>
</html>