You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by ac...@apache.org on 2020/01/20 11:04:46 UTC

[camel] branch master updated (8c62825 -> 6c656ec)

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

acosentino pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/camel.git.


    from 8c62825  CAMEL-14354: Optimize core
     new 73a7ef7  Fix "Boxed variable is never null" warnings reported by lgtm.com.
     new 1a78600  Close InputStreams as reported by lgtm.com.
     new 6c656ec  Regen

The 3 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../java/org/apache/camel/maven/GenerateMojo.java  |  3 +-
 .../camel/parser/helper/CamelJavaParserHelper.java | 12 ++--
 .../helper/CamelJavaRestDslParserHelper.java       | 12 ++--
 .../parser/helper/CamelJavaTreeParserHelper.java   | 12 ++--
 .../cdi/transaction/TransactionErrorHandler.java   |  6 +-
 .../camel/component/cm/CMSenderOneMessageImpl.java | 64 +++++++++++-----------
 .../pubsub/GooglePubsubConnectionFactory.java      | 12 ++--
 .../camel/spring/spi/TransactionErrorHandler.java  |  3 +-
 .../camel/management/mbean/ManagedChoice.java      |  4 +-
 .../mbean/ManagedPerformanceCounter.java           |  6 +-
 .../mbean/ManagedRuntimeEndpointRegistry.java      |  4 +-
 .../modules/ROOT/pages/telegram-component.adoc     |  1 +
 .../maven/packaging/PrepareCatalogKarafMojo.java   |  6 +-
 13 files changed, 70 insertions(+), 75 deletions(-)


[camel] 03/03: Regen

Posted by ac...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

acosentino pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel.git

commit 6c656ece1c8dff116e966b3540181a71f152b4a5
Author: Andrea Cosentino <an...@gmail.com>
AuthorDate: Mon Jan 20 12:02:06 2020 +0100

    Regen
---
 docs/components/modules/ROOT/pages/telegram-component.adoc | 1 +
 1 file changed, 1 insertion(+)

