[jboss-modules] 04/08: Imported Upstream version 1.4.4
Markus Koschany
apo-guest at moszumanska.debian.org
Wed Sep 16 08:05:54 UTC 2015
This is an automated email from the git hooks/post-receive script.
apo-guest pushed a commit to branch master
in repository jboss-modules.
commit 98eaf85fff8708617c19ef44633d73e7884b30e5
Author: Markus Koschany <apo at gambaru.de>
Date: Wed Sep 16 09:43:27 2015 +0200
Imported Upstream version 1.4.4
---
pom.xml | 28 +++----
.../java/__redirected/__TransformerFactory.java | 2 +-
src/main/java/org/jboss/modules/Main.java | 14 ++--
.../java/org/jboss/modules/MavenArtifactUtil.java | 31 ++++----
.../java/org/jboss/modules/ModuleClassLoader.java | 57 +-------------
.../java/org/jboss/modules/ModuleIdentifier.java | 4 +-
.../java/org/jboss/modules/ModuleXmlParser.java | 87 ++++++++++++----------
.../test/repo/test/maven/non-main/module.xml | 1 +
8 files changed, 90 insertions(+), 134 deletions(-)
diff --git a/pom.xml b/pom.xml
index 2d89857..b0084ac 100644
--- a/pom.xml
+++ b/pom.xml
@@ -1,24 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
~ JBoss, Home of Professional Open Source.
- ~ Copyright 2010, Red Hat, Inc., and individual contributors
- ~ as indicated by the @author tags. See the copyright.txt file in the
- ~ distribution for a full listing of individual contributors.
+ ~ Copyright 2015 Red Hat, Inc., and individual contributors
+ ~ as indicated by the @author tags.
~
- ~ This is free software; you can redistribute it and/or modify it
- ~ under the terms of the GNU Lesser General Public License as
- ~ published by the Free Software Foundation; either version 2.1 of
- ~ the License, or (at your option) any later version.
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
~
- ~ This software is distributed in the hope that it will be useful,
- ~ but WITHOUT ANY WARRANTY; without even the implied warranty of
- ~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- ~ Lesser General Public License for more details.
+ ~ http://www.apache.org/licenses/LICENSE-2.0
~
- ~ You should have received a copy of the GNU Lesser General Public
- ~ License along with this software; if not, write to the Free
- ~ Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- ~ 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License.
-->
<project xmlns="http://maven.apache.org/POM/4.0.0"
@@ -27,7 +23,7 @@
<modelVersion>4.0.0</modelVersion>
<groupId>org.jboss.modules</groupId>
<artifactId>jboss-modules</artifactId>
- <version>1.4.1.Final</version>
+ <version>1.4.4.Final</version>
<name>JBoss Modules</name>
<parent>
diff --git a/src/main/java/__redirected/__TransformerFactory.java b/src/main/java/__redirected/__TransformerFactory.java
index fb65093..ddfeccd 100644
--- a/src/main/java/__redirected/__TransformerFactory.java
+++ b/src/main/java/__redirected/__TransformerFactory.java
@@ -180,7 +180,7 @@ public final class __TransformerFactory extends SAXTransformerFactory {
public TransformerHandler newTransformerHandler(Source src) throws TransformerConfigurationException {
if (saxtual == null)
throw new TransformerConfigurationException("Provider is not a SAXTransformerFactory");
- return saxtual.newTransformerHandler();
+ return saxtual.newTransformerHandler(src);
}
public TransformerHandler newTransformerHandler(Templates templates) throws TransformerConfigurationException {
diff --git a/src/main/java/org/jboss/modules/Main.java b/src/main/java/org/jboss/modules/Main.java
index 86b4c63..53e316a 100644
--- a/src/main/java/org/jboss/modules/Main.java
+++ b/src/main/java/org/jboss/modules/Main.java
@@ -29,7 +29,6 @@ import java.io.PrintWriter;
import java.lang.management.ManagementFactory;
import java.lang.reflect.InvocationTargetException;
import java.net.URL;
-import java.security.AccessController;
import java.security.Policy;
import java.util.Enumeration;
import java.util.Iterator;
@@ -401,6 +400,15 @@ public final class Main {
ModularURLStreamHandlerFactory.addHandlerModule(module);
ModularContentHandlerFactory.addHandlerModule(module);
+ // at this point, having a security manager already installed will prevent correct operation.
+
+ final SecurityManager existingSecMgr = System.getSecurityManager();
+ if (existingSecMgr != null) {
+ System.err.println("An existing security manager was detected. You must use the -secmgr switch to start with a security manager.");
+ System.exit(1);
+ return; // not reached
+ }
+
try {
final Iterator<Policy> iterator = module.loadService(Policy.class).iterator();
if (iterator.hasNext()) {
@@ -412,10 +420,6 @@ public final class Main {
final ModulesPolicy policy = new ModulesPolicy(Policy.getPolicy());
Policy.setPolicy(policy);
- // these two lines really needed for post EAP 6.x
- ModuleClassLoader.POLICY_READY.set(true);
- policy.refresh();
-
if (secMgrModule != null) {
final Module loadedModule;
try {
diff --git a/src/main/java/org/jboss/modules/MavenArtifactUtil.java b/src/main/java/org/jboss/modules/MavenArtifactUtil.java
index a72186e..49fa091 100755
--- a/src/main/java/org/jboss/modules/MavenArtifactUtil.java
+++ b/src/main/java/org/jboss/modules/MavenArtifactUtil.java
@@ -29,8 +29,9 @@ import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
-import java.net.HttpURLConnection;
+import java.net.URLConnection;
import java.net.URL;
+import java.net.URLConnection;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.StandardCopyOption;
@@ -123,7 +124,9 @@ class MavenArtifactUtil {
switch (reader.getName()) {
case "localRepository": {
String localRepository = reader.nextText();
- mavenSettings.setLocalRepository(java.nio.file.Paths.get(localRepository));
+ if (!"".equals(localRepository)) {
+ mavenSettings.setLocalRepository(java.nio.file.Paths.get(localRepository));
+ }
break;
}
case "profiles": {
@@ -277,6 +280,7 @@ class MavenArtifactUtil {
if (split.length >= 4) { classifier = "-" + split[3]; }
String artifactRelativePath = relativeArtifactPath(groupId, artifactId, version);
+ String artifactRelativeHttpPath = relativeArtifactHttpPath(groupId, artifactId, version);
final MavenSettings settings = getSettings();
final Path localRepository = settings.getLocalRepository();
@@ -297,8 +301,8 @@ class MavenArtifactUtil {
final File pomFile = new File(localRepository.toFile(), artifactRelativePath + ".pom");
for (String remoteRepository : remoteRepos) {
try {
- String remotePomPath = remoteRepository + artifactRelativePath + ".pom";
- String remoteJarPath = remoteRepository + artifactRelativePath + classifier + ".jar";
+ String remotePomPath = remoteRepository + artifactRelativeHttpPath + ".pom";
+ String remoteJarPath = remoteRepository + artifactRelativeHttpPath + classifier + ".jar";
downloadFile(qualifier + ":pom", remotePomPath, pomFile);
downloadFile(qualifier + ":jar", remoteJarPath, jarFile);
if (jarFile.exists()) { //download successful
@@ -330,22 +334,17 @@ class MavenArtifactUtil {
}
public static void downloadFile(String artifact, String src, File dest) throws IOException {
+ if (dest.exists()){
+ return;
+ }
final URL url = new URL(src);
- final HttpURLConnection connection = (HttpURLConnection) url.openConnection();
+ final URLConnection connection = url.openConnection();
boolean message = Boolean.getBoolean("maven.download.message");
- InputStream bis = connection.getInputStream();
- try {
+ try (InputStream bis = connection.getInputStream()){
dest.getParentFile().mkdirs();
- FileOutputStream fos = new FileOutputStream(dest);
- try {
- if (message) { System.out.println("Downloading " + artifact); }
- Files.copy(bis,dest.toPath(), StandardCopyOption.REPLACE_EXISTING);
- } finally {
- StreamUtil.safeClose(fos);
- }
- } finally {
- StreamUtil.safeClose(bis);
+ if (message) { System.out.println("Downloading " + artifact); }
+ Files.copy(bis, dest.toPath(), StandardCopyOption.REPLACE_EXISTING);
}
}
}
diff --git a/src/main/java/org/jboss/modules/ModuleClassLoader.java b/src/main/java/org/jboss/modules/ModuleClassLoader.java
index 0a81e3a..cc78db4 100644
--- a/src/main/java/org/jboss/modules/ModuleClassLoader.java
+++ b/src/main/java/org/jboss/modules/ModuleClassLoader.java
@@ -18,12 +18,7 @@
package org.jboss.modules;
-import java.security.AccessController;
-import java.security.Permission;
import java.security.PermissionCollection;
-import java.security.Permissions;
-import java.security.Policy;
-import java.security.PrivilegedAction;
import java.security.ProtectionDomain;
import java.util.IdentityHashMap;
import java.util.Iterator;
@@ -44,7 +39,6 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
-import java.util.concurrent.atomic.AtomicBoolean;
import java.util.concurrent.atomic.AtomicReferenceFieldUpdater;
/**
@@ -59,10 +53,6 @@ import java.util.concurrent.atomic.AtomicReferenceFieldUpdater;
*/
public class ModuleClassLoader extends ConcurrentClassLoader {
- private static final boolean POLICY_PERMISSIONS;
-
- static final AtomicBoolean POLICY_READY = new AtomicBoolean();
-
static {
boolean parallelOk = true;
try {
@@ -72,7 +62,6 @@ public class ModuleClassLoader extends ConcurrentClassLoader {
if (! parallelOk) {
throw new Error("Failed to register " + ModuleClassLoader.class.getName() + " as parallel-capable");
}
- POLICY_PERMISSIONS = Boolean.parseBoolean(System.getProperty("jboss.modules.policy-permissions", "false"));
}
static final ResourceLoaderSpec[] NO_RESOURCE_LOADERS = new ResourceLoaderSpec[0];
@@ -376,55 +365,13 @@ public class ModuleClassLoader extends ConcurrentClassLoader {
private final IdentityHashMap<CodeSource, ProtectionDomain> protectionDomains = new IdentityHashMap<CodeSource, ProtectionDomain>();
- private static final PrivilegedAction<Policy> GET_POLICY_ACTION = new PrivilegedAction<Policy>() {
- public Policy run() {
- return Policy.getPolicy();
- }
- };
-
private ProtectionDomain getProtectionDomain(CodeSource codeSource) {
final IdentityHashMap<CodeSource, ProtectionDomain> map = protectionDomains;
synchronized (map) {
ProtectionDomain protectionDomain = map.get(codeSource);
if (protectionDomain == null) {
final PermissionCollection permissions = module.getPermissionCollection();
- if (POLICY_PERMISSIONS && POLICY_READY.get()) {
- final Policy policy = AccessController.doPrivileged(GET_POLICY_ACTION);
- if (policy != null) {
- final PermissionCollection policyPermissions = policy.getPermissions(codeSource);
- if (policyPermissions != null && policyPermissions != Policy.UNSUPPORTED_EMPTY_COLLECTION) {
- if (permissions == null) {
- protectionDomain = new ProtectionDomain(codeSource, policyPermissions);
- } else {
- final Enumeration<Permission> e2 = policyPermissions.elements();
- final Enumeration<Permission> e1 = permissions.elements();
- if (e2.hasMoreElements()) {
- if (e1.hasMoreElements()) {
- final Permissions combined = new Permissions();
- do {
- combined.add(e1.nextElement());
- } while (e1.hasMoreElements());
- while (e2.hasMoreElements()) {
- combined.add(e2.nextElement());
- }
- combined.setReadOnly();
- protectionDomain = new ProtectionDomain(codeSource, combined);
- } else {
- protectionDomain = new ProtectionDomain(codeSource, policyPermissions);
- }
- } else {
- protectionDomain = new ProtectionDomain(codeSource, permissions);
- }
- }
- } else {
- protectionDomain = new ProtectionDomain(codeSource, permissions);
- }
- } else {
- protectionDomain = new ProtectionDomain(codeSource, permissions);
- }
- } else {
- protectionDomain = new ProtectionDomain(codeSource, permissions);
- }
+ protectionDomain = new ProtectionDomain(codeSource, permissions);
map.put(codeSource, protectionDomain);
}
return protectionDomain;
@@ -791,7 +738,7 @@ public class ModuleClassLoader extends ConcurrentClassLoader {
*
* @apiviz.exclude
*/
- protected static final class Configuration {
+ public static final class Configuration {
private final Module module;
private final AssertionSetting assertionSetting;
private final ResourceLoaderSpec[] resourceLoaders;
diff --git a/src/main/java/org/jboss/modules/ModuleIdentifier.java b/src/main/java/org/jboss/modules/ModuleIdentifier.java
index c42176e..6811270 100644
--- a/src/main/java/org/jboss/modules/ModuleIdentifier.java
+++ b/src/main/java/org/jboss/modules/ModuleIdentifier.java
@@ -160,7 +160,7 @@ public final class ModuleIdentifier implements Serializable {
b.append('\\');
// fall thru
default:
- b.append(c);
+ b.appendCodePoint(c);
}
}
return escaped ? b.toString() : name;
@@ -178,7 +178,7 @@ public final class ModuleIdentifier implements Serializable {
b.append('\\');
// fall thru
default:
- b.append(c);
+ b.appendCodePoint(c);
}
}
return escaped ? b.toString() : slot;
diff --git a/src/main/java/org/jboss/modules/ModuleXmlParser.java b/src/main/java/org/jboss/modules/ModuleXmlParser.java
index 81fc9f7..16fab5b 100755
--- a/src/main/java/org/jboss/modules/ModuleXmlParser.java
+++ b/src/main/java/org/jboss/modules/ModuleXmlParser.java
@@ -247,7 +247,8 @@ final class ModuleXmlParser {
private static ModuleSpec parseDocument(final ResourceRootFactory factory, final String rootPath, XmlPullParser reader, final ModuleLoader moduleLoader, final ModuleIdentifier moduleIdentifier) throws XmlPullParserException, IOException {
int eventType;
- while ((eventType = reader.nextTag()) != END_DOCUMENT) {
+ for (;;) {
+ eventType = reader.nextTag();
switch (eventType) {
case START_DOCUMENT: {
return parseRootElement(factory, rootPath, reader, moduleLoader, moduleIdentifier);
@@ -280,7 +281,6 @@ final class ModuleXmlParser {
}
}
}
- throw endOfDocument(reader);
}
private static ModuleSpec parseRootElement(final ResourceRootFactory factory, final String rootPath, final XmlPullParser reader, final ModuleLoader moduleLoader, final ModuleIdentifier moduleIdentifier) throws XmlPullParserException, IOException {
@@ -346,7 +346,8 @@ final class ModuleXmlParser {
throw invalidModuleName(reader, moduleIdentifier);
}
int eventType;
- while ((eventType = reader.nextTag()) != END_DOCUMENT) {
+ for (;;) {
+ eventType = reader.nextTag();
switch (eventType) {
case END_TAG: {
return ModuleSpec.buildAlias(moduleIdentifier, ModuleIdentifier.create(targetName, targetSlot)).create();
@@ -356,14 +357,13 @@ final class ModuleXmlParser {
}
}
}
- throw endOfDocument(reader);
}
private static void parseModuleAbsentContents(final XmlPullParser reader, final ModuleIdentifier moduleIdentifier) throws XmlPullParserException, IOException {
final int count = reader.getAttributeCount();
String name = null;
String slot = null;
- final Set<String> required = new HashSet<>(Arrays.asList(A_NAME, A_TARGET_NAME));
+ final Set<String> required = new HashSet<>(Arrays.asList(A_NAME, A_SLOT));
for (int i = 0; i < count; i ++) {
validateAttributeNamespace(reader, i);
final String attribute = reader.getAttributeName(i);
@@ -381,7 +381,8 @@ final class ModuleXmlParser {
throw invalidModuleName(reader, moduleIdentifier);
}
int eventType;
- while ((eventType = reader.nextTag()) != END_DOCUMENT) {
+ for (;;) {
+ eventType = reader.nextTag();
switch (eventType) {
case END_TAG: {
return;
@@ -391,7 +392,6 @@ final class ModuleXmlParser {
}
}
}
- throw endOfDocument(reader);
}
private static void parseModuleContents(final XmlPullParser reader, final ResourceRootFactory factory, final ModuleLoader moduleLoader, final ModuleIdentifier moduleIdentifier, final ModuleSpec.Builder specBuilder, final String rootPath) throws XmlPullParserException, IOException {
@@ -417,13 +417,18 @@ final class ModuleXmlParser {
}
// xsd:all
MultiplePathFilterBuilder exportsBuilder = PathFilters.multiplePathFilterBuilder(true);
+ ArrayList<DependencySpec> dependencies = new ArrayList<>();
Set<String> visited = new HashSet<>();
int eventType;
boolean gotPerms = false;
- specBuilder.addDependency(DependencySpec.createLocalDependencySpec(PathFilters.acceptAll(), exportsBuilder.create()));
- while ((eventType = reader.nextTag()) != END_DOCUMENT) {
+ for (;;) {
+ eventType = reader.nextTag();
switch (eventType) {
case END_TAG: {
+ specBuilder.addDependency(DependencySpec.createLocalDependencySpec(PathFilters.acceptAll(), exportsBuilder.create()));
+ for (DependencySpec dependency : dependencies) {
+ specBuilder.addDependency(dependency);
+ }
if (! gotPerms) specBuilder.setPermissionCollection(ModulesPolicy.DEFAULT_PERMISSION_COLLECTION);
return;
}
@@ -436,7 +441,7 @@ final class ModuleXmlParser {
visited.add(element);
switch (element) {
case E_EXPORTS: parseFilterList(reader, exportsBuilder); break;
- case E_DEPENDENCIES: parseDependencies(reader, specBuilder); break;
+ case E_DEPENDENCIES: parseDependencies(reader, dependencies); break;
case E_MAIN_CLASS: parseMainClass(reader, specBuilder); break;
case E_RESOURCES: parseResources(factory, rootPath, reader, specBuilder); break;
case E_PROPERTIES: parseProperties(reader, specBuilder); break;
@@ -450,14 +455,14 @@ final class ModuleXmlParser {
}
}
}
- throw endOfDocument(reader);
}
- private static void parseDependencies(final XmlPullParser reader, final ModuleSpec.Builder specBuilder) throws XmlPullParserException, IOException {
+ private static void parseDependencies(final XmlPullParser reader, final ArrayList<DependencySpec> dependencies) throws XmlPullParserException, IOException {
assertNoAttributes(reader);
// xsd:choice
int eventType;
- while ((eventType = reader.nextTag()) != END_DOCUMENT) {
+ for (;;) {
+ eventType = reader.nextTag();
switch (eventType) {
case END_TAG: {
return;
@@ -465,8 +470,8 @@ final class ModuleXmlParser {
case START_TAG: {
validateNamespace(reader);
switch (reader.getName()) {
- case E_MODULE: parseModuleDependency(reader, specBuilder); break;
- case E_SYSTEM: parseSystemDependency(reader, specBuilder); break;
+ case E_MODULE: parseModuleDependency(reader, dependencies); break;
+ case E_SYSTEM: parseSystemDependency(reader, dependencies); break;
default: throw unexpectedContent(reader);
}
break;
@@ -476,10 +481,9 @@ final class ModuleXmlParser {
}
}
}
- throw endOfDocument(reader);
}
- private static void parseModuleDependency(final XmlPullParser reader, final ModuleSpec.Builder specBuilder) throws XmlPullParserException, IOException {
+ private static void parseModuleDependency(final XmlPullParser reader, final ArrayList<DependencySpec> dependencies) throws XmlPullParserException, IOException {
String name = null;
String slot = null;
boolean export = false;
@@ -516,7 +520,8 @@ final class ModuleXmlParser {
final MultiplePathFilterBuilder importBuilder = PathFilters.multiplePathFilterBuilder(true);
final MultiplePathFilterBuilder exportBuilder = PathFilters.multiplePathFilterBuilder(export);
int eventType;
- while ((eventType = reader.nextTag()) != END_DOCUMENT) {
+ for (;;) {
+ eventType = reader.nextTag();
switch (eventType) {
case END_TAG: {
assert services.equals(D_NONE) || services.equals(D_EXPORT) || services.equals(D_IMPORT);
@@ -541,7 +546,7 @@ final class ModuleXmlParser {
importBuilder.addFilter(PathFilters.getMetaInfFilter(), false);
importFilter = importBuilder.create();
}
- specBuilder.addDependency(DependencySpec.createModuleDependencySpec(importFilter, exportFilter, null, ModuleIdentifier.create(name, slot), optional));
+ dependencies.add(DependencySpec.createModuleDependencySpec(importFilter, exportFilter, null, ModuleIdentifier.create(name, slot), optional));
return;
}
case START_TAG: {
@@ -560,7 +565,7 @@ final class ModuleXmlParser {
}
}
- private static void parseSystemDependency(final XmlPullParser reader, final ModuleSpec.Builder specBuilder) throws XmlPullParserException, IOException {
+ private static void parseSystemDependency(final XmlPullParser reader, final ArrayList<DependencySpec> dependencies) throws XmlPullParserException, IOException {
boolean export = false;
final int count = reader.getAttributeCount();
for (int i = 0; i < count; i ++) {
@@ -574,11 +579,12 @@ final class ModuleXmlParser {
Set<String> paths = Collections.emptySet();
final MultiplePathFilterBuilder exportBuilder = PathFilters.multiplePathFilterBuilder(export);
int eventType;
- while ((eventType = reader.nextTag()) != END_DOCUMENT) {
+ for (;;) {
+ eventType = reader.nextTag();
switch (eventType) {
case END_TAG: {
final PathFilter exportFilter = exportBuilder.create();
- specBuilder.addDependency(DependencySpec.createSystemDependencySpec(PathFilters.acceptAll(), exportFilter, paths));
+ dependencies.add(DependencySpec.createSystemDependencySpec(PathFilters.acceptAll(), exportFilter, paths));
return;
}
case START_TAG: {
@@ -626,7 +632,8 @@ final class ModuleXmlParser {
assertNoAttributes(reader);
// xsd:choice
int eventType;
- while ((eventType = reader.nextTag()) != END_DOCUMENT) {
+ for (;;) {
+ eventType = reader.nextTag();
switch (eventType) {
case END_TAG: {
specBuilder.addResourceRoot(new ResourceLoaderSpec(new NativeLibraryResourceLoader(new File(rootPath, "lib")), PathFilters.rejectAll()));
@@ -656,7 +663,6 @@ final class ModuleXmlParser {
}
}
}
- throw endOfDocument(reader);
}
static ResourceLoader createMavenArtifactLoader(final String name) throws IOException
@@ -698,7 +704,8 @@ final class ModuleXmlParser {
}
int eventType;
- while ((eventType = reader.nextTag()) != END_DOCUMENT) {
+ for (;;) {
+ eventType = reader.nextTag();
switch (eventType) {
case END_TAG: {
try {
@@ -737,7 +744,8 @@ final class ModuleXmlParser {
ResourceLoader resourceLoader;
int eventType;
- while ((eventType = reader.nextTag()) != END_DOCUMENT) {
+ for (;;) {
+ eventType = reader.nextTag();
switch (eventType) {
case END_TAG: {
try {
@@ -784,7 +792,8 @@ final class ModuleXmlParser {
final Set<String> encountered = new HashSet<>();
int eventType;
- while ((eventType = reader.nextTag()) != END_DOCUMENT) {
+ for (;;) {
+ eventType = reader.nextTag();
switch (eventType) {
case END_TAG: {
try {
@@ -816,7 +825,8 @@ final class ModuleXmlParser {
assertNoAttributes(reader);
// xsd:choice
int eventType;
- while ((eventType = reader.nextTag()) != END_DOCUMENT) {
+ for (;;) {
+ eventType = reader.nextTag();
switch (eventType) {
case END_TAG: {
return;
@@ -837,7 +847,6 @@ final class ModuleXmlParser {
}
}
}
- throw endOfDocument(reader);
}
private static void parsePath(final XmlPullParser reader, final boolean include, final MultiplePathFilterBuilder builder) throws XmlPullParserException, IOException {
@@ -877,7 +886,8 @@ final class ModuleXmlParser {
final Set<String> set = new FastCopyHashSet<>();
// xsd:choice
int eventType;
- while ((eventType = reader.nextTag()) != END_DOCUMENT) {
+ for (;;) {
+ eventType = reader.nextTag();
switch (eventType) {
case END_TAG: {
return set;
@@ -891,7 +901,6 @@ final class ModuleXmlParser {
}
}
}
- return set;
}
private static void parseSet(final XmlPullParser reader, final boolean include, final MultiplePathFilterBuilder builder) throws XmlPullParserException, IOException {
@@ -924,7 +933,8 @@ final class ModuleXmlParser {
assertNoAttributes(reader);
// xsd:choice
int eventType;
- while ((eventType = reader.nextTag()) != END_DOCUMENT) {
+ for (;;) {
+ eventType = reader.nextTag();
switch (eventType) {
case END_TAG: {
return;
@@ -945,7 +955,6 @@ final class ModuleXmlParser {
}
}
}
- throw endOfDocument(reader);
}
private static void parseProperty(final XmlPullParser reader, final ModuleSpec.Builder specBuilder) throws XmlPullParserException, IOException {
@@ -980,7 +989,8 @@ final class ModuleXmlParser {
// xsd:choice
ArrayList<PermissionFactory> list = new ArrayList<>();
int eventType;
- while ((eventType = reader.nextTag()) != END_DOCUMENT) {
+ for (;;) {
+ eventType = reader.nextTag();
switch (eventType) {
case END_TAG: {
specBuilder.setPermissionCollection(new FactoryPermissionCollection(list.toArray(new PermissionFactory[list.size()])));
@@ -1002,7 +1012,6 @@ final class ModuleXmlParser {
}
}
}
- throw endOfDocument(reader);
}
private static void parseGrant(final XmlPullParser reader, final ModuleLoader moduleLoader, final ModuleIdentifier moduleIdentifier, final ArrayList<PermissionFactory> list) throws XmlPullParserException, IOException {
@@ -1033,7 +1042,8 @@ final class ModuleXmlParser {
private static void parseNoContent(final XmlPullParser reader) throws XmlPullParserException, IOException {
int eventType;
- while ((eventType = reader.nextTag()) != END_DOCUMENT) {
+ for (;;) {
+ eventType = reader.nextTag();
switch (eventType) {
case END_TAG: {
return;
@@ -1043,12 +1053,12 @@ final class ModuleXmlParser {
}
}
}
- throw endOfDocument(reader);
}
static void parseEndDocument(final XmlPullParser reader) throws XmlPullParserException, IOException {
int eventType;
- while ((eventType = reader.nextToken()) != END_DOCUMENT) {
+ for (;;) {
+ eventType = reader.nextToken();
switch (eventType) {
case END_DOCUMENT: {
return;
@@ -1071,6 +1081,5 @@ final class ModuleXmlParser {
}
}
}
- return;
}
}
diff --git a/src/test/resources/test/repo/test/maven/non-main/module.xml b/src/test/resources/test/repo/test/maven/non-main/module.xml
index 14b7312..b7c63fe 100644
--- a/src/test/resources/test/repo/test/maven/non-main/module.xml
+++ b/src/test/resources/test/repo/test/maven/non-main/module.xml
@@ -22,6 +22,7 @@
<resources>
<artifact name="org.jboss.resteasy:resteasy-jackson-provider:3.0.5.Final"/>
<artifact name="org.jboss.ws.cxf:jbossws-cxf-resources:4.3.0.Final:wildfly800"/>
+ <artifact name="xerces:xercesImpl:2.9.1-jbossas-2"/>
</resources>
<dependencies/>
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-java/jboss-modules.git
More information about the pkg-java-commits
mailing list