Author: echatellier Date: 2010-09-02 18:24:08 +0200 (Thu, 02 Sep 2010) New Revision: 281 Url: http://nuiton.org/repositories/revision/wikitty/281 Log: Fix #843 : Erreur de transaction JTA lors de l'mport CSV Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyService.java trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyServiceCached.java trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyServiceDelegator.java trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyServiceImpl.java trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyServiceNotifier.java trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyServiceSecurity.java trunk/wikitty-api/src/main/java/org/nuiton/wikitty/importexport/ImportExportCSV.java trunk/wikitty-api/src/main/java/org/nuiton/wikitty/importexport/ImportTask.java Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyService.java =================================================================== --- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyService.java 2010-08-31 17:19:55 UTC (rev 280) +++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyService.java 2010-09-02 16:24:08 UTC (rev 281) @@ -332,6 +332,17 @@ * @return wikitty object or null */ public Wikitty findByCriteria(String securityToken, Criteria criteria); + + /** + * Fist lonely (or first one) wikitty object that match criteria, if no + * wikitty found or first retrived is not authorized for the user return + * null + * + * @param criteria + * @param transaction + * @return wikitty object or null + */ + public Wikitty findByCriteria(String securityToken, WikittyTransaction transaction, Criteria criteria); /* * Labelisation Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyServiceCached.java =================================================================== --- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyServiceCached.java 2010-08-31 17:19:55 UTC (rev 280) +++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyServiceCached.java 2010-09-02 16:24:08 UTC (rev 281) @@ -282,6 +282,23 @@ /** * just wrap service method * + * @param securityToken + * @param criteria + * @param transaction + * + * @return + */ + @Override + public Wikitty findByCriteria(String securityToken, + WikittyTransaction transaction, Criteria criteria) { + // if we want to add cache for this method, we must clear cache when + // addLabel, store, storeExtension are called + return ws.findByCriteria(securityToken, transaction, criteria); + } + + /** + * just wrap service method + * * @param label * @return */ Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyServiceDelegator.java =================================================================== --- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyServiceDelegator.java 2010-08-31 17:19:55 UTC (rev 280) +++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyServiceDelegator.java 2010-09-02 16:24:08 UTC (rev 281) @@ -216,6 +216,11 @@ } @Override + public Wikitty findByCriteria(String securityToken, WikittyTransaction transaction, Criteria criteria) { + return delegate.findByCriteria(securityToken, transaction, criteria); + } + + @Override public void addLabel(String securityToken, String wikittyId, String label) { delegate.addLabel(securityToken, wikittyId, label); } Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyServiceImpl.java =================================================================== --- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyServiceImpl.java 2010-08-31 17:19:55 UTC (rev 280) +++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyServiceImpl.java 2010-09-02 16:24:08 UTC (rev 281) @@ -636,7 +636,7 @@ } } - protected Wikitty findByCriteria(String securityToken, + public Wikitty findByCriteria(String securityToken, WikittyTransaction transaction, Criteria criteria) { criteria.setFirstIndex(0).setEndIndex(1); PagedResult<String> pages = findAllByCriteria( Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyServiceNotifier.java =================================================================== --- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyServiceNotifier.java 2010-08-31 17:19:55 UTC (rev 280) +++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyServiceNotifier.java 2010-09-02 16:24:08 UTC (rev 281) @@ -363,6 +363,12 @@ // no notification return ws.findByCriteria(securityToken, criteria); } + + @Override + public Wikitty findByCriteria(String securityToken, WikittyTransaction transaction, Criteria criteria) { + // no notification + return ws.findByCriteria(securityToken, transaction, criteria); + } @Override public void addLabel(String securityToken, String wikittyId, String label) { Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyServiceSecurity.java =================================================================== --- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyServiceSecurity.java 2010-08-31 17:19:55 UTC (rev 280) +++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyServiceSecurity.java 2010-09-02 16:24:08 UTC (rev 281) @@ -420,6 +420,16 @@ } @Override + public Wikitty findByCriteria(String securityToken, WikittyTransaction transaction, Criteria criteria) { + Wikitty result = ws.findByCriteria(securityToken, transaction, criteria); + if (!canRead(securityToken, result.getId())) { + // user don't have correct right, return null + result = null; + } + return result; + } + + @Override public void addLabel(String securityToken, String wikittyId, String label) { // TODO poussin 20100607 check security ws.addLabel(securityToken, wikittyId, label); Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/importexport/ImportExportCSV.java =================================================================== --- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/importexport/ImportExportCSV.java 2010-08-31 17:19:55 UTC (rev 280) +++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/importexport/ImportExportCSV.java 2010-09-02 16:24:08 UTC (rev 281) @@ -120,7 +120,7 @@ addMissingExtension(securityToken, ws, transaction, currentWikitty, extName); // convert link values (if necessary) - value = convertLinkValues(securityToken, ws, value); + value = convertLinkValues(securityToken, transaction, ws, value); // add value to correct field FieldType fieldType = currentWikitty.getFieldType(extName + "." + fieldName); @@ -175,7 +175,7 @@ * @return */ protected String convertLinkValues( - String securityToken, WikittyService ws, String value) { + String securityToken, WikittyTransaction transaction, WikittyService ws, String value) { String originalValue = value; String resultValue = ""; @@ -196,7 +196,7 @@ fValue = m.group(6); } Criteria criteria = Search.query().eq(fqField, fValue).criteria(); - Wikitty wikitty = ws.findByCriteria(securityToken, criteria); + Wikitty wikitty = ws.findByCriteria(securityToken, transaction, criteria); if (wikitty == null) { correctQueries = false; } Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/importexport/ImportTask.java =================================================================== --- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/importexport/ImportTask.java 2010-08-31 17:19:55 UTC (rev 280) +++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/importexport/ImportTask.java 2010-09-02 16:24:08 UTC (rev 281) @@ -36,7 +36,7 @@ transaction.begin(); WikittyBatchUpdate batchUpdate = new WikittyBatchUpdate( securityToken, ws, transaction); - + long time = 0; if (log.isInfoEnabled()) { time = System.currentTimeMillis();