/hg/release/icedtea-web-1.7: 7 new changesets

jvanek at icedtea.classpath.org jvanek at icedtea.classpath.org
Fri Mar 2 09:42:07 UTC 2018


changeset 67fa5af65e7f in /hg/release/icedtea-web-1.7
details: http://icedtea.classpath.org/hg/release/icedtea-web-1.7?cmd=changeset;node=67fa5af65e7f
author: Jiri Vanek <jvanek at redhat.com>
date: Fri Mar 02 10:18:08 2018 +0100

	autoformatted:  netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java and netx/net/sourceforge/jnlp/Parser.java


changeset 385bbdb0c185 in /hg/release/icedtea-web-1.7
details: http://icedtea.classpath.org/hg/release/icedtea-web-1.7?cmd=changeset;node=385bbdb0c185
author: Jiri Vanek <jvanek at redhat.com>
date: Fri Mar 02 10:21:15 2018 +0100

	nosecurity switch made extendable also for certificate issues
	* netx/net/sourceforge/jnlp/config/Defaults.java: set deployment.security.itw.ignorecertissues
	* netx/net/sourceforge/jnlp/config/DeploymentConfiguration.java: added deployment.security.itw.ignorecertissues
	* netx/net/sourceforge/jnlp/resources/Messages.properties: BONosecurity is now tailed by rumor about deployment.security.itw.ignorecertissues
	* netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java: when ITW was about to throw certificate-caused launch exception, it i snow consulted with nosecurity and deployment.security.itw.ignorecertissues. If both are here, exception is only printed


changeset f8fc55ba5af6 in /hg/release/icedtea-web-1.7
details: http://icedtea.classpath.org/hg/release/icedtea-web-1.7?cmd=changeset;node=f8fc55ba5af6
author: Jiri Vanek <jvanek at redhat.com>
date: Fri Mar 02 10:22:31 2018 +0100

	removed ridiculous disable/enable on desktop integration pane
	* netx/net/sourceforge/jnlp/security/dialogs/AccessWarningPane.java: both ok/cancel are now permanently enabled, although it is behaving a bit unexpectedly sometimes.


changeset 84cebefe259d in /hg/release/icedtea-web-1.7
details: http://icedtea.classpath.org/hg/release/icedtea-web-1.7?cmd=changeset;node=84cebefe259d
author: Jiri Vanek <jvanek at redhat.com>
date: Fri Mar 02 10:23:59 2018 +0100

	made OmegaT run - Made ITW to load resources from j2se/java tag too
	 * netx/net/sourceforge/jnlp/Parser.java: constructors/methods made public to help unittests
	 * netx/net/sourceforge/jnlp/ShortcutDesc.java: same
	 * netx/net/sourceforge/jnlp/ResourcesDesc.java: getJars made to iterate recursively over content of j2se
	 * tests/netx/unit/net/sourceforge/jnlp/ParserBasic.java: added testcase
	 * tests/netx/unit/net/sourceforge/jnlp/jarsInJreDesc.jnlp: testfile copied form omegat which have this strange resources


changeset 2a9ff9f6ed44 in /hg/release/icedtea-web-1.7
details: http://icedtea.classpath.org/hg/release/icedtea-web-1.7?cmd=changeset;node=2a9ff9f6ed44
author: Jiri Vanek <jvanek at redhat.com>
date: Fri Mar 02 10:27:35 2018 +0100

	Fixed news for latest changes
	* NEWS: mentioned javafx-desc, -nosecurity enhancement and j2se/java resources


changeset 6b237a5f396c in /hg/release/icedtea-web-1.7
details: http://icedtea.classpath.org/hg/release/icedtea-web-1.7?cmd=changeset;node=6b237a5f396c
author: Jiri Vanek <jvanek at redhat.com>
date: Fri Mar 02 10:34:07 2018 +0100

	Added basic support for javafx desc
	* netx/net/sourceforge/jnlp/ApplicationDesc.java: added flag fx to rember what was initiator
	* netx/net/sourceforge/jnlp/Node.java: Added abstraction ElementName over string of element name to hold namespace and separate it for name if present
	* netx/net/sourceforge/jnlp/Parser.java: for javafx-desc ApplicationDesc is instantiated. Adapted to ElementName
	* tests/netx/unit/net/sourceforge/jnlp/ParserCornerCases.java: ElementName
	* tests/netx/unit/net/sourceforge/jnlp/ParserTest.java: ElementName


