DATACMNS-733 - Made all references to DefaultParameterNameDiscoverer non-static.
To prevent classes from being garbage collected due to Class<?> references within DefaultParameterNameDiscoverer we no keep all ParameterNameDiscoverer instances in a non-static field.
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2011-2014 by the original author(s).
|
||||
* Copyright 2011-2015 by the original author(s).
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -35,7 +35,7 @@ import org.springframework.data.util.TypeInformation;
|
||||
*/
|
||||
public class PreferredConstructorDiscoverer<T, P extends PersistentProperty<P>> {
|
||||
|
||||
private static final ParameterNameDiscoverer PARAMETER_DISCOVERER = new DefaultParameterNameDiscoverer();
|
||||
private final ParameterNameDiscoverer discoverer = new DefaultParameterNameDiscoverer();
|
||||
|
||||
private PreferredConstructor<T, P> constructor;
|
||||
|
||||
@@ -106,7 +106,7 @@ public class PreferredConstructorDiscoverer<T, P extends PersistentProperty<P>>
|
||||
return new PreferredConstructor<T, P>((Constructor<T>) constructor);
|
||||
}
|
||||
|
||||
String[] parameterNames = PARAMETER_DISCOVERER.getParameterNames(constructor);
|
||||
String[] parameterNames = discoverer.getParameterNames(constructor);
|
||||
|
||||
Parameter<Object, P>[] parameters = new Parameter[parameterTypes.size()];
|
||||
Annotation[][] parameterAnnotations = constructor.getParameterAnnotations();
|
||||
|
||||
@@ -46,7 +46,7 @@ public abstract class Parameters<S extends Parameters<S, T>, T extends Parameter
|
||||
+ "on all parameters except %s and %s typed once, or none at all!", Param.class.getSimpleName(),
|
||||
Pageable.class.getSimpleName(), Sort.class.getSimpleName());
|
||||
|
||||
private final ParameterNameDiscoverer PARAMETER_DISCOVERER = new DefaultParameterNameDiscoverer();
|
||||
private final ParameterNameDiscoverer discoverer = new DefaultParameterNameDiscoverer();
|
||||
private final int pageableIndex;
|
||||
private final int sortIndex;
|
||||
private final List<T> parameters;
|
||||
@@ -54,7 +54,7 @@ public abstract class Parameters<S extends Parameters<S, T>, T extends Parameter
|
||||
/**
|
||||
* Creates a new instance of {@link Parameters}.
|
||||
*
|
||||
* @param method
|
||||
* @param method must not be {@literal null}.
|
||||
*/
|
||||
public Parameters(Method method) {
|
||||
|
||||
@@ -67,7 +67,7 @@ public abstract class Parameters<S extends Parameters<S, T>, T extends Parameter
|
||||
for (int i = 0; i < types.size(); i++) {
|
||||
|
||||
MethodParameter methodParameter = new MethodParameter(method, i);
|
||||
methodParameter.initParameterNameDiscovery(PARAMETER_DISCOVERER);
|
||||
methodParameter.initParameterNameDiscovery(discoverer);
|
||||
|
||||
T parameter = createParameter(methodParameter);
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2012-2014 the original author or authors.
|
||||
* Copyright 2012-2015 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -33,8 +33,7 @@ import org.springframework.util.Assert;
|
||||
*/
|
||||
class MethodParameters {
|
||||
|
||||
private static final ParameterNameDiscoverer DISCOVERER = new DefaultParameterNameDiscoverer();
|
||||
|
||||
private final ParameterNameDiscoverer discoverer = new DefaultParameterNameDiscoverer();
|
||||
private final List<MethodParameter> parameters;
|
||||
|
||||
/**
|
||||
@@ -61,7 +60,7 @@ class MethodParameters {
|
||||
for (int i = 0; i < method.getParameterTypes().length; i++) {
|
||||
|
||||
MethodParameter parameter = new AnnotationNamingMethodParameter(method, i, namingAnnotation);
|
||||
parameter.initParameterNameDiscovery(DISCOVERER);
|
||||
parameter.initParameterNameDiscovery(discoverer);
|
||||
parameters.add(parameter);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user