EDIT: Issueshttps://dev.e-taxonomy.eu/redmine/https://dev.e-taxonomy.eu/redmine/redmine/favicon.ico?14691914852018-10-23T15:49:19ZEDIT Project Management
Redmine bug #7855 (Closed): PersonField modifies the nomenclaturalTitle forcing users to have the UPDATE ...https://dev.e-taxonomy.eu/redmine/issues/78552018-10-23T15:49:19ZAndreas Kohlbecker
<p>User with role submitter creates a new specimen typedesignation and adds an existing collector for which the submitter is not having the UPDATE permission.<br>
Saving the new specimen typedesignation is blocked by the system due to:</p>
<p><img src="https://dev.e-taxonomy.eu/redmine/attachments/download/1414/picture734-1.png" alt="" /> </p>
bug #7845 (Closed): NamePopupEditor new Genus button should clear the genus name field in the new...https://dev.e-taxonomy.eu/redmine/issues/78452018-10-23T11:42:41ZAndreas Kohlbecker
<p>Clicking on the new button at the genus field in a NamePopupEditor opens a new NamePopupEditor with the genus name prefilled with the genus name of the previous editor. The Genus field should be empty if the genus name in the previous editor is not in the options list of the combobox</p>
bug #7842 (Closed): TaxonNamePopEditor: adding new name as replaced synonym to name with basionym...https://dev.e-taxonomy.eu/redmine/issues/78422018-10-23T09:26:16ZAndreas Kohlbecker
<p>This case is not expected to occur often in real live situations:</p>
<p>A name has a basionym with authorship <em>A</em>. Adding <strong>replaced synonym for which a new name is created</strong> whereas the replaced synonym shares the same authorteam <em>A</em> with the basionym leads to a NonUniqueObjectException when saving.</p>
<p>Adding an existing name with the the same authorteam <em>A</em> is not causing the exception</p>
<pre>Caused by: org.hibernate.NonUniqueObjectException: A different object with the same identifier value was already associated with the session : [eu.etaxonomy.cdm.model.agent.Team#277]
at org.hibernate.engine.internal.StatefulPersistenceContext.checkUniqueness(StatefulPersistenceContext.java:648)
at org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.performUpdate(DefaultSaveOrUpdateEventListener.java:284)
at org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.entityIsDetached(DefaultSaveOrUpdateEventListener.java:227)
at org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.performSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:92)
at org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:73)
at org.hibernate.internal.SessionImpl.fireSaveOrUpdate(SessionImpl.java:648)
at org.hibernate.internal.SessionImpl.saveOrUpdate(SessionImpl.java:640)
at org.hibernate.engine.spi.CascadingActions$5.cascade(CascadingActions.java:218)
at org.hibernate.engine.internal.Cascade.cascadeToOne(Cascade.java:398)
at org.hibernate.engine.internal.Cascade.cascadeAssociation(Cascade.java:323)
at org.hibernate.engine.internal.Cascade.cascadeProperty(Cascade.java:162)
at org.hibernate.engine.internal.Cascade.cascade(Cascade.java:111)
at org.hibernate.engine.internal.Cascade.cascade(Cascade.java:61)
at org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.cascadeOnUpdate(DefaultSaveOrUpdateEventListener.java:358)
at org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.performUpdate(DefaultSaveOrUpdateEventListener.java:332)
at org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.entityIsDetached(DefaultSaveOrUpdateEventListener.java:227)
at org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.performSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:92)
at org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:73)
at org.hibernate.internal.SessionImpl.fireSaveOrUpdate(SessionImpl.java:648)
at org.hibernate.internal.SessionImpl.saveOrUpdate(SessionImpl.java:640)
at org.hibernate.engine.spi.CascadingActions$5.cascade(CascadingActions.java:218)
at org.hibernate.engine.internal.Cascade.cascadeToOne(Cascade.java:398)
at org.hibernate.engine.internal.Cascade.cascadeAssociation(Cascade.java:323)
at org.hibernate.engine.internal.Cascade.cascadeProperty(Cascade.java:162)
</pre>
<p><img src="https://dev.e-taxonomy.eu/redmine/attachments/download/1412/picture729-1.png" alt="" /></p>
bug #7835 (Closed): taxonGraph search block implementedhttps://dev.e-taxonomy.eu/redmine/issues/78352018-10-17T15:03:28ZAndreas Kohlbeckerfeature request #7834 (Closed): taxonGraph search listing all included names implementedhttps://dev.e-taxonomy.eu/redmine/issues/78342018-10-17T15:02:30ZAndreas Kohlbeckerbug #7831 (Closed): VALIDATE_AGAINST_HIGHER_NAME_PART specific epithet name is not exluded when c...https://dev.e-taxonomy.eu/redmine/issues/78312018-10-17T11:02:04ZAndreas Kohlbecker
<p>Example: </p>
<p>Species <em>Navicula bahusiensis</em> being edited in TaxonNamePopupeditor with mode <code>VALIDATE_AGAINST_HIGHER_NAME_PART</code> (was originally implemented in <a class="issue tracker-6 status-5 priority-10 priority-lowest closed" title="task: Validate taxon name against the higher taxon name (Closed)" href="https://dev.e-taxonomy.eu/redmine/issues/7338">#7338</a>)</p>
<p>Chaning the rank to subspecies will correctly change the specific epithet field to a combobox. But the epithet <em>bahusiensis</em> is selectable even if the name will no longer exist as species once the editor is saved.</p>
<p>The same problem might also exist for genera</p>
<p>Soulution:</p>
<ul>
<li>exclude the name being edited from the results in the comboboxes.</li>
</ul>
bug #7830 (Closed): VALIDATE_AGAINST_HIGHER_NAME_PART specific epithet is not being reset to test...https://dev.e-taxonomy.eu/redmine/issues/78302018-10-17T10:55:36ZAndreas Kohlbecker
<p>For ranks below species when mode <code>VALIDATE_AGAINST_HIGHER_NAME_PART</code> is enabled the "specific epithet" field restricted to existing species epithet names in the according genus. Changing the rank to Species does not reset the "specific epithet" to a plain test field.</p>
<p>the VALIDATE_AGAINST_HIGHER_NAME_PART was originally implemented in <a class="issue tracker-6 status-5 priority-10 priority-lowest closed" title="task: Validate taxon name against the higher taxon name (Closed)" href="https://dev.e-taxonomy.eu/redmine/issues/7338">#7338</a></p>
bug #7824 (Closed): PopupViewRegistration not removing registered views causes memleakhttps://dev.e-taxonomy.eu/redmine/issues/78242018-10-14T17:16:32ZAndreas Kohlbecker
<p>The PopupViewRegistration registers <code>ApplicationView</code>s and PopupViews. Alt least the <code>ApplicationView</code> are not removed from the internal maps. This causes a memleak</p>
task #7795 (Closed): untilis xml DataSets creation without "[NULL]" valueshttps://dev.e-taxonomy.eu/redmine/issues/77952018-09-28T09:13:07ZAndreas Kohlbecker
<p>After upgrading to Unitils 3.x it was needed to add "[NULL]" values to the attributed in the xml datasets since the <code>MultiSchemaXmlDataSetReader</code> use in this version was requiring these values for some reason, otherwise the columns in data tables would have been incomplete. Only the fields for which attributes existe din the first xml element where taken in to account. </p>
<p>Now this issue seems to be fixed in Unitils and cluttering the datasets with "NULL" attributes is no longer needed.</p>
feature request #7788 (Closed): Registration page shows registration date and officehttps://dev.e-taxonomy.eu/redmine/issues/77882018-09-24T09:45:06ZAndreas Kohlbecker
<p>Registration page needs to show the registration date and office</p>
task #7785 (Closed): CdmUserHelper caches permission informationhttps://dev.e-taxonomy.eu/redmine/issues/77852018-09-21T14:25:25ZAndreas Kohlbecker
<p>CdmUserHelper has been identified being hostspot in the cpu time analysis:</p>
<p><img src="https://dev.e-taxonomy.eu/redmine/attachments/download/1388/picture159-1.png" alt="" /> </p>
<p>Caching entities or permsisson check results may help improving the performance.</p>
<p>In the analyzed case it takes 12 seconds in total to build the RegistrationWorkingsetView. 8,3 seconds of that are only used to find entities which are needed to do permission checks. Finding these entities involves querying the database which naturally takes some time. But these roundtrips to the DB are completely dispensable since the entities needed for the checks have been loaded already. They are stored in the <code>CdmTransientEntityCache</code> which is used by the <code>CachingPresenters</code>. Therefore this performance overhead culd be completely cropped off by using the cached enities.</p>
<p>When the permission check is being done, the entityType and UUID are known, but with this information it is not possible to query the <code>CdmTransientEntityCache</code> for a cached object. The cache uses the entity.ID instead of the uuid. In <a class="issue tracker-4 status-4 priority-10 priority-lowest" title="bug: CdmTransientEntityCacher cannot handle multiple unpersisted entities of the same type (Feedback)" href="https://dev.e-taxonomy.eu/redmine/issues/7709">#7709</a> the idea of using the <code>uuid</code> instead of the <code>id</code> is being discussed.</p>
<hr>
<p>We (AK & AM) decided for the following solution:</p>
<p>A subclass of the <code>CdmTransientEntityCache</code> will complements the <code>CdmTransientEntityCache</code> by the ability to get CDM entities from the cache by the UUID. Internally a Map will be used to store the entity UUID together with the CdmEntityCacheKey of each entity being put into the cache.</p>
task #7784 (Closed): deduplicate and harmonize ClassificationController methodshttps://dev.e-taxonomy.eu/redmine/issues/77842018-09-21T13:45:02ZAndreas Kohlbecker
<ul>
<li>ClassificationPortalController needs to be a subclass of ClassificationController</li>
<li>duplicate and deprecated methods in ClassificationPortalListController</li>
</ul>
bug #7783 (Closed): NamePopupEditor new buttons for genus and specieshttps://dev.e-taxonomy.eu/redmine/issues/77832018-09-21T11:25:32ZAndreas Kohlbecker
<p>For species the genus can only be selected from existing genera. In order to use a not existing genus it is currently required to start a new registration from scratch. Having a new button at the combobox would be much more convenient and is easier for inexperienced users. The same accounts for the species combobox.</p>
<p>A registration for the new name needs to be create also automatically. This registration should be a blocking registration to the registration being edited currently. </p>
bug #7779 (Closed): swagger UI broken after springfox-swagger2 upgradehttps://dev.e-taxonomy.eu/redmine/issues/77792018-09-21T06:50:09ZAndreas Kohlbecker
<p>after upgrading springfox-swagger2 to version 2.6.1 (<a class="changeset" title="ref #7745 upgrading springfox-swagger2 to circumvent bug related to @RequestMappings" href="https://dev.e-taxonomy.eu/redmine/projects/edit/repository/cdmlib/revisions/4518f4b5e25dac1edf9786dd698c8281a63c78c5">4518f4b</a>) the swagger UI is broken.<br>
Presumably an upgrade of Swagger-UI is also needed now.</p>
bug #7778 (Closed): identifier links missing in taxon relations footnoteshttps://dev.e-taxonomy.eu/redmine/issues/77782018-09-20T10:12:27ZAndreas Kohlbecker
<p>identifier links missing when a footnote is created for taxon relations</p>
<p>see e.g.: <a href="http://caryophyllales.org/nepenthaceae/cdm_dataportal/taxon/90d47d8d-0f76-47d9-a0c8-20b4361080a4">http://caryophyllales.org/nepenthaceae/cdm_dataportal/taxon/90d47d8d-0f76-47d9-a0c8-20b4361080a4</a></p>