changeset 4abd0f089773 in /hg/release/icedtea-web-1.7
details: http://icedtea.classpath.org/hg/release/icedtea-web-1.7?cmd=changeset;node=4abd0f089773
author: Jiri Vanek <jvanek at redhat.com>
date: Fri Mar 02 10:41:29 2018 +0100

	Added test for javafx


diffstat:

 .hgignore                                                                 |    3 +
 ChangeLog                                                                 |   53 +
 NEWS                                                                      |    3 +
 netx/net/sourceforge/jnlp/ApplicationDesc.java                            |    6 +-
 netx/net/sourceforge/jnlp/Node.java                                       |   55 +-
 netx/net/sourceforge/jnlp/Parser.java                                     |  600 +++---
 netx/net/sourceforge/jnlp/ResourcesDesc.java                              |   25 +-
 netx/net/sourceforge/jnlp/ShortcutDesc.java                               |    2 +-
 netx/net/sourceforge/jnlp/config/Defaults.java                            |    7 +-
 netx/net/sourceforge/jnlp/config/DeploymentConfiguration.java             |    3 +
 netx/net/sourceforge/jnlp/resources/Messages.properties                   |    2 +-
 netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java                    |  881 +++++----
 netx/net/sourceforge/jnlp/security/dialogs/AccessWarningPane.java         |   19 +-
 netx/net/sourceforge/jnlp/util/FileUtils.java                             |    7 +-
 tests/netx/unit/net/sourceforge/jnlp/ParserBasic.java                     |   27 +-
 tests/netx/unit/net/sourceforge/jnlp/ParserCornerCases.java               |    4 +-
 tests/netx/unit/net/sourceforge/jnlp/ParserTest.java                      |  138 +-
 tests/netx/unit/net/sourceforge/jnlp/jarsInJreDesc.jnlp                   |  100 +
 tests/netx/unit/net/sourceforge/jnlp/util/FileUtilsTest.java              |    3 +
 tests/reproducers/custom/JavaFx/resources/JavaFx.jar                      |  Bin 
 tests/reproducers/custom/JavaFx/resources/JavaFx.jnlp                     |   15 +
 tests/reproducers/custom/JavaFx/srcs/Controller.java                      |   11 +
 tests/reproducers/custom/JavaFx/srcs/Main.java                            |   23 +
 tests/reproducers/custom/JavaFx/srcs/Makefile                             |   25 +
 tests/reproducers/custom/JavaFx/srcs/helloworld.fxml                      |   17 +
 tests/reproducers/custom/JavaFx/testcases/JavaFxTest.java                 |   81 +
 tests/reproducers/simple/simpletest1/testcases/XDGspecificationTests.java |   30 +-
 tests/test-extensions/net/sourceforge/jnlp/ServerAccess.java              |   28 +
 28 files changed, 1387 insertions(+), 781 deletions(-)

diffs (truncated from 4724 to 500 lines):

diff -r dbb8dc397d15 -r 4abd0f089773 .hgignore
--- a/.hgignore	Mon Dec 18 13:22:51 2017 +0100
+++ b/.hgignore	Fri Mar 02 10:41:29 2018 +0100
@@ -12,3 +12,6 @@
 netx/net/sourceforge/jnlp/resources/ChangeLog\.html
 netx/net/sourceforge/jnlp/resources/NEWS\.html
 netx-dist-tests-whitelist
