6
6
*/
7
7
package org .hibernate .validator .internal .metadata .aggregated ;
8
8
9
- import java .lang .reflect .Method ;
10
9
import java .lang .reflect .Type ;
11
- import java .security .AccessController ;
12
- import java .security .PrivilegedAction ;
13
10
import java .util .ArrayDeque ;
14
11
import java .util .Collections ;
15
12
import java .util .Deque ;
23
20
24
21
import javax .validation .ElementKind ;
25
22
26
- import org .hibernate .validator .HibernateValidatorPermission ;
27
23
import org .hibernate .validator .internal .engine .valueextraction .ValueExtractorManager ;
28
24
import org .hibernate .validator .internal .metadata .core .ConstraintHelper ;
29
25
import org .hibernate .validator .internal .metadata .core .MetaConstraint ;
38
34
import org .hibernate .validator .internal .metadata .raw .ConstrainedExecutable ;
39
35
import org .hibernate .validator .internal .metadata .raw .ConstrainedProperty ;
40
36
import org .hibernate .validator .internal .metadata .raw .ConstrainedType ;
41
- import org .hibernate .validator .internal .properties .Callable ;
42
- import org .hibernate .validator .internal .properties .Constrainable ;
43
37
import org .hibernate .validator .internal .properties .Property ;
44
38
import org .hibernate .validator .internal .util .CollectionHelper ;
45
39
import org .hibernate .validator .internal .util .TypeResolutionHelper ;
46
- import org .hibernate .validator .internal .util .privilegedactions .GetDeclaredMethod ;
47
40
import org .hibernate .validator .internal .util .stereotypes .Immutable ;
48
41
49
42
/**
@@ -71,8 +64,7 @@ private PropertyMetaData(String propertyName,
71
64
Type type ,
72
65
Set <MetaConstraint <?>> constraints ,
73
66
Set <MetaConstraint <?>> containerElementsConstraints ,
74
- Set <Cascadable > cascadables ,
75
- boolean cascadingProperty ) {
67
+ Set <Cascadable > cascadables ) {
76
68
super (
77
69
propertyName ,
78
70
type ,
@@ -157,9 +149,8 @@ public static class Builder extends MetaDataBuilder {
157
149
);
158
150
159
151
private final String propertyName ;
160
- private final Map <Constrainable , Cascadable .Builder > cascadableBuilders = new HashMap <>();
152
+ private final Map <Property , Cascadable .Builder > cascadableBuilders = new HashMap <>();
161
153
private final Type propertyType ;
162
- private boolean cascadingProperty = false ;
163
154
164
155
public Builder (Class <?> beanClass , ConstrainedProperty constrainedProperty , ConstraintHelper constraintHelper , TypeResolutionHelper typeResolutionHelper ,
165
156
ValueExtractorManager valueExtractorManager ) {
@@ -206,8 +197,6 @@ public boolean accepts(ConstrainedElement constrainedElement) {
206
197
public final void add (ConstrainedElement constrainedElement ) {
207
198
super .add ( constrainedElement );
208
199
209
- cascadingProperty = cascadingProperty || constrainedElement .getCascadingMetaDataBuilder ().isCascading ();
210
-
211
200
if ( constrainedElement .getCascadingMetaDataBuilder ().isMarkedForCascadingOnAnnotatedObjectOrContainerElements () ||
212
201
constrainedElement .getCascadingMetaDataBuilder ().hasGroupConversionsOnAnnotatedObjectOrContainerElements () ) {
213
202
if ( constrainedElement .getKind () == ConstrainedElementKind .PROPERTY ) {
@@ -223,12 +212,12 @@ public final void add(ConstrainedElement constrainedElement) {
223
212
}
224
213
}
225
214
else if ( constrainedElement .getKind () == ConstrainedElementKind .METHOD ) {
226
- Callable method = ( (ConstrainedExecutable ) constrainedElement ).getCallable ();
227
- Cascadable .Builder builder = cascadableBuilders .get ( method );
215
+ Property property = ( (ConstrainedExecutable ) constrainedElement ).getCallable (). as ( Property . class );
216
+ Cascadable .Builder builder = cascadableBuilders .get ( property );
228
217
229
218
if ( builder == null ) {
230
- builder = new PropertyCascadable .Builder ( valueExtractorManager , method . as ( Property . class ) , constrainedElement .getCascadingMetaDataBuilder () );
231
- cascadableBuilders .put ( method , builder );
219
+ builder = new PropertyCascadable .Builder ( valueExtractorManager , property , constrainedElement .getCascadingMetaDataBuilder () );
220
+ cascadableBuilders .put ( property , builder );
232
221
}
233
222
else {
234
223
builder .mergeCascadingMetaData ( constrainedElement .getCascadingMetaDataBuilder () );
@@ -315,29 +304,6 @@ else if ( constrainedElement.getKind() == ConstrainedElementKind.METHOD ) {
315
304
return null ;
316
305
}
317
306
318
- /**
319
- * Returns an accessible version of the given member. Will be the given member itself in case it is accessible,
320
- * otherwise a copy which is set accessible.
321
- */
322
- private Method getAccessible (Method original ) {
323
- if ( original .isAccessible () ) {
324
- return original ;
325
- }
326
-
327
- SecurityManager sm = System .getSecurityManager ();
328
- if ( sm != null ) {
329
- sm .checkPermission ( HibernateValidatorPermission .ACCESS_PRIVATE_MEMBERS );
330
- }
331
-
332
- Class <?> clazz = original .getDeclaringClass ();
333
-
334
- return run ( GetDeclaredMethod .andMakeAccessible ( clazz , original .getName () ) );
335
- }
336
-
337
- private <T > T run (PrivilegedAction <T > action ) {
338
- return System .getSecurityManager () != null ? AccessController .doPrivileged ( action ) : action .run ();
339
- }
340
-
341
307
@ Override
342
308
public PropertyMetaData build () {
343
309
Set <Cascadable > cascadables = cascadableBuilders .values ()
@@ -350,8 +316,7 @@ public PropertyMetaData build() {
350
316
propertyType ,
351
317
adaptOriginsAndImplicitGroups ( getDirectConstraints () ),
352
318
adaptOriginsAndImplicitGroups ( getContainerElementConstraints () ),
353
- cascadables ,
354
- cascadingProperty
319
+ cascadables
355
320
);
356
321
}
357
322
}
0 commit comments