This fixes up the issues reported and flips enforcement to on.
Change-Id: I24d7722143253cc4c16cfac6f6d38976741ee6b2
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
<propertyExpansion>checkstyle.violationSeverity=error</propertyExpansion>
</configuration>
</plugin>
+ <plugin>
+ <groupId>com.github.spotbugs</groupId>
+ <artifactId>spotbugs-maven-plugin</artifactId>
+ <configuration>
+ <failOnError>true</failOnError>
+ </configuration>
+ </plugin>
</plugins>
</build>
<scm>
final StringBuilder builder = new StringBuilder();
boolean first = true;
- for (String p : DOT_SPLITTER.split(packageName.toLowerCase())) {
+ for (String p : DOT_SPLITTER.split(packageName.toLowerCase(Locale.ENGLISH))) {
if (first) {
first = false;
} else {
return str;
}
if (str.length() == 1) {
- return str.toUpperCase();
+ return str.toUpperCase(Locale.ENGLISH);
}
- return str.substring(0, 1).toUpperCase() + str.substring(1);
+ return str.substring(0, 1).toUpperCase(Locale.ENGLISH) + str.substring(1);
}
/**
return str;
}
if (str.length() == 1) {
- return str.toLowerCase();
+ return str.toLowerCase(Locale.ENGLISH);
}
- return str.substring(0, 1).toLowerCase() + str.substring(1);
+ return str.substring(0, 1).toLowerCase(Locale.ENGLISH) + str.substring(1);
}
/**
import java.lang.invoke.MethodHandles.Lookup;
import java.lang.invoke.MethodType;
import java.lang.reflect.Field;
+import java.security.AccessController;
+import java.security.PrivilegedActionException;
+import java.security.PrivilegedExceptionAction;
import java.util.Collections;
import java.util.Map;
import org.opendaylight.mdsal.binding.spec.naming.BindingMapping;
public AugmentationFieldGetter load(final Class<?> key) throws IllegalAccessException {
final Field field;
try {
- field = key.getDeclaredField(BindingMapping.AUGMENTATION_FIELD);
- field.setAccessible(true);
- } catch (NoSuchFieldException | SecurityException e) {
+ field = AccessController.doPrivileged((PrivilegedExceptionAction<Field>) () -> {
+ final Field f = key.getDeclaredField(BindingMapping.AUGMENTATION_FIELD);
+ f.setAccessible(true);
+ return f;
+ });
+ } catch (PrivilegedActionException e) {
LOG.warn("Failed to acquire augmentation field {}, ignoring augmentations in class {}",
BindingMapping.AUGMENTATION_FIELD, key, e);
return DUMMY;
import java.lang.reflect.Constructor;
import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException;
+import java.security.AccessController;
+import java.security.PrivilegedAction;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
}
final Field f = findValueField(clazz);
- f.setAccessible(true);
-
final StringValueObjectFactory<T> ret;
try {
ret = new StringValueObjectFactory<>(template,
private static Field findValueField(final Class<?> orig) {
NoSuchFieldException cause = null;
Class<?> clazz = orig;
- do {
+ while (clazz != null) {
+ final Field f;
try {
- return clazz.getDeclaredField("_value");
+ f = clazz.getDeclaredField("_value");
} catch (NoSuchFieldException e) {
if (cause != null) {
e.addSuppressed(cause);
}
cause = e;
+ clazz = clazz.getSuperclass();
+ continue;
}
- clazz = clazz.getSuperclass();
- } while (clazz != null);
+
+ return AccessController.doPrivileged((PrivilegedAction<Field>) () -> {
+ f.setAccessible(true);
+ return f;
+ });
+ }
throw new IllegalArgumentException(orig + " nor its superclasses define required internal field _value", cause);
}