diff --git a/docs/components/modules/ROOT/pages/telegram-component.adoc b/docs/components/modules/ROOT/pages/telegram-component.adoc
index 72bd9f2..327d81c 100644
--- a/docs/components/modules/ROOT/pages/telegram-component.adoc
+++ b/docs/components/modules/ROOT/pages/telegram-component.adoc
@@ -231,6 +231,7 @@ The following message bodies are allowed for a producer endpoint (messages of ty
 | `OutgoingVideoMessage` | To send a mp4 video to a chat
 | `OutgoingDocumentMessage` | To send a file to a chat (any media type)
 | `OutgoingStickerMessage` | To send a sticker to a chat (WEBP)
+| `OutgoingAnswerInlineQuery` | To send answers to an inline query
 | `EditMessageTextMessage` | To edit text and game messages (editMessageText)
 | `EditMessageCaptionMessage` | To edit captions of messages (editMessageCaption)
 | `EditMessageMediaMessage` | To edit animation, audio, document, photo, or video messages. (editMessageMedia)


[camel] 01/03: Fix "Boxed variable is never null" warnings reported by lgtm.com.

Posted by ac...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

acosentino pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel.git

commit 73a7ef7b74b41bcc4d8bb7f41b915ede5f84f6a2
Author: Pascal Schumacher <pa...@gmx.net>
AuthorDate: Sun Jan 19 11:24:00 2020 +0100

    Fix "Boxed variable is never null" warnings reported by lgtm.com.
---
 .../apache/camel/parser/helper/CamelJavaParserHelper.java    | 12 ++++++------
 .../camel/parser/helper/CamelJavaRestDslParserHelper.java    | 12 ++++++------
 .../camel/parser/helper/CamelJavaTreeParserHelper.java       | 12 ++++++------
 .../camel/cdi/transaction/TransactionErrorHandler.java       |  6 ++----
 .../org/apache/camel/spring/spi/TransactionErrorHandler.java |  3 +--
 .../org/apache/camel/management/mbean/ManagedChoice.java     |  4 ++--
 .../camel/management/mbean/ManagedPerformanceCounter.java    |  6 ++----
 .../management/mbean/ManagedRuntimeEndpointRegistry.java     |  4 ++--
 8 files changed, 27 insertions(+), 32 deletions(-)

diff --git a/catalog/camel-route-parser/src/main/java/org/apache/camel/parser/helper/CamelJavaParserHelper.java b/catalog/camel-route-parser/src/main/java/org/apache/camel/parser/helper/CamelJavaParserHelper.java
index c69f8a0..fe830ef 100644
--- a/catalog/camel-route-parser/src/main/java/org/apache/camel/parser/helper/CamelJavaParserHelper.java
+++ b/catalog/camel-route-parser/src/main/java/org/apache/camel/parser/helper/CamelJavaParserHelper.java
@@ -681,9 +681,9 @@ public final class CamelJavaParserHelper {
                 // if numeric then we plus the values, otherwise we string concat
                 boolean numeric = isNumericOperator(clazz, block, ie.getLeftOperand()) && isNumericOperator(clazz, block, ie.getRightOperand());
                 if (numeric) {
-                    Long num1 = val1 != null ? Long.valueOf(val1) : 0;
-                    Long num2 = val2 != null ? Long.valueOf(val2) : 0;
-                    answer = "" + (num1 + num2);
+                    long num1 = val1 != null ? Long.parseLong(val1) : 0;
+                    long num2 = val2 != null ? Long.parseLong(val2) : 0;
+                    answer = Long.toString(num1 + num2);
                 } else {
                     answer = (val1 != null ? val1 : "") + (val2 != null ? val2 : "");
                 }
@@ -695,9 +695,9 @@ public final class CamelJavaParserHelper {
                         for (Object ext : extended) {
                             String val3 = getLiteralValue(clazz, block, (Expression) ext);
                             if (numeric) {
-                                Long num3 = val3 != null ? Long.valueOf(val3) : 0;
-                                Long num = Long.valueOf(answer);
-                                answer = "" + (num + num3);
+                                long num3 = val3 != null ? Long.parseLong(val3) : 0;
+                                long num = Long.parseLong(answer);
+                                answer = Long.toString(num + num3);
                             } else {
                                 answer += val3 != null ? val3 : "";
                             }
diff --git a/catalog/camel-route-parser/src/main/java/org/apache/camel/parser/helper/CamelJavaRestDslParserHelper.java b/catalog/camel-route-parser/src/main/java/org/apache/camel/parser/helper/CamelJavaRestDslParserHelper.java
index da6658f..1504be6 100644
--- a/catalog/camel-route-parser/src/main/java/org/apache/camel/parser/helper/CamelJavaRestDslParserHelper.java
+++ b/catalog/camel-route-parser/src/main/java/org/apache/camel/parser/helper/CamelJavaRestDslParserHelper.java
@@ -609,9 +609,9 @@ public final class CamelJavaRestDslParserHelper {
                 // if numeric then we plus the values, otherwise we string concat
                 boolean numeric = isNumericOperator(clazz, block, ie.getLeftOperand()) && isNumericOperator(clazz, block, ie.getRightOperand());
                 if (numeric) {
-                    Long num1 = val1 != null ? Long.valueOf(val1) : 0;
-                    Long num2 = val2 != null ? Long.valueOf(val2) : 0;
-                    answer = "" + (num1 + num2);
+                    long num1 = val1 != null ? Long.parseLong(val1) : 0;
+                    long num2 = val2 != null ? Long.parseLong(val2) : 0;
+                    answer = Long.toString(num1 + num2);
                 } else {
                     answer = (val1 != null ? val1 : "") + (val2 != null ? val2 : "");
                 }
@@ -623,9 +623,9 @@ public final class CamelJavaRestDslParserHelper {
                         for (Object ext : extended) {
                             String val3 = getLiteralValue(clazz, block, (Expression) ext);
                             if (numeric) {
-                                Long num3 = val3 != null ? Long.valueOf(val3) : 0;
-                                Long num = Long.valueOf(answer);
-                                answer = "" + (num + num3);
+                                long num3 = val3 != null ? Long.parseLong(val3) : 0;
+                                long num = Long.parseLong(answer);
+                                answer = Long.toString(num + num3);
                             } else {
                                 answer += val3 != null ? val3 : "";
                             }
diff --git a/catalog/camel-route-parser/src/main/java/org/apache/camel/parser/helper/CamelJavaTreeParserHelper.java b/catalog/camel-route-parser/src/main/java/org/apache/camel/parser/helper/CamelJavaTreeParserHelper.java
index deb3c4b..fe936fe 100644
--- a/catalog/camel-route-parser/src/main/java/org/apache/camel/parser/helper/CamelJavaTreeParserHelper.java
+++ b/catalog/camel-route-parser/src/main/java/org/apache/camel/parser/helper/CamelJavaTreeParserHelper.java
@@ -455,9 +455,9 @@ public final class CamelJavaTreeParserHelper {
                 // if numeric then we plus the values, otherwise we string concat
                 boolean numeric = isNumericOperator(clazz, block, ie.getLeftOperand()) && isNumericOperator(clazz, block, ie.getRightOperand());
                 if (numeric) {
-                    Long num1 = val1 != null ? Long.valueOf(val1) : 0;
-                    Long num2 = val2 != null ? Long.valueOf(val2) : 0;
-                    answer = "" + (num1 + num2);
+                    long num1 = val1 != null ? Long.parseLong(val1) : 0;
+                    long num2 = val2 != null ? Long.parseLong(val2) : 0;
+                    answer = Long.toString(num1 + num2);
                 } else {
                     answer = (val1 != null ? val1 : "") + (val2 != null ? val2 : "");
                 }
@@ -469,9 +469,9 @@ public final class CamelJavaTreeParserHelper {
                         for (Object ext : extended) {
                             String val3 = getLiteralValue(clazz, block, (Expression) ext);
                             if (numeric) {
-                                Long num3 = val3 != null ? Long.valueOf(val3) : 0;
-                                Long num = Long.valueOf(answer);
-                                answer = "" + (num + num3);
+                                long num3 = val3 != null ? Long.parseLong(val3) : 0;
+                                long num = Long.parseLong(answer);
+                                answer = Long.toString(num + num3);
                             } else {
                                 answer += val3 != null ? val3 : "";
                             }
diff --git a/components/camel-cdi/src/main/java/org/apache/camel/cdi/transaction/TransactionErrorHandler.java b/components/camel-cdi/src/main/java/org/apache/camel/cdi/transaction/TransactionErrorHandler.java
index af9e0ce..47751ce 100644
--- a/components/camel-cdi/src/main/java/org/apache/camel/cdi/transaction/TransactionErrorHandler.java
+++ b/components/camel-cdi/src/main/java/org/apache/camel/cdi/transaction/TransactionErrorHandler.java
@@ -128,10 +128,8 @@ public class TransactionErrorHandler extends ErrorHandlerSupport
     }
 
     protected void processInTransaction(final Exchange exchange) throws Exception {
-        // is the exchange redelivered, for example JMS brokers support such
-        // details
-        Boolean externalRedelivered = exchange.isExternalRedelivered();
-        final String redelivered = externalRedelivered != null ? externalRedelivered.toString() : "unknown";
+        // is the exchange redelivered, for example JMS brokers support such details
+        final String redelivered = Boolean.toString(exchange.isExternalRedelivered());
         final String ids = ExchangeHelper.logIds(exchange);
 
         try {
diff --git a/components/camel-spring/src/main/java/org/apache/camel/spring/spi/TransactionErrorHandler.java b/components/camel-spring/src/main/java/org/apache/camel/spring/spi/TransactionErrorHandler.java
index 99b3d04..eb30ff7 100644
--- a/components/camel-spring/src/main/java/org/apache/camel/spring/spi/TransactionErrorHandler.java
+++ b/components/camel-spring/src/main/java/org/apache/camel/spring/spi/TransactionErrorHandler.java
@@ -125,8 +125,7 @@ public class TransactionErrorHandler extends RedeliveryErrorHandler {
 
     protected void processInTransaction(final Exchange exchange) {
         // is the exchange redelivered, for example JMS brokers support such details
-        Boolean externalRedelivered = exchange.isExternalRedelivered();
-        final String redelivered = externalRedelivered != null ? externalRedelivered.toString() : "unknown";
+        final String redelivered = Boolean.toString(exchange.isExternalRedelivered());
         final String ids = ExchangeHelper.logIds(exchange);
 
         try {
diff --git a/core/camel-management/src/main/java/org/apache/camel/management/mbean/ManagedChoice.java b/core/camel-management/src/main/java/org/apache/camel/management/mbean/ManagedChoice.java
index d84eef9..db40fc7 100644
--- a/core/camel-management/src/main/java/org/apache/camel/management/mbean/ManagedChoice.java
+++ b/core/camel-management/src/main/java/org/apache/camel/management/mbean/ManagedChoice.java
@@ -75,7 +75,7 @@ public class ManagedChoice extends ManagedProcessor implements ManagedChoiceMBea
                 CompositeType ct = CamelOpenMBeanTypes.choiceCompositeType();
                 String predicate = when.getExpression().getExpression();
                 String language = when.getExpression().getLanguage();
-                Long matches = filter.getFilteredCount();
+                long matches = filter.getFilteredCount();
 
                 CompositeData data = new CompositeDataSupport(ct,
                         new String[]{"predicate", "language", "matches"},
@@ -86,7 +86,7 @@ public class ManagedChoice extends ManagedProcessor implements ManagedChoiceMBea
                 CompositeType ct = CamelOpenMBeanTypes.choiceCompositeType();
                 String predicate = "otherwise";
                 String language = "";
-                Long matches = processor.getNotFilteredCount();
+                long matches = processor.getNotFilteredCount();
 
                 CompositeData data = new CompositeDataSupport(ct,
                         new String[]{"predicate", "language", "matches"},
diff --git a/core/camel-management/src/main/java/org/apache/camel/management/mbean/ManagedPerformanceCounter.java b/core/camel-management/src/main/java/org/apache/camel/management/mbean/ManagedPerformanceCounter.java
index c575f07..3f09c51 100644
--- a/core/camel-management/src/main/java/org/apache/camel/management/mbean/ManagedPerformanceCounter.java
+++ b/core/camel-management/src/main/java/org/apache/camel/management/mbean/ManagedPerformanceCounter.java
@@ -230,8 +230,7 @@ public abstract class ManagedPerformanceCounter extends ManagedCounter implement
         if (ExchangeHelper.isFailureHandled(exchange)) {
             failuresHandled.increment();
         }
-        Boolean externalRedelivered = exchange.isExternalRedelivered();
-        if (externalRedelivered != null && externalRedelivered) {
+        if (exchange.isExternalRedelivered()) {
             externalRedeliveries.increment();
         }
 
@@ -270,8 +269,7 @@ public abstract class ManagedPerformanceCounter extends ManagedCounter implement
         if (ExchangeHelper.isRedelivered(exchange)) {
             redeliveries.increment();
         }
-        Boolean externalRedelivered = exchange.isExternalRedelivered();
-        if (externalRedelivered != null && externalRedelivered) {
+        if (exchange.isExternalRedelivered()) {
             externalRedeliveries.increment();
         }
 
diff --git a/core/camel-management/src/main/java/org/apache/camel/management/mbean/ManagedRuntimeEndpointRegistry.java b/core/camel-management/src/main/java/org/apache/camel/management/mbean/ManagedRuntimeEndpointRegistry.java
index 50013af..6e0d6c2 100644
--- a/core/camel-management/src/main/java/org/apache/camel/management/mbean/ManagedRuntimeEndpointRegistry.java
+++ b/core/camel-management/src/main/java/org/apache/camel/management/mbean/ManagedRuntimeEndpointRegistry.java
@@ -103,8 +103,8 @@ public class ManagedRuntimeEndpointRegistry extends ManagedService implements Ma
                 CompositeType ct = CamelOpenMBeanTypes.listRuntimeEndpointsCompositeType();
 
                 String url = stat.getUri();
-                Boolean isStatic = staticRegistry.isStatic(url);
-                Boolean isDynamic = staticRegistry.isDynamic(url);
+                boolean isStatic = staticRegistry.isStatic(url);
+                boolean isDynamic = staticRegistry.isDynamic(url);
                 if (sanitize) {
                     url = URISupport.sanitizeUri(url);
                 }


[camel] 02/03: Close InputStreams as reported by lgtm.com.

Posted by ac...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

acosentino pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel.git

commit 1a7860070d970f65b7c005752021312097095216
Author: Pascal Schumacher <pa...@gmx.net>
AuthorDate: Sun Jan 19 12:26:28 2020 +0100

    Close InputStreams as reported by lgtm.com.
---
 .../java/org/apache/camel/maven/GenerateMojo.java  |  3 +-
 .../camel/component/cm/CMSenderOneMessageImpl.java | 64 +++++++++++-----------
 .../pubsub/GooglePubsubConnectionFactory.java      | 12 ++--
 .../maven/packaging/PrepareCatalogKarafMojo.java   |  6 +-
 4 files changed, 42 insertions(+), 43 deletions(-)

diff --git a/catalog/camel-main-maven-plugin/src/main/java/org/apache/camel/maven/GenerateMojo.java b/catalog/camel-main-maven-plugin/src/main/java/org/apache/camel/maven/GenerateMojo.java
index a6946ff..346554b 100644
--- a/catalog/camel-main-maven-plugin/src/main/java/org/apache/camel/maven/GenerateMojo.java
+++ b/catalog/camel-main-maven-plugin/src/main/java/org/apache/camel/maven/GenerateMojo.java
@@ -413,8 +413,7 @@ public class GenerateMojo extends AbstractMainMojo {
     protected Properties loadMappingsFile() throws MojoFailureException {
         Properties mappings = new OrderedProperties();
         if (mappingsFile.exists() && mappingsFile.isFile()) {
-            try {
-                InputStream is = new FileInputStream(mappingsFile);
+            try (InputStream is = new FileInputStream(mappingsFile)) {
                 mappings.load(is);
             } catch (IOException e) {
                 throw new MojoFailureException("Cannot load file: " + mappingsFile);
diff --git a/components/camel-cm-sms/src/main/java/org/apache/camel/component/cm/CMSenderOneMessageImpl.java b/components/camel-cm-sms/src/main/java/org/apache/camel/component/cm/CMSenderOneMessageImpl.java
index 820fa7c..d753edc 100644
--- a/components/camel-cm-sms/src/main/java/org/apache/camel/component/cm/CMSenderOneMessageImpl.java
+++ b/components/camel-cm-sms/src/main/java/org/apache/camel/component/cm/CMSenderOneMessageImpl.java
@@ -205,47 +205,47 @@ public class CMSenderOneMessageImpl implements CMSender {
             // result of the request processing.
 
             // We obtaing the result text
-            final BufferedReader rd = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));
-
-            final StringBuffer result = new StringBuffer();
-            String line = null;
-            while ((line = rd.readLine()) != null) {
-                result.append(line);
-            }
+            try (BufferedReader rd = new BufferedReader(new InputStreamReader(response.getEntity().getContent()))) {
+                final StringBuffer result = new StringBuffer();
+                String line = null;
+                while ((line = rd.readLine()) != null) {
+                    result.append(line);
+                }
 
-            // ... and process it
+                // ... and process it
 
-            line = result.toString();
-            if (!line.isEmpty()) {
+                line = result.toString();
+                if (!line.isEmpty()) {
 
-                // Line is not empty = error
-                LOG.debug("Result of the request processing: FAILED\n{}", line);
+                    // Line is not empty = error
+                    LOG.debug("Result of the request processing: FAILED\n{}", line);
 
-                // The response text contains the error description. We will
-                // throw a custom exception for each.
+                    // The response text contains the error description. We will
+                    // throw a custom exception for each.
 
-                if (line.contains(CMConstants.ERROR_UNKNOWN)) {
-                    throw new UnknownErrorException();
-                } else if (line.contains(CMConstants.ERROR_NO_ACCOUNT)) {
-                    throw new NoAccountFoundForProductTokenException();
-                } else if (line.contains(CMConstants.ERROR_INSUFICIENT_BALANCE)) {
-                    throw new InsufficientBalanceException();
-                } else if (line.contains(CMConstants.ERROR_UNROUTABLE_MESSAGE)) {
-                    throw new UnroutableMessageException();
-                } else if (line.contains(CMConstants.ERROR_INVALID_PRODUCT_TOKEN)) {
-                    throw new InvalidProductTokenException();
-                } else {
+                    if (line.contains(CMConstants.ERROR_UNKNOWN)) {
+                        throw new UnknownErrorException();
+                    } else if (line.contains(CMConstants.ERROR_NO_ACCOUNT)) {
+                        throw new NoAccountFoundForProductTokenException();
+                    } else if (line.contains(CMConstants.ERROR_INSUFICIENT_BALANCE)) {
+                        throw new InsufficientBalanceException();
+                    } else if (line.contains(CMConstants.ERROR_UNROUTABLE_MESSAGE)) {
+                        throw new UnroutableMessageException();
+                    } else if (line.contains(CMConstants.ERROR_INVALID_PRODUCT_TOKEN)) {
+                        throw new InvalidProductTokenException();
+                    } else {
 
-                    // SO FAR i would expect other kind of ERROR.
+                        // SO FAR i would expect other kind of ERROR.
 
-                    // MSISDN correctness and message validity is client
-                    // responsibility
-                    throw new CMResponseException("CHECK ME. I am not expecting this. ");
+                        // MSISDN correctness and message validity is client
+                        // responsibility
+                        throw new CMResponseException("CHECK ME. I am not expecting this. ");
+                    }
                 }
-            }
 
-            // Ok. Line is EMPTY - successfully submitted
-            LOG.debug("Result of the request processing: Successfully submited");
+                // Ok. Line is EMPTY - successfully submitted
+                LOG.debug("Result of the request processing: Successfully submited");
+            }
         } catch (final IOException io) {
             throw new CMDirectException(io);
         } catch (Throwable t) {
diff --git a/components/camel-google-pubsub/src/main/java/org/apache/camel/component/google/pubsub/GooglePubsubConnectionFactory.java b/components/camel-google-pubsub/src/main/java/org/apache/camel/component/google/pubsub/GooglePubsubConnectionFactory.java
index ac21646..eb49057 100644
--- a/components/camel-google-pubsub/src/main/java/org/apache/camel/component/google/pubsub/GooglePubsubConnectionFactory.java
+++ b/components/camel-google-pubsub/src/main/java/org/apache/camel/component/google/pubsub/GooglePubsubConnectionFactory.java
@@ -17,6 +17,7 @@
 package org.apache.camel.component.google.pubsub;
 
 import java.io.FileInputStream;
+import java.io.InputStream;
 import java.security.KeyFactory;
 import java.security.PrivateKey;
 import java.security.spec.PKCS8EncodedKeySpec;
@@ -112,14 +113,15 @@ public class GooglePubsubConnectionFactory {
     }
 
     private GoogleCredential createFromFile() throws Exception {
+        try (InputStream is = new FileInputStream(credentialsFileLocation)) {
+            GoogleCredential credential = GoogleCredential.fromStream(is);
 
-        GoogleCredential credential = GoogleCredential.fromStream(new FileInputStream(credentialsFileLocation));
+            if (credential.createScopedRequired()) {
+                credential = credential.createScoped(PubsubScopes.all());
+            }
 
-        if (credential.createScopedRequired()) {
-            credential = credential.createScoped(PubsubScopes.all());
+            return credential;
         }
-
-        return credential;
     }
 
     private GoogleCredential createDefault() throws Exception {
diff --git a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/PrepareCatalogKarafMojo.java b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/PrepareCatalogKarafMojo.java
index 81dac41..5057f8b 100644
--- a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/PrepareCatalogKarafMojo.java
+++ b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/PrepareCatalogKarafMojo.java
@@ -527,10 +527,8 @@ public class PrepareCatalogKarafMojo extends AbstractMojo {
         // load features.xml file and parse it
 
         Set<String> answer = new LinkedHashSet<>();
-        try {
-            File file = new File(featuresDir, "features.xml");
-            InputStream is = new FileInputStream(file);
-
+        File file = new File(featuresDir, "features.xml");
+        try (InputStream is = new FileInputStream(file)) {
             DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
             dbf.setFeature("http://apache.org/xml/features/disallow-doctype-decl", true);
             dbf.setIgnoringComments(true);