Genesys Backend issueshttps://gitlab.croptrust.org/genesys-pgr/genesys-server/-/issues2020-09-01T11:51:37+02:00https://gitlab.croptrust.org/genesys-pgr/genesys-server/-/issues/545User can`t open network details page;2020-09-01T11:51:37+02:00Kiril MorhalenkoUser can`t open network details page;**Steps:**
1. Go to "https://sandbox.genesys-pgr.org/network";
2. Click on any network;
**Expected results:**
The network details page isn`t opened;
**Actual result:**
![image](/uploads/7217c9adf22b254d65e0bebbdb17bf2f/image.png)**Steps:**
1. Go to "https://sandbox.genesys-pgr.org/network";
2. Click on any network;
**Expected results:**
The network details page isn`t opened;
**Actual result:**
![image](/uploads/7217c9adf22b254d65e0bebbdb17bf2f/image.png)Maxym BorodenkoMaxym Borodenkohttps://gitlab.croptrust.org/genesys-pgr/genesys-server/-/issues/543Taxonomy2: Update reference to GRIN Taxonomy2020-08-31T19:45:20+02:00Matija ObrezaTaxonomy2: Update reference to GRIN TaxonomyThe references to GRIN taxonomy `grinTaxonomySpecies` (and its current variant `currentTaxonomySpecies`) are automatically detected with the `Taxonomy2GRINMatcher`.
The detection method is not 100% accurate and may not always detect a m...The references to GRIN taxonomy `grinTaxonomySpecies` (and its current variant `currentTaxonomySpecies`) are automatically detected with the `Taxonomy2GRINMatcher`.
The detection method is not 100% accurate and may not always detect a matching GRIN record or an incorrect one is assigned.
The UI changes are described in genesys-pgr/genesys-ui#733
- Add `FilteredPage<TaxonomySpecies> listSpecies(TaxonomySpeciesFilter filter, Pagination..` method at */taxonomy/grin-species* to the Taxonomy controller
- Add `Taxonomy2 setGrinSpecies(long taxonomy2Id, Long customGrinSpecies)` method at */taxonomy/set-grin-species*
```java
class TaxonomySpeciesFilter {
String _text;
Set<String> genus;
Set<String> species;
StringFilter subtaxa;
}
```
The `setGrinSpecies()` method in the `TaxonomyService` will:
1. if `grinSpeciesId != null`, load `TaxonomySpecies` and set
1. new property `overrideTaxonomySpecies`
1. `grinTaxonomySpecies = loaded.id`
1. `currentTaxonomySpecies = loaded.currentTaxonomySpecies.id`.
1. if `grinSpeciesId == null`, clear `grinTaxonomySpecies`, `currentTaxonomySpecies` and `overrideTaxonomySpecies`
## Update `Taxonomy2GRINMatcher`
Update `Taxonomy2GRINMatcher` so that it will use `overrideTaxonomySpecies` if it is declared.
When the detected `TaxonomySpecies.id === overrideTaxonomySpecies.id`, then set `overrideTaxonomySpecies = null`, because now the override is no longer required.
## Extended `TaxonomyExtraFilter`
Update the existing controller endpoint to list `Taxonomy2` records with an enhanced `TaxonomyFilter` with extra options:
```
class TaxonomyExtraFilter extends TaxonomyFilter {
Boolean overrides; // if null, ignore. if true, then add `taxonomy2.overrideTaxonomySpecies.notNull()` else `isNull()`
Boolean grin; // if true, add `taxonomy2.grinTaxonomySpecies.notNull()` else `isNull`
}
```
The */list* endpoint is accessible to all authenticated users.2.5Maxym BorodenkoMaxym Borodenkohttps://gitlab.croptrust.org/genesys-pgr/genesys-server/-/issues/540Extended MCPD Excel export2020-08-29T21:25:50+02:00Matija ObrezaExtended MCPD Excel exportAdd columns `GRIN_TAXON_ID`, `GRIN_NAME` and `GRIN_AUTHOR` to the Excel MCPD export.
This requires a `leftJoin(taxonomy.currentGrinTaxonomy)` to export `currentGrinTaxonomy.id`, `.name`, `.nameAuthority`.
Requires !568Add columns `GRIN_TAXON_ID`, `GRIN_NAME` and `GRIN_AUTHOR` to the Excel MCPD export.
This requires a `leftJoin(taxonomy.currentGrinTaxonomy)` to export `currentGrinTaxonomy.id`, `.name`, `.nameAuthority`.
Requires !5682.5Maxym BorodenkoMaxym Borodenkohttps://gitlab.croptrust.org/genesys-pgr/genesys-server/-/issues/541Extend Taxonomy2 /list results2020-08-28T16:12:35+02:00Matija ObrezaExtend Taxonomy2 /list resultsThe */list* results of `TaxonomyController` return a filtered page of `Taxonomy2`. For admin purposes in the UI, please include the count of `Accession` records with each `Taxonomy2` record.
This doesn't need to be a super-fast operatio...The */list* results of `TaxonomyController` return a filtered page of `Taxonomy2`. For admin purposes in the UI, please include the count of `Accession` records with each `Taxonomy2` record.
This doesn't need to be a super-fast operation, it is admin-only.
Update the controller to also fetch the count for each `Taxonomy2` before it is returned:
```java
private static class Taxonomy2Info {
@JsonUnwrapped
public Taxonomy2 taxonomy;
public long accessionCount;
}
```2.5Maxym BorodenkoMaxym Borodenkohttps://gitlab.croptrust.org/genesys-pgr/genesys-server/-/issues/537Taxonomic backbone2020-08-26T17:32:02+02:00Matija ObrezaTaxonomic backbone1. Add GRIN Taxonomy data model to the database
1. Allow for updating "GRIN Taxonomy"
1. Map each `Taxonomy2` to USDA GRIN Taxonomy `Species`
1. Display GRIN Species + URL to USDA with each mapped `Taxonomy2`
1. Search by GRIN Taxa
1....1. Add GRIN Taxonomy data model to the database
1. Allow for updating "GRIN Taxonomy"
1. Map each `Taxonomy2` to USDA GRIN Taxonomy `Species`
1. Display GRIN Species + URL to USDA with each mapped `Taxonomy2`
1. Search by GRIN Taxa
1. Handle synonyms
1. Search by CWR crop genepools2.5Matija ObrezaMatija Obrezahttps://gitlab.croptrust.org/genesys-pgr/genesys-server/-/issues/538Taxonomy endpoints2020-08-26T16:22:56+02:00Oleksii SavranTaxonomy endpointshttps://gitlab.croptrust.org/genesys-pgr/genesys-ui/-/issues/727#note_45733
Please, add endpoints for receiving `FilteredPage<Taxonomy>` and getting `Taxonomy` item by id.https://gitlab.croptrust.org/genesys-pgr/genesys-ui/-/issues/727#note_45733
Please, add endpoints for receiving `FilteredPage<Taxonomy>` and getting `Taxonomy` item by id.Maxym BorodenkoMaxym Borodenkohttps://gitlab.croptrust.org/genesys-pgr/genesys-server/-/issues/536ES6 Overviews2020-08-24T14:05:47+02:00Matija ObrezaES6 OverviewsThe switch from ES 2.6 to 6.8 and the way we index records results in incorrect overview numbers.
https://www.genesys-pgr.org/a/v2p0MjPdYR1 lists 145 accessions while the Overview at https://www.genesys-pgr.org/a/overview/v2p0MjPdYR1 su...The switch from ES 2.6 to 6.8 and the way we index records results in incorrect overview numbers.
https://www.genesys-pgr.org/a/v2p0MjPdYR1 lists 145 accessions while the Overview at https://www.genesys-pgr.org/a/overview/v2p0MjPdYR1 summarizes **3 records**.
The 3 records are the ones where `cicla` is the exact value for the "subtaxon" field (see https://www.genesys-pgr.org/a/v22KYz7B3lA).
We use the ES [match phrase](https://www.elastic.co/guide/en/elasticsearch/reference/6.8/query-dsl-match-query-phrase.html) query for `contains` operator and the match phrase prefix query for `startsWith` filters in `ElasticQueryBuilder`.2.5Anastasiia KarasAnastasiia Karashttps://gitlab.croptrust.org/genesys-pgr/genesys-server/-/issues/535Tiles not generated when using full-text search2020-08-24T10:19:08+02:00Matija ObrezaTiles not generated when using full-text searchhttps://www.genesys-pgr.org/a/map/v2k2xPEB6Be uses a full-text filter and all requests for tiles fail with:
```
Elasticsearch exception [type=search_phase_execution_exception, reason=all shards failed]
```
Tile example: https://cdn.gen...https://www.genesys-pgr.org/a/map/v2k2xPEB6Be uses a full-text filter and all requests for tiles fail with:
```
Elasticsearch exception [type=search_phase_execution_exception, reason=all shards failed]
```
Tile example: https://cdn.genesys-pgr.org/acn/tile/4/4/5?f=v2k2xPEB6Be2.5Maxym BorodenkoMaxym Borodenkohttps://gitlab.croptrust.org/genesys-pgr/genesys-server/-/issues/534DivTree: Upload accession refs as file2020-08-20T18:20:16+02:00Matija ObrezaDivTree: Upload accession refs as fileThe API now allows adding or resetting the `AccessionRef`s with JSON payload.
Please also allow for **uploading a CSV file** to set refs of the selected tree.
Part of #528.The API now allows adding or resetting the `AccessionRef`s with JSON payload.
Please also allow for **uploading a CSV file** to set refs of the selected tree.
Part of #528.2.5Maxym BorodenkoMaxym Borodenkohttps://gitlab.croptrust.org/genesys-pgr/genesys-server/-/issues/533DivTree: Find by nodeKey2020-08-20T18:19:58+02:00Matija ObrezaDivTree: Find by nodeKeyAccession filtering now allows for finding all `Accession` records that belong to some `DiversityTree` through `DiversityTreeAccessionRef`.
We would like to be able to list accessions that:
- Match the specified `nodeKey` "X.10.30" usi...Accession filtering now allows for finding all `Accession` records that belong to some `DiversityTree` through `DiversityTreeAccessionRef`.
We would like to be able to list accessions that:
- Match the specified `nodeKey` "X.10.30" using `.eq()`
- or begin with the specified value using `.startsWith("X.10.30.")` *Note the extra `.` at the end!*
This filtering should only be supported when the tree filter is specified.
Part of #528.2.5Maxym BorodenkoMaxym Borodenkohttps://gitlab.croptrust.org/genesys-pgr/genesys-server/-/issues/532DivTree: JSON file2020-08-17T12:13:12+02:00Matija ObrezaDivTree: JSON fileThe original approach in #529 assumed we would reuse the existing `RepositoryFile` approach to associate tree data with crops. This means that the `.json` file would be uploaded to the repository to the `/crops/{crop.shortName}` folder ...The original approach in #529 assumed we would reuse the existing `RepositoryFile` approach to associate tree data with crops. This means that the `.json` file would be uploaded to the repository to the `/crops/{crop.shortName}` folder directly.
In this ticket, add support to upload the `.json` file with the `DiversityTreeService` and controller. The `.json` files for different `DiversityTree` are stored in repository at `/divtree/{divTree.uuid}.json`.
Replace `private String treeFile` with `RepositoryFile treeFile`.
If a new `.json` file is uploaded, the original `RepositoryFile` must be deleted.
## CropDetails
The UI uses `CropDetails.files[]` list to find `*.json` and treats them as Diversity Trees for display.
Extend `CropDetails` with `List<DiversityTree> diversityTrees` property and load all **PUBLISHED** records associated with this `Crop`.
Part of #528.2.5Maxym BorodenkoMaxym Borodenkohttps://gitlab.croptrust.org/genesys-pgr/genesys-server/-/issues/529DiversityTree data model and services2020-08-17T12:13:09+02:00Matija ObrezaDiversityTree data model and servicesThis issue is to implement the data model for `DiversityTree` as described in genesys-pgr/genesys-server#528.
`DiversityTree` entity is a copy of the current `Subset` model (except for `institute` and `owner` because trees are not manag...This issue is to implement the data model for `DiversityTree` as described in genesys-pgr/genesys-server#528.
`DiversityTree` entity is a copy of the current `Subset` model (except for `institute` and `owner` because trees are not managed by partners). The `creators` and `accessionRefs` remain. Versioning remains.
A tree only links to a single `crop`. A tree should specify the repository file on which it is based (the `_tree.json` file within the crop). This should be a `String treeFile` (and not a reference to `RepositoryFile`).
`DiversityTreeAccessionRef` includes one additional property: `String nodeKey`. This is related to genesys-pgr/diversity-tree-editor#29 and for each accessionRef the full node path must be provided (**required** field).
Only users with `DIVTREE` role are allowed to manage this data.
TODO:
1. Add `DIVTREE` role.
1. Copy `Subset` to `DiversityTree` and update as described above
1. Add `DiversityTreeAccessionRef` as above.
1. Add updates to `liquibase-changeLog.yml`
1. Copy `SubsetServiceImpl` to `DiversityTreeService`, comment out any methods we don't need.2.5Maxym BorodenkoMaxym Borodenkohttps://gitlab.croptrust.org/genesys-pgr/genesys-server/-/issues/526Speed up tile generation2020-08-11T06:44:36+02:00Matija ObrezaSpeed up tile generationGenerating tiles (with not specific filter) is significantly slower since we introduced `historic = false` by default.
This needs to be much, much faster as the server now runs out of available connections.Generating tiles (with not specific filter) is significantly slower since we introduced `historic = false` by default.
This needs to be much, much faster as the server now runs out of available connections.2.5Maxym BorodenkoMaxym Borodenkohttps://gitlab.croptrust.org/genesys-pgr/genesys-server/-/issues/531Full-text search2020-08-07T15:29:29+02:00Matija ObrezaFull-text searchThe updated full-text search is very broad and produces results that are not ranked properly.
> searching for, example TMe-20, is there a way to get the result filtered right to TMe-20, because one has to scroll dwon till you see it
> ...The updated full-text search is very broad and produces results that are not ranked properly.
> searching for, example TMe-20, is there a way to get the result filtered right to TMe-20, because one has to scroll dwon till you see it
> while we are searching for ICG 256 with the help of search tool in Genesys, it is displaying lot of additional information of all crops along with the original request, which is not necessary.
Check ES querying.2.5Matija ObrezaMatija Obrezahttps://gitlab.croptrust.org/genesys-pgr/genesys-server/-/issues/527Property sources update2020-07-07T07:48:08+02:00Matija ObrezaProperty sources updatePlease implement grin-global/grin-global-server!73 in Genesys.Please implement grin-global/grin-global-server!73 in Genesys.2.5Maxym BorodenkoMaxym Borodenkohttps://gitlab.croptrust.org/genesys-pgr/genesys-server/-/issues/525Sitemaps2020-07-02T11:13:08+02:00Matija ObrezaSitemapshttps://api.genesys-pgr.org/sitemap.xml returns a converter error.
1. Update page frequencies.
1. Add `latest.xml` with `DAILY` frequency that lists entries that have changed in the last 48 hrs.https://api.genesys-pgr.org/sitemap.xml returns a converter error.
1. Update page frequencies.
1. Add `latest.xml` with `DAILY` frequency that lists entries that have changed in the last 48 hrs.2.5Matija ObrezaMatija Obrezahttps://gitlab.croptrust.org/genesys-pgr/genesys-server/-/issues/524Add new accession filters2020-06-16T09:42:11+02:00Matija ObrezaAdd new accession filtersExtend `AccessionFilter` with new filtering options:
```java
public Boolean hasGeoref;
public Boolean hasDoi;
public Boolean hasDataset;
public Boolean hasSubset;
```
The JPA query is extended with:
```java
if (hasGeoref != null) {
h...Extend `AccessionFilter` with new filtering options:
```java
public Boolean hasGeoref;
public Boolean hasDoi;
public Boolean hasDataset;
public Boolean hasSubset;
```
The JPA query is extended with:
```java
if (hasGeoref != null) {
hasGeoref ? accession.latitude.notNull().and(accession.longitude.notNull())
: accession.latitude.isNull().or(accession.longitude.isNull());
}
if (hasDoi != null) {
hasDoi ? accession.doi.notNull() : accession.doi.isNull();
}
if (hasSubset != null) {
hasSubset ? accession.subsetCount.gt(0) : accession.subsetCount.eq(0);
}
...
```
No extensions are needed for ES.2.5Anastasiia KarasAnastasiia Karashttps://gitlab.croptrust.org/genesys-pgr/genesys-server/-/issues/523ES count of missing values2020-05-29T11:37:32+02:00Matija ObrezaES count of missing valueshttps://www.genesys-pgr.org/a/overview/v2OkgZRp18J has 7,484 accessions but somehow the Overview returns an incorrect value for "missing" and "total":
![image](/uploads/9fb7b0fc47936910c2c1bd621182d0fc/image.png)
To reproduce:
1. Open...https://www.genesys-pgr.org/a/overview/v2OkgZRp18J has 7,484 accessions but somehow the Overview returns an incorrect value for "missing" and "total":
![image](/uploads/9fb7b0fc47936910c2c1bd621182d0fc/image.png)
To reproduce:
1. Open https://www.genesys-pgr.org/a/v2OkgZRp18J
2. Click "Overview"2.5Maxym BorodenkoMaxym Borodenkohttps://gitlab.croptrust.org/genesys-pgr/genesys-server/-/issues/520Connection pool2020-05-25T08:58:04+02:00Matija ObrezaConnection poolSomething's wrong with our connection pool:
```
2020-05-19T03:55:56.805018466Z 03:55:56,802 qtp1305193908-2114 ERROR o.g.s.a.ApiExceptionHandler:234 - Wow! Such! Exception!
2020-05-19T03:55:56.805058028Z org.springframework.transaction....Something's wrong with our connection pool:
```
2020-05-19T03:55:56.805018466Z 03:55:56,802 qtp1305193908-2114 ERROR o.g.s.a.ApiExceptionHandler:234 - Wow! Such! Exception!
2020-05-19T03:55:56.805058028Z org.springframework.transaction.TransactionSystemException: Could not roll back JPA transaction; nested exception is javax.persistence.PersistenceException: unexpected error when rollbacking
2020-05-19T03:55:56.805064690Z at org.springframework.orm.jpa.JpaTransactionManager.doRollback(JpaTransactionManager.java:565)
2020-05-19T03:55:56.805072136Z at org.springframework.transaction.support.AbstractPlatformTransactionManager.processRollback(AbstractPlatformTransactionManager.java:835)
2020-05-19T03:55:56.805076416Z at org.springframework.transaction.support.AbstractPlatformTransactionManager.rollback(AbstractPlatformTransactionManager.java:809)
2020-05-19T03:55:56.805080845Z at org.springframework.transaction.interceptor.TransactionAspectSupport.completeTransactionAfterThrowing(TransactionAspectSupport.java:649)
2020-05-19T03:55:56.805084913Z at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:370)
2020-05-19T03:55:56.805089155Z at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:99)
2020-05-19T03:55:56.805100012Z at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
2020-05-19T03:55:56.805104260Z at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:212)
2020-05-19T03:55:56.805110260Z at com.sun.proxy.$Proxy345.getAccessionDetails(Unknown Source)
2020-05-19T03:55:56.805114058Z at org.genesys2.server.api.v1.AccessionController.getAccessionDetailsByDoi(AccessionController.java:303)
...
2020-05-19T03:55:56.805784629Z Caused by: javax.persistence.PersistenceException: unexpected error when rollbacking
2020-05-19T03:55:56.805788570Z at org.hibernate.jpa.internal.TransactionImpl.rollback(TransactionImpl.java:111)
2020-05-19T03:55:56.805792694Z at org.springframework.orm.jpa.JpaTransactionManager.doRollback(JpaTransactionManager.java:561)
2020-05-19T03:55:56.805796840Z ... 133 more
2020-05-19T03:55:56.805800637Z Caused by: org.hibernate.TransactionException: rollback failed
2020-05-19T03:55:56.805804549Z at org.hibernate.engine.transaction.spi.AbstractTransactionImpl.rollback(AbstractTransactionImpl.java:217)
2020-05-19T03:55:56.805808745Z at org.hibernate.jpa.internal.TransactionImpl.rollback(TransactionImpl.java:108)
2020-05-19T03:55:56.805812742Z ... 134 more
2020-05-19T03:55:56.805816484Z Caused by: org.hibernate.TransactionException: unable to rollback against JDBC connection
2020-05-19T03:55:56.805820497Z at org.hibernate.engine.transaction.internal.jdbc.JdbcTransaction.doRollback(JdbcTransaction.java:167)
2020-05-19T03:55:56.805825537Z at org.hibernate.engine.transaction.spi.AbstractTransactionImpl.rollback(AbstractTransactionImpl.java:211)
2020-05-19T03:55:56.805829606Z ... 135 more
2020-05-19T03:55:56.805833329Z Caused by: java.sql.SQLException: Connection has already been closed.
2020-05-19T03:55:56.805837327Z at org.apache.tomcat.jdbc.pool.ProxyConnection.invoke(ProxyConnection.java:117)
2020-05-19T03:55:56.805841313Z at org.apache.tomcat.jdbc.pool.JdbcInterceptor.invoke(JdbcInterceptor.java:109)
2020-05-19T03:55:56.805845389Z at org.apache.tomcat.jdbc.pool.DisposableConnectionFacade.invoke(DisposableConnectionFacade.java:80)
2020-05-19T03:55:56.805853154Z at com.sun.proxy.$Proxy96.rollback(Unknown Source)
2020-05-19T03:55:56.805857127Z at org.hibernate.engine.transaction.internal.jdbc.JdbcTransaction.doRollback(JdbcTransaction.java:163)
2020-05-19T03:55:56.805861278Z ... 136 more
```
```
020-05-19T03:56:32.439550568Z WARNING: Connection has been abandoned PooledConnection[com.mysql.cj.jdbc.ha.MultiHostMySQLConnection@5d4cb47c]:java.lang.Exception
2020-05-19T03:56:32.439633985Z at org.apache.tomcat.jdbc.pool.ConnectionPool.getThreadDump(ConnectionPool.java:1063)
2020-05-19T03:56:32.439649791Z at org.apache.tomcat.jdbc.pool.ConnectionPool.borrowConnection(ConnectionPool.java:780)
2020-05-19T03:56:32.439665541Z at org.apache.tomcat.jdbc.pool.ConnectionPool.borrowConnection(ConnectionPool.java:619)
2020-05-19T03:56:32.439670469Z at org.apache.tomcat.jdbc.pool.ConnectionPool.getConnection(ConnectionPool.java:188)
2020-05-19T03:56:32.439675776Z at org.apache.tomcat.jdbc.pool.DataSourceProxy.getConnection(DataSourceProxy.java:128)
2020-05-19T03:56:32.439680731Z at org.hibernate.engine.jdbc.connections.internal.DatasourceConnectionProviderImpl.getConnection(DatasourceConnectionProviderImpl.java:139)
2020-05-19T03:56:32.439685232Z at org.hibernate.internal.AbstractSessionImpl$NonContextualJdbcConnectionAccess.obtainConnection(AbstractSessionImpl.java:380)
2020-05-19T03:56:32.439689936Z at org.hibernate.engine.jdbc.internal.LogicalConnectionImpl.obtainConnection(LogicalConnectionImpl.java:228)
2020-05-19T03:56:32.439693654Z at org.hibernate.engine.jdbc.internal.LogicalConnectionImpl.getConnection(LogicalConnectionImpl.java:171)
2020-05-19T03:56:32.439697673Z at org.hibernate.internal.SessionImpl.connection(SessionImpl.java:450)
2020-05-19T03:56:32.439701791Z at sun.reflect.GeneratedMethodAccessor487.invoke(Unknown Source)
2020-05-19T03:56:32.439705611Z at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
2020-05-19T03:56:32.439709404Z at java.lang.reflect.Method.invoke(Method.java:498)
2020-05-19T03:56:32.439713374Z at org.springframework.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:282)
2020-05-19T03:56:32.439717617Z at org.springframework.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:266)
2020-05-19T03:56:32.439721948Z at org.springframework.orm.jpa.vendor.HibernateJpaDialect$HibernateConnectionHandle.doGetConnection(HibernateJpaDialect.java:430)
2020-05-19T03:56:32.439726869Z at org.springframework.orm.jpa.vendor.HibernateJpaDialect.beginTransaction(HibernateJpaDialect.java:174)
2020-05-19T03:56:32.439731301Z at org.springframework.orm.jpa.JpaTransactionManager.doBegin(JpaTransactionManager.java:402)
2020-05-19T03:56:32.439736605Z at org.springframework.transaction.support.AbstractPlatformTransactionManager.startTransaction(AbstractPlatformTransactionManager.java:400)
2020-05-19T03:56:32.439753450Z at org.springframework.transaction.support.AbstractPlatformTransactionManager.getTransaction(AbstractPlatformTransactionManager.java:373)
2020-05-19T03:56:32.439757275Z at org.springframework.transaction.interceptor.TransactionAspectSupport.createTransactionIfNecessary(TransactionAspectSupport.java:572)
2020-05-19T03:56:32.439760745Z at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:360)
2020-05-19T03:56:32.439764164Z at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:99)
2020-05-19T03:56:32.439767471Z at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
2020-05-19T03:56:32.439770722Z at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:212)
2020-05-19T03:56:32.439774033Z at com.sun.proxy.$Proxy367.getDetails(Unknown Source)
2020-05-19T03:56:32.439777086Z at org.genesys2.server.api.v1.GeoController.getCountryDetails(GeoController.java:72)
```Matija ObrezaMatija Obrezahttps://gitlab.croptrust.org/genesys-pgr/genesys-server/-/issues/494Optimize API call /crops2020-05-18T20:14:28+02:00Matija ObrezaOptimize API call /cropsThis call takes too long to execute but is crucial for UI to function.This call takes too long to execute but is crucial for UI to function.2.5Maxym BorodenkoMaxym Borodenko