+rust-launcher/target
+rust-launcher/Cargo.lock
+
diff -r dbb8dc397d15 -r 4abd0f089773 ChangeLog
--- a/ChangeLog	Mon Dec 18 13:22:51 2017 +0100
+++ b/ChangeLog	Fri Mar 02 10:41:29 2018 +0100
@@ -1,3 +1,56 @@
+2018-02-06  Jiri Vanek <jvanek at redhat.com>
+
+	Added test for javafx-desc
+	* tests/reproducers/custom/JavaFx/resources/JavaFx.jar
+	* tests/reproducers/custom/JavaFx/resources/JavaFx.jnlp
+	* tests/reproducers/custom/JavaFx/srcs/Controller.class
+	* tests/reproducers/custom/JavaFx/srcs/Controller.java
+	* tests/reproducers/custom/JavaFx/srcs/Main.class
+	* tests/reproducers/custom/JavaFx/srcs/Main.java
+	* tests/reproducers/custom/JavaFx/srcs/Makefile
+	* tests/reproducers/custom/JavaFx/srcs/helloworld.fxml
+	* tests/reproducers/custom/JavaFx/testcases/JavaFxTest.java
+
+2018-02-05  Jiri Vanek <jvanek at redhat.com>
+
+	Added basic support for javafx desc
+	* netx/net/sourceforge/jnlp/ApplicationDesc.java: added flag fx to rember what was initiator
+	* netx/net/sourceforge/jnlp/Node.java: Added abstraction ElementName over string of element name to hold namespace
+	and separate it for name if present
+	* netx/net/sourceforge/jnlp/Parser.java: for javafx-desc ApplicationDesc is instantiated. Adapted to ElementName
+	* tests/netx/unit/net/sourceforge/jnlp/ParserCornerCases.java: ElementName
+	* tests/netx/unit/net/sourceforge/jnlp/ParserTest.java: ElementName
+
+2018-02-05  Jiri Vanek <jvanek at redhat.com>
+
+	Fixed news for latest changes
+	* NEWS: mentioned javafx-desc, -nosecurity enhancement and j2se/java resources
+
+2018-02-03  Jiri Vanek <jvanek at redhat.com>
+
+	Made ITW to load resources from j2se/java tag too
+	* netx/net/sourceforge/jnlp/Parser.java: constructors/methods made public to help unittests
+	* netx/net/sourceforge/jnlp/ShortcutDesc.java: same
+	* netx/net/sourceforge/jnlp/ResourcesDesc.java: getJars made to iterate recursively over content of j2se
+	* tests/netx/unit/net/sourceforge/jnlp/ParserBasic.java: added testcase
+	* tests/netx/unit/net/sourceforge/jnlp/jarsInJreDesc.jnlp: testfile copied form omegat which have this strange resources
+
+2018-02-03  Jiri Vanek <jvanek at redhat.com>
+
+	nosecurity switch made extendable also for certificate issues
+	* netx/net/sourceforge/jnlp/config/Defaults.java: set deployment.security.itw.ignorecertissues
+	* netx/net/sourceforge/jnlp/config/DeploymentConfiguration.java: added deployment.security.itw.ignorecertissues
+	* netx/net/sourceforge/jnlp/resources/Messages.properties: BONosecurity is now tailed by rumor about deployment.security.itw.ignorecertissues
+	* netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java: when ITW was about to throw certificate-caused launch exception,
+	it i snow consulted with nosecurity and deployment.security.itw.ignorecertissues. If both are here, exception is only printed
+
+2018-02-03  Jiri Vanek <jvanek at redhat.com>
+
+	* netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java: autoformatted
+
+2018-02-03  Jiri Vanek <jvanek at redhat.com>
+	* netx/net/sourceforge/jnlp/Parser.java: auto-formatted
+
 2017-12-15  Jiri Vanek <jvanek at redhat.com>
 
 	Post-release changes
diff -r dbb8dc397d15 -r 4abd0f089773 NEWS
--- a/NEWS	Mon Dec 18 13:22:51 2017 +0100
+++ b/NEWS	Fri Mar 02 10:41:29 2018 +0100
@@ -9,6 +9,9 @@
 CVE-XXXX-YYYY: http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=XXXX-YYYY
 
 New in release 1.7.2 (YYYY-MM-DD):
+* added support for javafx-desc and so allwong run of pure-javafx only applications
+* --nosecurity enhanced for possibility to skip invalid signatures
+* enhanced to allow resources to be read also from j2se/java element (OmegaT)
 
 New in release 1.7.1 (2017-12-15):
 * better work with authors file
diff -r dbb8dc397d15 -r 4abd0f089773 netx/net/sourceforge/jnlp/ApplicationDesc.java
--- a/netx/net/sourceforge/jnlp/ApplicationDesc.java	Mon Dec 18 13:22:51 2017 +0100
+++ b/netx/net/sourceforge/jnlp/ApplicationDesc.java	Fri Mar 02 10:41:29 2018 +0100
@@ -30,7 +30,8 @@
     private final String mainClass;
 
     /** the arguments */
