- /*
 - * Copyright 2002-2004 The Apache Software Foundation.
 - *
 - * Licensed 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.
 - */
 - /*
 - * $Id: SecuritySupport12.java,v 1.1.1.1 2004/02/26 11:39:47 vk112360 Exp $
 - */
 - package com.sun.org.apache.xml.internal.dtm;
 - import java.io.File;
 - import java.io.FileInputStream;
 - import java.io.FileNotFoundException;
 - import java.io.InputStream;
 - import java.security.AccessController;
 - import java.security.PrivilegedAction;
 - import java.security.PrivilegedActionException;
 - import java.security.PrivilegedExceptionAction;
 - import java.util.Properties;
 - /**
 - * This class is duplicated for each Xalan-Java subpackage so keep it in sync.
 - * It is package private and therefore is not exposed as part of the Xalan-Java
 - * API.
 - *
 - * Security related methods that only work on J2SE 1.2 and newer.
 - */
 - class SecuritySupport12 extends SecuritySupport {
 - ClassLoader getContextClassLoader() {
 - return (ClassLoader)
 - AccessController.doPrivileged(new PrivilegedAction() {
 - public Object run() {
 - ClassLoader cl = null;
 - try {
 - cl = Thread.currentThread().getContextClassLoader();
 - } catch (SecurityException ex) { }
 - return cl;
 - }
 - });
 - }
 - ClassLoader getSystemClassLoader() {
 - return (ClassLoader)
 - AccessController.doPrivileged(new PrivilegedAction() {
 - public Object run() {
 - ClassLoader cl = null;
 - try {
 - cl = ClassLoader.getSystemClassLoader();
 - } catch (SecurityException ex) {}
 - return cl;
 - }
 - });
 - }
 - ClassLoader getParentClassLoader(final ClassLoader cl) {
 - return (ClassLoader)
 - AccessController.doPrivileged(new PrivilegedAction() {
 - public Object run() {
 - ClassLoader parent = null;
 - try {
 - parent = cl.getParent();
 - } catch (SecurityException ex) {}
 - // eliminate loops in case of the boot
 - // ClassLoader returning itself as a parent
 - return (parent == cl) ? null : parent;
 - }
 - });
 - }
 - String getSystemProperty(final String propName) {
 - return (String)
 - AccessController.doPrivileged(new PrivilegedAction() {
 - public Object run() {
 - return System.getProperty(propName);
 - }
 - });
 - }
 - FileInputStream getFileInputStream(final File file)
 - throws FileNotFoundException
 - {
 - try {
 - return (FileInputStream)
 - AccessController.doPrivileged(new PrivilegedExceptionAction() {
 - public Object run() throws FileNotFoundException {
 - return new FileInputStream(file);
 - }
 - });
 - } catch (PrivilegedActionException e) {
 - throw (FileNotFoundException)e.getException();
 - }
 - }
 - InputStream getResourceAsStream(final ClassLoader cl,
 - final String name)
 - {
 - return (InputStream)
 - AccessController.doPrivileged(new PrivilegedAction() {
 - public Object run() {
 - InputStream ris;
 - if (cl == null) {
 - ris = ClassLoader.getSystemResourceAsStream(name);
 - } else {
 - ris = cl.getResourceAsStream(name);
 - }
 - return ris;
 - }
 - });
 - }
 - boolean getFileExists(final File f) {
 - return ((Boolean)
 - AccessController.doPrivileged(new PrivilegedAction() {
 - public Object run() {
 - return new Boolean(f.exists());
 - }
 - })).booleanValue();
 - }
 - long getLastModified(final File f) {
 - return ((Long)
 - AccessController.doPrivileged(new PrivilegedAction() {
 - public Object run() {
 - return new Long(f.lastModified());
 - }
 - })).longValue();
 - }
 - }