From 2201f3caea5dec0397451a7b1053cfbdd5efd85d Mon Sep 17 00:00:00 2001
From: Matthew Swift <matthew.swift@forgerock.com>
Date: Mon, 02 Dec 2013 12:30:51 +0000
Subject: [PATCH] Fix OPENDJ-1079: OpenDJ UpgradeCli adds HTTP connection handler, which breaks Tomcat6 when OpenDJ is an embeddedDS
---
opends/src/server/org/opends/server/admin/ClassPropertyDefinition.java | 26 +++++++++++++-------------
1 files changed, 13 insertions(+), 13 deletions(-)
diff --git a/opends/src/server/org/opends/server/admin/ClassPropertyDefinition.java b/opends/src/server/org/opends/server/admin/ClassPropertyDefinition.java
index 5ddde4a..adca10d 100644
--- a/opends/src/server/org/opends/server/admin/ClassPropertyDefinition.java
+++ b/opends/src/server/org/opends/server/admin/ClassPropertyDefinition.java
@@ -23,6 +23,7 @@
*
*
* Copyright 2008 Sun Microsystems, Inc.
+ * Portions copyright 2013 ForgeRock AS.
*/
package org.opends.server.admin;
@@ -105,7 +106,7 @@
* performed.
*/
try {
- loadClass(value);
+ loadClass(value, true);
} catch (ClassNotFoundException e) {
// TODO: can we do something better here?
throw new RuntimeException(e);
@@ -193,9 +194,9 @@
// Load a named class.
- private static Class<?> loadClass(String className)
+ private static Class<?> loadClass(String className, boolean initialize)
throws ClassNotFoundException, LinkageError {
- return Class.forName(className, true, ClassLoaderProvider
+ return Class.forName(className, initialize, ClassLoaderProvider
.getInstance().getClassLoader());
}
@@ -250,7 +251,7 @@
try {
validateValue(value);
} catch (IllegalPropertyValueException e) {
- throw new IllegalPropertyValueStringException(this, value);
+ throw new IllegalPropertyValueStringException(this, value, e.getCause());
}
return value;
@@ -297,7 +298,7 @@
// Make sure that the named class is valid.
validateClassName(className);
- Class<?> theClass = validateClassInterfaces(className);
+ Class<?> theClass = validateClassInterfaces(className, true);
// Cast it to the required type.
return theClass.asSubclass(instanceOf);
@@ -334,7 +335,7 @@
* check the interfaces that it implements/extends.
*/
if (allowClassValidation) {
- validateClassInterfaces(value);
+ validateClassInterfaces(value, false);
}
}
@@ -344,31 +345,30 @@
* Make sure that named class implements the interfaces named by this
* definition.
*/
- private Class<?> validateClassInterfaces(String className)
+ private Class<?> validateClassInterfaces(String className, boolean initialize)
throws IllegalPropertyValueException {
String nvalue = className.trim();
Class<?> theClass;
try {
- theClass = loadClass(nvalue);
+ theClass = loadClass(nvalue, initialize);
} catch (Throwable t) {
// If the class cannot be loaded then it is an invalid value.
- throw new IllegalPropertyValueException(this, className);
+ throw new IllegalPropertyValueException(this, className, t);
}
for (String i : instanceOfInterfaces) {
try {
- Class<?> instanceOfClass = loadClass(i);
-
+ Class<?> instanceOfClass = loadClass(i, initialize);
if (!instanceOfClass.isAssignableFrom(theClass)) {
throw new IllegalPropertyValueException(this, className);
}
- } catch (Exception e) {
+ } catch (Throwable t) {
/*
* Should not happen because the class was validated when the property
* definition was constructed.
*/
- throw new IllegalPropertyValueException(this, className);
+ throw new IllegalPropertyValueException(this, className, t);
}
}
--
Gitblit v1.10.0