You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by an...@apache.org on 2019/05/14 04:29:17 UTC

[sling-org-apache-sling-feature-cpconverter] branch master updated: Use a local variable to adjust the bundle name to avoid side effects through the loop

This is an automated email from the ASF dual-hosted git repository.

andysch pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-feature-cpconverter.git


The following commit(s) were added to refs/heads/master by this push:
     new ae0b663  Use a local variable to adjust the bundle name to avoid side effects through the loop
ae0b663 is described below

commit ae0b663655203759c216369eccfd62329f9d9e0f
Author: Andreas Schaefer <ac...@Andreass-iMac.local>
AuthorDate: Mon May 13 21:28:32 2019 -0700

    Use a local variable to adjust the bundle name to avoid side effects through the loop
    
    The bundleName parameter is changed in the loop with side effects to subsequent looping this can lead to picking the wrong entry
---
 .../feature/cpconverter/handlers/BundleEntryHandler.java  | 15 ++++++++-------
 1 file changed, 8 insertions(+), 7 deletions(-)

diff --git a/src/main/java/org/apache/sling/feature/cpconverter/handlers/BundleEntryHandler.java b/src/main/java/org/apache/sling/feature/cpconverter/handlers/BundleEntryHandler.java
index 1e7e3e6..3135a7b 100644
--- a/src/main/java/org/apache/sling/feature/cpconverter/handlers/BundleEntryHandler.java
+++ b/src/main/java/org/apache/sling/feature/cpconverter/handlers/BundleEntryHandler.java
@@ -135,25 +135,26 @@ public final class BundleEntryHandler extends AbstractRegexEntryHandler {
                     continue;
                 }
 
-                int idx = bundleName.lastIndexOf('/');
+                String currentName = bundleName;
+                int idx = currentName.lastIndexOf('/');
                 if (idx >= 0) {
-                    bundleName = bundleName.substring(idx + 1);
+                    currentName = currentName.substring(idx + 1);
                 }
 
-                int edx = bundleName.lastIndexOf('.');
+                int edx = currentName.lastIndexOf('.');
                 if (edx > 0) {
-                    bundleName = bundleName.substring(0, edx);
+                    currentName = currentName.substring(0, edx);
                 }
 
                 // bundleName is now the bare name without extension
                 String synthesized = artifactId + "-" + version;
 
                 // it was the pom.properties  we were looking for
-                if (bundleName.startsWith(synthesized)) {
+                if (currentName.startsWith(synthesized)) {
 
                     // check the artifact has a classifier in the bundle file name
-                    if (synthesized.length() < bundleName.length()) {
-                        String suffix = bundleName.substring(synthesized.length());
+                    if (synthesized.length() < currentName.length()) {
+                        String suffix = currentName.substring(synthesized.length());
                         if (suffix.length() > 1 && suffix.startsWith("-")) {
                             String classifier = suffix.substring(1);
                             logger.info("Inferred classifier of '"