unify doPrivHelpers

git-svn-id: https://svn.apache.org/repos/asf/openjpa/trunk@713493 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Michael Dick 2008-11-12 20:19:40 +00:00
parent ef910bb684
commit 1ae20fc277
7 changed files with 100 additions and 134 deletions

View File

@ -1,95 +0,0 @@
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you 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
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* 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.
*/
package org.apache.openjpa.lib.util;
import java.lang.annotation.Annotation;
import java.lang.reflect.AnnotatedElement;
import java.security.PrivilegedAction;
/**
* Helper class to obtain the Privilege(Exception)Action object to perform
* Java 2 doPrivilege security sensitive function call in the following
* methods:
* <ul>
* <li>AnnotatedElement.getAnnotations
* <li>AnnotatedElement.getDeclaredAnnotations
* <li>AnnotatedElement.isAnnotationPresent
* </ul>
*
* @author Albert Lee
*/
public abstract class J2DoPriv5Helper extends J2DoPrivHelper {
/**
* Return a PrivilegeAction object for AnnotatedElement.getAnnotations().
*
* Requires security policy:
* 'permission java.lang.RuntimePermission "accessDeclaredMembers";'
*
* @return Annotation[]
*/
public static final PrivilegedAction<Annotation []> getAnnotationsAction(
final AnnotatedElement element) {
return new PrivilegedAction<Annotation []>() {
public Annotation [] run() {
return element.getAnnotations();
}
};
}
/**
* Return a PrivilegeAction object for
* AnnotatedElement.getDeclaredAnnotations().
*
* Requires security policy:
* 'permission java.lang.RuntimePermission "accessDeclaredMembers";'
*
* @return Annotation[]
*/
public static final PrivilegedAction<Annotation []>
getDeclaredAnnotationsAction(
final AnnotatedElement element) {
return new PrivilegedAction<Annotation[]>() {
public Annotation [] run() {
return element.getDeclaredAnnotations();
}
};
}
/**
* Return a PrivilegeAction object for
* AnnotatedElement.isAnnotationPresent().
*
* Requires security policy:
* 'permission java.lang.RuntimePermission "accessDeclaredMembers";'
*
* @return Boolean
*/
public static final PrivilegedAction<Boolean> isAnnotationPresentAction(
final AnnotatedElement element,
final Class<? extends Annotation> annotationClazz) {
return new PrivilegedAction<Boolean>() {
public Boolean run() {
return element.isAnnotationPresent(annotationClazz)
? Boolean.TRUE : Boolean.FALSE;
}
};
}
}

View File

@ -24,7 +24,9 @@ import java.io.FileNotFoundException;
import java.io.FileOutputStream; import java.io.FileOutputStream;
import java.io.IOException; import java.io.IOException;
import java.io.InputStream; import java.io.InputStream;
import java.lang.annotation.Annotation;
import java.lang.reflect.AccessibleObject; import java.lang.reflect.AccessibleObject;
import java.lang.reflect.AnnotatedElement;
import java.lang.reflect.Field; import java.lang.reflect.Field;
import java.lang.reflect.Method; import java.lang.reflect.Method;
import java.net.InetAddress; import java.net.InetAddress;
@ -98,6 +100,9 @@ import serp.bytecode.Project;
* <li>serp.bytecode.BCClass.getFields * <li>serp.bytecode.BCClass.getFields
* <li>serp.bytecode.FieldInstruction.getField * <li>serp.bytecode.FieldInstruction.getField
* <li>serp.bytecode.Project.loadClass * <li>serp.bytecode.Project.loadClass
* <li>AnnotatedElement.getAnnotations
* <li>AnnotatedElement.getDeclaredAnnotations
* <li>AnnotatedElement.isAnnotationPresent
* </ul> * </ul>
* *
* If these methods are used, the following sample usage patterns should be * If these methods are used, the following sample usage patterns should be
@ -1047,4 +1052,60 @@ public abstract class J2DoPrivHelper {
} }
}; };
} }
/**
* Return a PrivilegeAction object for AnnotatedElement.getAnnotations().
*
* Requires security policy:
* 'permission java.lang.RuntimePermission "accessDeclaredMembers";'
*
* @return Annotation[]
*/
public static final PrivilegedAction<Annotation []> getAnnotationsAction(
final AnnotatedElement element) {
return new PrivilegedAction<Annotation []>() {
public Annotation [] run() {
return element.getAnnotations();
}
};
}
/**
* Return a PrivilegeAction object for
* AnnotatedElement.getDeclaredAnnotations().
*
* Requires security policy:
* 'permission java.lang.RuntimePermission "accessDeclaredMembers";'
*
* @return Annotation[]
*/
public static final PrivilegedAction<Annotation []>
getDeclaredAnnotationsAction(
final AnnotatedElement element) {
return new PrivilegedAction<Annotation[]>() {
public Annotation [] run() {
return element.getDeclaredAnnotations();
}
};
}
/**
* Return a PrivilegeAction object for
* AnnotatedElement.isAnnotationPresent().
*
* Requires security policy:
* 'permission java.lang.RuntimePermission "accessDeclaredMembers";'
*
* @return Boolean
*/
public static final PrivilegedAction<Boolean> isAnnotationPresentAction(
final AnnotatedElement element,
final Class<? extends Annotation> annotationClazz) {
return new PrivilegedAction<Boolean>() {
public Boolean run() {
return element.isAnnotationPresent(annotationClazz)
? Boolean.TRUE : Boolean.FALSE;
}
};
}
} }