-    private String arguments[];
+    private  String arguments[];
+    private final boolean fx;
 
     /**
      * Create an Application descriptor.
@@ -38,9 +39,10 @@
      * @param mainClass the main class name and package
      * @param arguments the arguments
      */
-    public ApplicationDesc(String mainClass, String arguments[]) {
+    public ApplicationDesc(String mainClass, String[] arguments, boolean isFX) {
         this.mainClass = mainClass;
         this.arguments = arguments;
+        this.fx = isFX;
     }
 
     /**
diff -r dbb8dc397d15 -r 4abd0f089773 netx/net/sourceforge/jnlp/Node.java
--- a/netx/net/sourceforge/jnlp/Node.java	Mon Dec 18 13:22:51 2017 +0100
+++ b/netx/net/sourceforge/jnlp/Node.java	Fri Mar 02 10:41:29 2018 +0100
@@ -40,6 +40,7 @@
 import java.util.ArrayList;
 import java.util.Enumeration;
 import java.util.List;
+import java.util.Objects;
 
 import net.sourceforge.nanoxml.XMLElement;
 
@@ -52,7 +53,7 @@
  * regular XML Node interface (for the methods used by Parser).
  */
 /* NANO */
-class Node {
+public class Node {
     private XMLElement xml;
     private Node next;
     private Node children[];
@@ -124,18 +125,62 @@
         return (String) xml.getAttribute(name);
     }
 
-    String getNodeName() {
+    public ElementName getNodeName() {
         if (xml.getName() == null) {
-            return "";
+            return new ElementName("");
         }
         else {
-            return xml.getName();
+            return new ElementName(xml.getName());
         }
     }
 
+
     @Override
     public String toString() {
-        return getNodeName();
+        return getNodeName().getOriginal();
+    }
+
+    public static class ElementName {
+
+        private final String base;
+
+        public ElementName(String base) {
+            this.base = base;
+        }
+        
+        @Override
+        public boolean equals(Object obj) {
+            if (obj instanceof ElementName) {
+                return ((ElementName) obj).base.equals(base);
+            } else {
+                return false;
+            }
+        }
+
+        @Override
+        public int hashCode() {
+            return base.hashCode();
+        }
+
+        public String getName() {
+            if (base.contains(":")) {
+                return base.split(":")[1];
+            } else {
+                return base;
+            }
+        }
+        public String getPrefix() {
+            if (base.contains(":")) {
+                return base.split(":")[0];
+            } else {
+                return "";
+            }
+        }
+
+        private String getOriginal() {
+            return base + "(" + getPrefix() + ":" + getName() + ")";
+        }
+
     }
 }
 
diff -r dbb8dc397d15 -r 4abd0f089773 netx/net/sourceforge/jnlp/Parser.java
--- a/netx/net/sourceforge/jnlp/Parser.java	Mon Dec 18 13:22:51 2017 +0100
+++ b/netx/net/sourceforge/jnlp/Parser.java	Fri Mar 02 10:41:29 2018 +0100
@@ -14,7 +14,6 @@
 // You should have received a copy of the GNU Lesser General Public
 // License along with this library; if not, write to the Free Software
 // Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
-
 package net.sourceforge.jnlp;
 
 import static net.sourceforge.jnlp.runtime.Translator.R;
@@ -33,26 +32,25 @@
 import net.sourceforge.jnlp.util.logging.OutputController;
 
 /**
- * Contains methods to parse an XML document into a JNLPFile.
- * Implements JNLP specification version 1.0.
+ * Contains methods to parse an XML document into a JNLPFile. Implements JNLP
+ * specification version 1.0.
  *
- * @author <a href="mailto:jmaxwell at users.sourceforge.net">Jon A. Maxwell (JAM)</a> - initial author
+ * @author <a href="mailto:jmaxwell at users.sourceforge.net">Jon A. Maxwell
+ * (JAM)</a> - initial author
  * @version $Revision: 1.13 $
  */
 public final class Parser {
-    
+
     private static String CODEBASE = "codebase";
     private static String MAINCLASS = "main-class";
     private static final Pattern anyWhiteSpace = Pattern.compile("\\s");
 
     // defines netx.jnlp.Node class if using Tiny XML or Nano XML
-
     // Currently uses the Nano XML parse.  Search for "SAX" or
     // "TINY" or "NANO" and uncomment those blocks and comment the
     // active ones (if any) to switch XML parsers.  Also
     // (un)comment appropriate Node class at end of this file and
     // do a clean build.
-
     /**
      * Ensure consistent error handling.
      */
@@ -69,80 +67,96 @@
             OutputController.getLogger().log(OutputController.Level.ERROR_ALL, exception);
         }
     };
-    */
-
+     */
     // fix: some descriptors need to use the jnlp file at a later
     // date and having file ref lets us pass it to their
     // constructors
     //
-    /** the file reference */
+    /**
+     * the file reference
+     */
     private final JNLPFile file; // do not use (uninitialized)
 
-    /** the root node */
+    /**
+     * the root node
+     */
     private final Node root;
 
-    /** the specification version */
+    /**
+     * the specification version
+     */
     private final Version spec;
 
-    /** the base URL that all hrefs are relative to */
+    /**
+     * the base URL that all hrefs are relative to
+     */
     private final URL base;
 
-    /** the codebase URL */
+    /**
+     * the codebase URL
+     */
     private URL codebase;
 
-    /** the file URL */
+    /**
+     * the file URL
+     */
     private final URL fileLocation;
 
-    /** whether to throw errors on non-fatal errors. */
+    /**
+     * whether to throw errors on non-fatal errors.
+     */
     private final boolean strict; // if strict==true parses a file with no error then strict==false should also
 
-    /** whether to allow extensions to the JNLP specification */
+    /**
+     * whether to allow extensions to the JNLP specification
+     */
     private final boolean allowExtensions; // true if extensions to JNLP spec are ok
-    
+
     /**
-     * Create a parser for the JNLP file. If the location
-     * parameters is not null it is used as the default codebase
-     * (does not override value of jnlp element's href
-     * attribute).
+     * Create a parser for the JNLP file. If the location parameters is not null
+     * it is used as the default codebase (does not override value of jnlp
+     * element's href attribute).
      * <p>
-     * The root node may be normalized as a side effect of this
-     * constructor.
+     * The root node may be normalized as a side effect of this constructor.
      * </p>
+     *
      * @param file the (uninitialized) file reference
-     * @param base if codebase is not specified, a default base for relative URLs
+     * @param base if codebase is not specified, a default base for relative
+     * URLs
      * @param root the root node
      * @param settings the parser settings to use when parsing the JNLP file
      * @throws ParseException if the JNLP file is invalid
      */
-    Parser(JNLPFile file, URL base, Node root, ParserSettings settings) throws ParseException {
-	this(file, base, root, settings, null);
+    public Parser(JNLPFile file, URL base, Node root, ParserSettings settings) throws ParseException {
+        this(file, base, root, settings, null);
     }
 
     /**
-     * Create a parser for the JNLP file. If the location
-     * parameters is not null it is used as the default codebase
-     * (does not override value of jnlp element's href
-     * attribute).
+     * Create a parser for the JNLP file. If the location parameters is not null
+     * it is used as the default codebase (does not override value of jnlp
+     * element's href attribute).
      * <p>
-     * The root node may be normalized as a side effect of this
-     * constructor.
+     * The root node may be normalized as a side effect of this constructor.
      * </p>
+     *
      * @param file the (uninitialized) file reference
-     * @param base if codebase is not specified, a default base for relative URLs
+     * @param base if codebase is not specified, a default base for relative
+     * URLs
      * @param root the root node
      * @param settings the parser settings to use when parsing the JNLP file
      * @param codebase codebase to use if we did not parse one from JNLP file.
      * @throws ParseException if the JNLP file is invalid
      */
-    Parser(JNLPFile file, URL base, Node root, ParserSettings settings, URL codebase) throws ParseException {
+    public Parser(JNLPFile file, URL base, Node root, ParserSettings settings, URL codebase) throws ParseException {
         this.file = file;
         this.root = root;
         this.strict = settings.isStrict();
         this.allowExtensions = settings.isExtensionAllowed();
 
         // ensure it's a JNLP node
-        if (root == null || !root.getNodeName().equals("jnlp"))
+        if (root == null || !root.getNodeName().getName().equals("jnlp")) {
             throw new ParseException(R("PInvalidRoot"));
+        }
 
         // JNLP tag information
         this.spec = getVersion(root, "spec", "1.0+");
@@ -154,7 +168,9 @@
         }
 
         if (this.codebase == null) // Codebase is overwritten if codebase was not specified in file or if parsing of it failed
+        {
             this.codebase = codebase;
+        }
 
         this.base = (this.codebase != null) ? this.codebase : base; // if codebase not specified use default codebase
         fileLocation = getURL(root, "href", this.base);
@@ -165,6 +181,7 @@
 
     /**
      * Returns the file version.
+     *
      * @return version of file
      */
     public Version getFileVersion() {
@@ -173,6 +190,7 @@
 
     /**
      * Returns the file location.
+     *
      * @return url of source file
      */
     public URL getFileLocation() {
@@ -188,7 +206,7 @@
 
     /**
      * @return the specification version.
-     *  
+     *
      */
     public Version getSpecVersion() {
         return spec;
@@ -198,7 +216,7 @@
         UpdateDesc updateDesc = null;
         Node child = parent.getFirstChild();
         while (child != null) {
-            if (child.getNodeName().equals("update")) {
+            if (child.getNodeName().getName().equals("update")) {
                 if (strict && updateDesc != null) {
                     throw new ParseException(R("PTwoUpdates"));
                 }
@@ -254,16 +272,15 @@
     //
     // This section loads the resources elements
     //
-
     /**
-     * @return all of the ResourcesDesc elements under the specified
-     * node (jnlp or j2se).
+     * @return all of the ResourcesDesc elements under the specified node (jnlp
+     * or j2se).
      *
      * @param parent the parent node (either jnlp or j2se)
      * @param j2se true if the resources are located under a j2se or java node
      * @throws ParseException if the JNLP file is invalid
      */
-    List<ResourcesDesc> getResources(Node parent, boolean j2se)
+    public List<ResourcesDesc> getResources(Node parent, boolean j2se)
             throws ParseException {
         List<ResourcesDesc> result = new ArrayList<>();
         Node resources[] = getChildNodes(parent, "resources");
@@ -285,34 +302,39 @@
      * @param j2se true if the resources are located under a j2se or java node
      * @throws ParseException if the JNLP file is invalid
      */
-    private  ResourcesDesc getResourcesDesc(Node node, boolean j2se) throws ParseException {
+    private ResourcesDesc getResourcesDesc(Node node, boolean j2se) throws ParseException {
         boolean mainFlag = false; // if found a main tag
 
         // create resources
-        ResourcesDesc resources =
-                new ResourcesDesc(file,
-                              getLocales(node),
-                              splitString(getAttribute(node, "os", null)),
-                              splitString(getAttribute(node, "arch", null)));
+        ResourcesDesc resources
+                = new ResourcesDesc(file,
+                        getLocales(node),
+                        splitString(getAttribute(node, "os", null)),
+                        splitString(getAttribute(node, "arch", null)));
 
         // step through the elements
         Node child = node.getFirstChild();
         while (child != null) {
-            String name = child.getNodeName();
+            String name = child.getNodeName().getName();
 
             // check for nativelib but no trusted environment
-            if ("nativelib".equals(name))
-                if (!isTrustedEnvironment())
+            if ("nativelib".equals(name)) {
+                if (!isTrustedEnvironment()) {
                     throw new ParseException(R("PUntrustedNative"));
+                }
+            }
 
             if ("j2se".equals(name) || "java".equals(name)) {
-                if (getChildNode(root, "component-desc") != null)
-                    if (strict)
+                if (getChildNode(root, "component-desc") != null) {
+                    if (strict) {
                         throw new ParseException(R("PExtensionHasJ2SE"));
-                if (!j2se)
+                    }
+                }
+                if (!j2se) {
                     resources.addResource(getJRE(child));
-                else
+                } else {
                     throw new ParseException(R("PInnerJ2SE"));
+                }
             }
 
             if ("jar".equals(name) || "nativelib".equals(name)) {
@@ -331,14 +353,17 @@
                 resources.addResource(jar);
             }
 
-            if ("extension".equals(name))
+            if ("extension".equals(name)) {
                 resources.addResource(getExtension(child));
+            }
 
-            if ("property".equals(name))
+            if ("property".equals(name)) {
                 resources.addResource(getProperty(child));
+            }
 
-            if ("package".equals(name))
+            if ("package".equals(name)) {
                 resources.addResource(getPackage(child));
+            }
 


More information about the distro-pkg-dev mailing list