View File

@ -77,7 +77,7 @@ import org.apache.openjpa.jdbc.schema.Schemas;
import org.apache.openjpa.jdbc.schema.Unique; import org.apache.openjpa.jdbc.schema.Unique;
import org.apache.openjpa.jdbc.sql.DBDictionary; import org.apache.openjpa.jdbc.sql.DBDictionary;
import org.apache.openjpa.lib.log.Log; import org.apache.openjpa.lib.log.Log;
import org.apache.openjpa.lib.util.J2DoPriv5Helper; import org.apache.openjpa.lib.util.J2DoPrivHelper;
import org.apache.openjpa.lib.util.Localizer; import org.apache.openjpa.lib.util.Localizer;
import org.apache.openjpa.meta.ClassMetaData; import org.apache.openjpa.meta.ClassMetaData;
import org.apache.openjpa.meta.FieldMetaData; import org.apache.openjpa.meta.FieldMetaData;
@ -1308,7 +1308,7 @@ public class AnnotationPersistenceMappingParser
if (xmlTypeClass != null if (xmlTypeClass != null
&& StringUtils.isEmpty(pcols[i].columnDefinition()) && StringUtils.isEmpty(pcols[i].columnDefinition())
&& (AccessController.doPrivileged(J2DoPriv5Helper && (AccessController.doPrivileged(J2DoPrivHelper
.isAnnotationPresentAction(fm.getDeclaredType(), .isAnnotationPresentAction(fm.getDeclaredType(),
xmlTypeClass))).booleanValue()) { xmlTypeClass))).booleanValue()) {
DBDictionary dict = ((MappingRepository) getRepository()) DBDictionary dict = ((MappingRepository) getRepository())

View File

@ -87,7 +87,7 @@ import org.apache.openjpa.kernel.QueryLanguages;
import org.apache.openjpa.kernel.jpql.JPQLParser; import org.apache.openjpa.kernel.jpql.JPQLParser;
import org.apache.openjpa.lib.conf.Configurations; import org.apache.openjpa.lib.conf.Configurations;
import org.apache.openjpa.lib.log.Log; import org.apache.openjpa.lib.log.Log;
import org.apache.openjpa.lib.util.J2DoPriv5Helper; import org.apache.openjpa.lib.util.J2DoPrivHelper;
import org.apache.openjpa.lib.util.Localizer; import org.apache.openjpa.lib.util.Localizer;
import org.apache.openjpa.meta.ClassMetaData; import org.apache.openjpa.meta.ClassMetaData;
import org.apache.openjpa.meta.DelegatingMetaDataFactory; import org.apache.openjpa.meta.DelegatingMetaDataFactory;
@ -467,12 +467,12 @@ public class AnnotationPersistenceMetaDataParser
// check immediately whether the user is using any annotations, // check immediately whether the user is using any annotations,
// regardless of mode. this prevents adding non-entity classes to // regardless of mode. this prevents adding non-entity classes to
// repository if we're ignoring these annotations in mapping mode // repository if we're ignoring these annotations in mapping mode
if (!(AccessController.doPrivileged(J2DoPriv5Helper if (!(AccessController.doPrivileged(J2DoPrivHelper
.isAnnotationPresentAction(_cls, Entity.class))).booleanValue() .isAnnotationPresentAction(_cls, Entity.class))).booleanValue()
&& !(AccessController.doPrivileged(J2DoPriv5Helper && !(AccessController.doPrivileged(J2DoPrivHelper
.isAnnotationPresentAction(_cls, Embeddable.class))) .isAnnotationPresentAction(_cls, Embeddable.class)))
.booleanValue() .booleanValue()
&& !(AccessController.doPrivileged(J2DoPriv5Helper && !(AccessController.doPrivileged(J2DoPrivHelper
.isAnnotationPresentAction(_cls, MappedSuperclass.class))) .isAnnotationPresentAction(_cls, MappedSuperclass.class)))
.booleanValue()) .booleanValue())
return null; return null;
@ -679,17 +679,17 @@ public class AnnotationPersistenceMetaDataParser
String rsrc = StringUtils.replace(cls.getName(), ".", "/"); String rsrc = StringUtils.replace(cls.getName(), ".", "/");
ClassLoader loader = AccessController.doPrivileged( ClassLoader loader = AccessController.doPrivileged(
J2DoPriv5Helper.getClassLoaderAction(cls)); J2DoPrivHelper.getClassLoaderAction(cls));
if (loader == null) if (loader == null)
loader = AccessController.doPrivileged( loader = AccessController.doPrivileged(
J2DoPriv5Helper.getSystemClassLoaderAction()); J2DoPrivHelper.getSystemClassLoaderAction());
if (loader == null) if (loader == null)
return null; return null;
URL url = AccessController.doPrivileged( URL url = AccessController.doPrivileged(
J2DoPriv5Helper.getResourceAction(loader, rsrc + ".java")); J2DoPrivHelper.getResourceAction(loader, rsrc + ".java"));
if (url == null) { if (url == null) {
url = AccessController.doPrivileged( url = AccessController.doPrivileged(
J2DoPriv5Helper.getResourceAction(loader, rsrc + ".class")); J2DoPrivHelper.getResourceAction(loader, rsrc + ".class"));
if (url == null) if (url == null)
return null; return null;
} }
@ -779,10 +779,10 @@ public class AnnotationPersistenceMetaDataParser
meta.setDetachedState(detached.fieldName()); meta.setDetachedState(detached.fieldName());
} else { } else {
Field[] fields = (Field[]) AccessController.doPrivileged( Field[] fields = (Field[]) AccessController.doPrivileged(
J2DoPriv5Helper.getDeclaredFieldsAction( J2DoPrivHelper.getDeclaredFieldsAction(
meta.getDescribedType())); meta.getDescribedType()));
for (int i = 0; i < fields.length; i++) for (int i = 0; i < fields.length; i++)
if ((AccessController.doPrivileged(J2DoPriv5Helper if ((AccessController.doPrivileged(J2DoPrivHelper
.isAnnotationPresentAction(fields[i], DetachedState.class))) .isAnnotationPresentAction(fields[i], DetachedState.class)))
.booleanValue()) .booleanValue())
meta.setDetachedState(fields[i].getName()); meta.setDetachedState(fields[i].getName());
@ -827,7 +827,7 @@ public class AnnotationPersistenceMetaDataParser
Set<MethodKey> seen = new HashSet<MethodKey>(); Set<MethodKey> seen = new HashSet<MethodKey>();
do { do {
for (Method m : (Method[]) AccessController.doPrivileged( for (Method m : (Method[]) AccessController.doPrivileged(
J2DoPriv5Helper.getDeclaredMethodsAction(sup))) { J2DoPrivHelper.getDeclaredMethodsAction(sup))) {
mods = m.getModifiers(); mods = m.getModifiers();
if (Modifier.isStatic(mods) || Modifier.isFinal(mods) || if (Modifier.isStatic(mods) || Modifier.isFinal(mods) ||
Object.class.equals(m.getDeclaringClass())) Object.class.equals(m.getDeclaringClass()))
@ -845,7 +845,7 @@ public class AnnotationPersistenceMetaDataParser
MetaDataDefaults def = repos.getMetaDataFactory().getDefaults(); MetaDataDefaults def = repos.getMetaDataFactory().getDefaults();
for (Method m : methods) { for (Method m : methods) {
for (Annotation anno : (Annotation[]) AccessController for (Annotation anno : (Annotation[]) AccessController
.doPrivileged(J2DoPriv5Helper .doPrivileged(J2DoPrivHelper
.getDeclaredAnnotationsAction(m))) { .getDeclaredAnnotationsAction(m))) {
MetaDataTag tag = _tags.get(anno.annotationType()); MetaDataTag tag = _tags.get(anno.annotationType());
if (tag == null) if (tag == null)
@ -984,7 +984,7 @@ public class AnnotationPersistenceMetaDataParser
fmd.setExplicit(true); fmd.setExplicit(true);
AnnotatedElement el = (AnnotatedElement) member; AnnotatedElement el = (AnnotatedElement) member;
boolean lob = (AccessController.doPrivileged(J2DoPriv5Helper boolean lob = (AccessController.doPrivileged(J2DoPrivHelper
.isAnnotationPresentAction(el, Lob.class))).booleanValue(); .isAnnotationPresentAction(el, Lob.class))).booleanValue();
if (isMetaDataMode()) { if (isMetaDataMode()) {
switch (pstrat) { switch (pstrat) {

View File

@ -27,7 +27,7 @@ import java.security.AccessController;
import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.StringUtils;
import org.apache.openjpa.conf.OpenJPAConfiguration; import org.apache.openjpa.conf.OpenJPAConfiguration;
import org.apache.openjpa.lib.log.Log; import org.apache.openjpa.lib.log.Log;
import org.apache.openjpa.lib.util.J2DoPriv5Helper; import org.apache.openjpa.lib.util.J2DoPrivHelper;
import org.apache.openjpa.lib.util.Localizer; import org.apache.openjpa.lib.util.Localizer;
import org.apache.openjpa.meta.DelegatingMetaDataFactory; import org.apache.openjpa.meta.DelegatingMetaDataFactory;
import org.apache.openjpa.meta.FieldMetaData; import org.apache.openjpa.meta.FieldMetaData;
@ -173,10 +173,10 @@ public class AnnotationPersistenceXMLMetaDataParser {
private XMLMetaData parseXMLClassAnnotations() { private XMLMetaData parseXMLClassAnnotations() {
// check immediately whether the class has JAXB XML annotations // check immediately whether the class has JAXB XML annotations
if (_cls == null || xmlTypeClass == null if (_cls == null || xmlTypeClass == null
|| !((AccessController.doPrivileged(J2DoPriv5Helper || !((AccessController.doPrivileged(J2DoPrivHelper
.isAnnotationPresentAction(_cls, xmlTypeClass))).booleanValue() .isAnnotationPresentAction(_cls, xmlTypeClass))).booleanValue()
&& (AccessController && (AccessController
.doPrivileged(J2DoPriv5Helper.isAnnotationPresentAction(_cls, .doPrivileged(J2DoPrivHelper.isAnnotationPresentAction(_cls,
xmlRootElementClass))).booleanValue())) xmlRootElementClass))).booleanValue()))
return null; return null;
@ -225,7 +225,7 @@ public class AnnotationPersistenceXMLMetaDataParser {
Class superclass = cls.getSuperclass(); Class superclass = cls.getSuperclass();
// handle inheritance at sub-element level // handle inheritance at sub-element level
if ((AccessController.doPrivileged(J2DoPriv5Helper if ((AccessController.doPrivileged(J2DoPrivHelper
.isAnnotationPresentAction(superclass, xmlTypeClass))) .isAnnotationPresentAction(superclass, xmlTypeClass)))
.booleanValue()) .booleanValue())
populateFromReflection(superclass, meta); populateFromReflection(superclass, meta);
@ -247,7 +247,7 @@ public class AnnotationPersistenceXMLMetaDataParser {
// avoid JAXB XML bind default name // avoid JAXB XML bind default name
if (StringUtils.equals(XMLMetaData.defaultName, xmlname)) if (StringUtils.equals(XMLMetaData.defaultName, xmlname))
xmlname = member.getName(); xmlname = member.getName();
if ((AccessController.doPrivileged(J2DoPriv5Helper if ((AccessController.doPrivileged(J2DoPrivHelper
.isAnnotationPresentAction(((Field) member).getType(), .isAnnotationPresentAction(((Field) member).getType(),
xmlTypeClass))).booleanValue()) { xmlTypeClass))).booleanValue()) {
field = _repos.addXMLMetaData(((Field) member).getType() field = _repos.addXMLMetaData(((Field) member).getType()

View File

@ -50,7 +50,7 @@ import javax.persistence.PreUpdate;
import javax.persistence.Transient; import javax.persistence.Transient;
import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.StringUtils;
import org.apache.openjpa.lib.util.J2DoPriv5Helper; import org.apache.openjpa.lib.util.J2DoPrivHelper;
import org.apache.openjpa.lib.util.Localizer; import org.apache.openjpa.lib.util.Localizer;
import org.apache.openjpa.lib.log.Log; import org.apache.openjpa.lib.log.Log;
import org.apache.openjpa.meta.AbstractMetaDataDefaults; import org.apache.openjpa.meta.AbstractMetaDataDefaults;
@ -118,7 +118,7 @@ public class PersistenceMetaDataDefaults
if (member == null) if (member == null)
return null; return null;
AnnotatedElement el = (AnnotatedElement) member; AnnotatedElement el = (AnnotatedElement) member;
if ((AccessController.doPrivileged(J2DoPriv5Helper if ((AccessController.doPrivileged(J2DoPrivHelper
.isAnnotationPresentAction(el, Transient.class))).booleanValue()) .isAnnotationPresentAction(el, Transient.class))).booleanValue())
return TRANSIENT; return TRANSIENT;
if (fmd != null if (fmd != null
@ -185,7 +185,7 @@ public class PersistenceMetaDataDefaults
} }
//### EJB3: what if defined in XML? //### EJB3: what if defined in XML?
if ((AccessController.doPrivileged(J2DoPriv5Helper if ((AccessController.doPrivileged(J2DoPrivHelper
.isAnnotationPresentAction(type, Embeddable.class))).booleanValue()) .isAnnotationPresentAction(type, Embeddable.class))).booleanValue())
return EMBEDDED; return EMBEDDED;
if (Serializable.class.isAssignableFrom(type)) if (Serializable.class.isAssignableFrom(type))
@ -260,10 +260,10 @@ public class PersistenceMetaDataDefaults
int access = 0; int access = 0;
if (annotated((Field[]) AccessController.doPrivileged( if (annotated((Field[]) AccessController.doPrivileged(
J2DoPriv5Helper.getDeclaredFieldsAction(cls))).size() > 0) J2DoPrivHelper.getDeclaredFieldsAction(cls))).size() > 0)
access |= ClassMetaData.ACCESS_FIELD; access |= ClassMetaData.ACCESS_FIELD;
if (annotated((Method[]) AccessController.doPrivileged( if (annotated((Method[]) AccessController.doPrivileged(
J2DoPriv5Helper.getDeclaredMethodsAction(cls))).size() > 0 J2DoPrivHelper.getDeclaredMethodsAction(cls))).size() > 0
|| cls.isInterface()) // OpenJPA managed ifaces must use prop access || cls.isInterface()) // OpenJPA managed ifaces must use prop access
access |= ClassMetaData.ACCESS_PROPERTY; access |= ClassMetaData.ACCESS_PROPERTY;
return getAccessType(cls.getSuperclass()) | access; return getAccessType(cls.getSuperclass()) | access;
@ -272,13 +272,13 @@ public class PersistenceMetaDataDefaults
@Override @Override
protected List getFieldAccessNames(ClassMetaData meta) { protected List getFieldAccessNames(ClassMetaData meta) {
return annotated((Field[]) AccessController.doPrivileged( return annotated((Field[]) AccessController.doPrivileged(
J2DoPriv5Helper.getDeclaredFieldsAction(meta.getDescribedType()))); J2DoPrivHelper.getDeclaredFieldsAction(meta.getDescribedType())));
} }
@Override @Override
protected List getPropertyAccessNames(ClassMetaData meta) { protected List getPropertyAccessNames(ClassMetaData meta) {
return annotated((Method[]) AccessController.doPrivileged( return annotated((Method[]) AccessController.doPrivileged(
J2DoPriv5Helper.getDeclaredMethodsAction(meta.getDescribedType()))); J2DoPrivHelper.getDeclaredMethodsAction(meta.getDescribedType())));
} }
/** /**
@ -290,7 +290,7 @@ public class PersistenceMetaDataDefaults
String name; String name;
List annotated = new ArrayList(members.length); List annotated = new ArrayList(members.length);
for (int i = 0; i < members.length; i++) { for (int i = 0; i < members.length; i++) {
annos = (Annotation[]) AccessController.doPrivileged(J2DoPriv5Helper annos = (Annotation[]) AccessController.doPrivileged(J2DoPrivHelper
.getAnnotationsAction(members[i])); .getAnnotationsAction(members[i]));
for (int j = 0; j < annos.length; j++) { for (int j = 0; j < annos.length; j++) {
name = annos[j].annotationType().getName(); name = annos[j].annotationType().getName();
@ -313,7 +313,7 @@ public class PersistenceMetaDataDefaults
try { try {
// check for setters for methods // check for setters for methods
Method setter = AccessController.doPrivileged( Method setter = AccessController.doPrivileged(
J2DoPriv5Helper.getDeclaredMethodAction( J2DoPrivHelper.getDeclaredMethodAction(
meta.getDescribedType(), "set" + meta.getDescribedType(), "set" +
StringUtils.capitalize(name), new Class[] { StringUtils.capitalize(name), new Class[] {
((Method) member).getReturnType() })); ((Method) member).getReturnType() }));
@ -337,7 +337,7 @@ public class PersistenceMetaDataDefaults
private boolean isAnnotatedTransient(Member member) { private boolean isAnnotatedTransient(Member member) {
return member instanceof AnnotatedElement return member instanceof AnnotatedElement
&& (AccessController.doPrivileged(J2DoPriv5Helper && (AccessController.doPrivileged(J2DoPrivHelper
.isAnnotationPresentAction(((AnnotatedElement) member), .isAnnotationPresentAction(((AnnotatedElement) member),
Transient.class))).booleanValue(); Transient.class))).booleanValue();
} }

View File

@ -46,7 +46,7 @@ import org.apache.openjpa.lib.meta.ClassAnnotationMetaDataFilter;
import org.apache.openjpa.lib.meta.ClassArgParser; import org.apache.openjpa.lib.meta.ClassArgParser;
import org.apache.openjpa.lib.meta.MetaDataFilter; import org.apache.openjpa.lib.meta.MetaDataFilter;
import org.apache.openjpa.lib.meta.MetaDataParser; import org.apache.openjpa.lib.meta.MetaDataParser;
import org.apache.openjpa.lib.util.J2DoPriv5Helper; import org.apache.openjpa.lib.util.J2DoPrivHelper;
import org.apache.openjpa.lib.util.Localizer; import org.apache.openjpa.lib.util.Localizer;
import org.apache.openjpa.lib.util.Options; import org.apache.openjpa.lib.util.Options;
import org.apache.openjpa.meta.AbstractCFMetaDataFactory; import org.apache.openjpa.meta.AbstractCFMetaDataFactory;
@ -293,24 +293,24 @@ public class PersistenceMetaDataFactory
return null; return null;
Collection classes = repos.loadPersistentTypes(false, loader); Collection classes = repos.loadPersistentTypes(false, loader);
for (Class cls : (Collection<Class>) classes) { for (Class cls : (Collection<Class>) classes) {
if ((AccessController.doPrivileged(J2DoPriv5Helper if ((AccessController.doPrivileged(J2DoPrivHelper
.isAnnotationPresentAction(cls, NamedQuery.class))) .isAnnotationPresentAction(cls, NamedQuery.class)))
.booleanValue() && hasNamedQuery .booleanValue() && hasNamedQuery
(queryName, (NamedQuery) cls.getAnnotation(NamedQuery.class))) (queryName, (NamedQuery) cls.getAnnotation(NamedQuery.class)))
return cls; return cls;
if ((AccessController.doPrivileged(J2DoPriv5Helper if ((AccessController.doPrivileged(J2DoPrivHelper
.isAnnotationPresentAction(cls, NamedQueries.class))) .isAnnotationPresentAction(cls, NamedQueries.class)))
.booleanValue() && .booleanValue() &&
hasNamedQuery(queryName, ((NamedQueries) cls. hasNamedQuery(queryName, ((NamedQueries) cls.
getAnnotation(NamedQueries.class)).value())) getAnnotation(NamedQueries.class)).value()))
return cls; return cls;
if ((AccessController.doPrivileged(J2DoPriv5Helper if ((AccessController.doPrivileged(J2DoPrivHelper
.isAnnotationPresentAction(cls, NamedNativeQuery.class))) .isAnnotationPresentAction(cls, NamedNativeQuery.class)))
.booleanValue() && .booleanValue() &&
hasNamedNativeQuery(queryName, (NamedNativeQuery) cls. hasNamedNativeQuery(queryName, (NamedNativeQuery) cls.
getAnnotation(NamedNativeQuery.class))) getAnnotation(NamedNativeQuery.class)))
return cls; return cls;
if ((AccessController.doPrivileged(J2DoPriv5Helper if ((AccessController.doPrivileged(J2DoPrivHelper
.isAnnotationPresentAction(cls, NamedNativeQueries.class))) .isAnnotationPresentAction(cls, NamedNativeQueries.class)))
.booleanValue() && .booleanValue() &&
hasNamedNativeQuery(queryName, ((NamedNativeQueries) cls. hasNamedNativeQuery(queryName, ((NamedNativeQueries) cls.
@ -329,14 +329,14 @@ public class PersistenceMetaDataFactory
Collection classes = repos.loadPersistentTypes(false, loader); Collection classes = repos.loadPersistentTypes(false, loader);
for (Class cls : (Collection<Class>) classes) { for (Class cls : (Collection<Class>) classes) {
if ((AccessController.doPrivileged(J2DoPriv5Helper if ((AccessController.doPrivileged(J2DoPrivHelper
.isAnnotationPresentAction(cls, SqlResultSetMapping.class))) .isAnnotationPresentAction(cls, SqlResultSetMapping.class)))
.booleanValue() && .booleanValue() &&
hasRSMapping(rsMappingName, (SqlResultSetMapping) cls. hasRSMapping(rsMappingName, (SqlResultSetMapping) cls.
getAnnotation(SqlResultSetMapping.class))) getAnnotation(SqlResultSetMapping.class)))
return cls; return cls;
if ((AccessController.doPrivileged(J2DoPriv5Helper if ((AccessController.doPrivileged(J2DoPrivHelper
.isAnnotationPresentAction(cls, SqlResultSetMappings.class))) .isAnnotationPresentAction(cls, SqlResultSetMappings.class)))
.booleanValue() && .booleanValue() &&
hasRSMapping(rsMappingName, ((SqlResultSetMappings) cls. hasRSMapping(rsMappingName, ((SqlResultSetMappings) cls.
@ -458,11 +458,11 @@ public class PersistenceMetaDataFactory
ClassLoader loader = repos.getConfiguration(). ClassLoader loader = repos.getConfiguration().
getClassResolverInstance().getClassLoader(getClass(), null); getClassResolverInstance().getClassLoader(getClass(), null);
URL rsrc = AccessController.doPrivileged( URL rsrc = AccessController.doPrivileged(
J2DoPriv5Helper.getResourceAction(loader, "META-INF/orm.xml")); J2DoPrivHelper.getResourceAction(loader, "META-INF/orm.xml"));
if (rsrc != null) { if (rsrc != null) {
File file = new File(rsrc.getFile()); File file = new File(rsrc.getFile());
if ((AccessController.doPrivileged( if ((AccessController.doPrivileged(
J2DoPriv5Helper.existsAction(file))).booleanValue()) J2DoPrivHelper.existsAction(file))).booleanValue())
return file; return file;
} }
return new File("orm.xml"); return new File("orm.xml");