Class: org.eclipse.core.runtime.adaptor.StreamManager (Application)
DoPrivileged location: Line# 42 void <clinit>( )
Permission: java.util.PropertyPermission "osgi.useReliableFiles", "read"
Primordial/java.lang.String java.lang.System.getProperty( java.lang.String )
CODE
/**
* This class manages streams for a FileManager.
*
* Clients may not extend this class.
*
* @since 3.1
*/
public class StreamManager {
/**
* Open mask. Obtain the best data stream available. If the primary data
* contents are invalid (corrupt, missing, etc.), the data for a prior
* version may be used.
* An IOException will be thrown if a valid data content can not be
* determined.
* This is mutually exclusive with OPEN_FAIL_ON_PRIMARY.
*/
public static final int OPEN_BEST_AVAILABLE = ReliableFile.OPEN_BEST_AVAILABLE;
/**
* Open mask. Obtain only the data stream for the primary file where any other
* version will not be valid. This should be used for data streams that are
* managed as a group as a prior contents may not match the other group data.
* If the primary data is not invalid, a IOException will be thrown.
* This is mutually exclusive with OPEN_BEST_AVAILABLE.
*/
public static final int OPEN_FAIL_ON_PRIMARY = ReliableFile.OPEN_FAIL_ON_PRIMARY;
private static boolean useReliableFilesDefault = Boolean.valueOf(System.getProperty("osgi.useReliableFiles")).booleanValue(); //$NON-NLS-1$ //$NON-NLS-2$
private FileManager manager;
private boolean useReliableFiles;
private static final int ST_OP ...
Tainted variable reference trace:
Permission Requirements:
OutputStream.
* If this output stream is part of a set, all other output streams in this set
* will also be closed and aborted.
* @param out the filemanager provided OutputStream.
* @see #getOutputStream(String)
* @see #getOutputStreamSet(String[])
*/
void abortOutputStream(StreamManagerOutputStream out) {
StreamManagerOutputStream[] set = out.getStreamSet();
if (set == null) {
set = new StreamManagerOutputStream[] {out};
}
synchronized (set) {
for (int idx = 0; idx < set.length; idx++) {
out = set[idx];
if (out.getOutputFile() == null) {
// this is a ReliableFileOutpuStream
ReliableFileOutputStream rfos = (ReliableFileOutputStream) out.getOutputStream();
rfos.abort();
} else {
// plain FileOutputStream();
if (out.getState() == ST_OPEN) {
try {
out.getOutputStream().close();
} catch (IOException e) {/*do nothing*/
}
}
out.getOutputFile().delete();
}
out.setState(ST_CLOSED);
}
}
}
InputStream for a filemanager managed file.
* null can be returned if the given target is not managed.
* The openMask modifies the behavior of obtaining the data stream
* and can be ORed together.
*
* @param target the base file name of the reliable file to open.
* a backup version is not acceptable.
* @param openMask mask used to open the input target.
* @return an InputStream from the managed target file or
* null if the given target is not managed.
* @throws IOException if the file is missing, corrupt or an error occurs.
* @see #OPEN_BEST_AVAILABLE
* @see #OPEN_FAIL_ON_PRIMARY
*/
public InputStream getInputStream(String target, int openMask) throws IOException {
if (useReliableFiles) {
int id = manager.getId(target);
return new ReliableFileInputStream(new File(manager.getBase(), target), id, openMask);
}
File lookup = manager.lookup(target, false);
if (lookup == null)
return null;
return new FileInputStream(lookup);
}
Tainted variable reference trace:
Permission Requirements:
- permission java.io.FilePermission "???file???", "read";
Conclusion:
DoPrivileged location: Line# 125 org.eclipse.core.runtime.adaptor.StreamManagerOutputStream getOutputStream( java.lang.String )
Permission: java.io.FilePermission "", "write"
Primordial/void java.io.FileOutputStream.FileOutputStream( java.io.File )
Permission: java.io.FilePermission "*", "write"
Primordial/void java.io.FileOutputStream.FileOutputStream( java.io.File )
Permission: java.io.FilePermission "-1", "write"
Primordial/void java.io.FileOutputStream.FileOutputStream( java.io.File )
Permission: java.io.FilePermission "-2", "write"
Primordial/void java.io.FileOutputStream.FileOutputStream( java.io.File )
Permission: java.io.FilePermission "-2147483648", "write"
Primordial/void java.io.FileOutputStream.FileOutputStream( java.io.File )
Permission: java.io.FilePermission "-3", "write"
Primordial/void java.io.FileOutputStream.FileOutputStream( java.io.File )
Permission: java.io.FilePermission "-9223372036854775808", "write"
Primordial/void java.io.FileOutputStream.FileOutputStream( java.io.File )
Permission: java.io.FilePermission ".", "write"
Primordial/void java.io.FileOutputStream.FileOutputStream( java.io.File )
Permission: java.io.FilePermission "..", "write"
Primordial/void java.io.FileOutputStream.FileOutputStream( java.io.File )
Permission: java.io.FilePermission ".bundledata", "write"
Primordial/void java.io.FileOutputStream.FileOutputStream( java.io.File )
Permission: java.io.FilePermission ".contributions", "write"
Primordial/void java.io.FileOutputStream.FileOutputStream( java.io.File )
Permission: java.io.FilePermission ".extraData", "write"
Primordial/void java.io.FileOutputStream.FileOutputStream( java.io.File )
Permission: java.io.FilePermission ".lazy", "write"
Primordial/void java.io.FileOutputStream.FileOutputStream( java.io.File )
Permission: java.io.FilePermission ".log", "write"
Primordial/void java.io.FileOutputStream.FileOutputStream( java.io.File )
Permission: java.io.FilePermission ".mainData", "write"
Primordial/void java.io.FileOutputStream.FileOutputStream( java.io.File )
Permission: java.io.FilePermission ".manager", "write"
Primordial/void java.io.FileOutputStream.FileOutputStream( java.io.File )
Permission: java.io.FilePermission ".metadata", "write"
Primordial/void java.io.FileOutputStream.FileOutputStream( java.io.File )
Permission: java.io.FilePermission ".orphans", "write"
Primordial/void java.io.FileOutputStream.FileOutputStream( java.io.File )
Permission: java.io.FilePermission ".plugins", "write"
Primordial/void java.io.FileOutputStream.FileOutputStream( java.io.File )
Permission: java.io.FilePermission ".settings", "write"
Primordial/void java.io.FileOutputStream.FileOutputStream( java.io.File )
Permission: java.io.FilePermission ".state", "write"
Primordial/void java.io.FileOutputStream.FileOutputStream( java.io.File )
Permission: java.io.FilePermission ".table", "write"
Primordial/void java.io.FileOutputStream.FileOutputStream( java.io.File )
Permission: java.io.FilePermission "/", "write"
Primordial/void java.io.FileOutputStream.FileOutputStream( java.io.File )
Permission: java.io.FilePermission "0", "write"
Primordial/void java.io.FileOutputStream.FileOutputStream( java.io.File )
Permission: java.io.FilePermission "1", "write"
Primordial/void java.io.FileOutputStream.FileOutputStream( java.io.File )
Permission: java.io.FilePermission "1.3", "write"
Primordial/void java.io.FileOutputStream.FileOutputStream( java.io.File )
Permission: java.io.FilePermission "10", "write"
Primordial/void java.io.FileOutputStream.FileOutputStream( java.io.File )
Permission: java.io.FilePermission "13", "write"
Primordial/void java.io.FileOutputStream.FileOutputStream( java.io.File )
Permission: java.io.FilePermission "2", "write"
Primordial/void java.io.FileOutputStream.FileOutputStream( java.io.File )
Permission: java.io.FilePermission "23", "write"
Primordial/void java.io.FileOutputStream.FileOutputStream( java.io.File )
Permission: java.io.FilePermission "3", "write"
Primordial/void java.io.FileOutputStream.FileOutputStream( java.io.File )
Permission: java.io.FilePermission "3.0.0", "write"
Primordial/void java.io.FileOutputStream.FileOutputStream( java.io.File )
Permission: java.io.FilePermission "4", "write"
Primordial/void java.io.FileOutputStream.FileOutputStream( java.io.File )
Permission: java.io.FilePermission "5", "write"
Primordial/void java.io.FileOutputStream.FileOutputStream( java.io.File )
Permission: java.io.FilePermission "6", "write"
Primordial/void java.io.FileOutputStream.FileOutputStream( java.io.File )
Permission: java.io.FilePermission "7", "write"
Primordial/void java.io.FileOutputStream.FileOutputStream( java.io.File )
Permission: java.io.FilePermission "8", "write"
Primordial/void java.io.FileOutputStream.FileOutputStream( java.io.File )
Permission: java.io.FilePermission "9", "write"
Primordial/void java.io.FileOutputStream.FileOutputStream( java.io.File )
Permission: java.io.FilePermission "???file???", "write"
Primordial/void java.io.FileOutputStream.FileOutputStream( java.io.File )
Permission: java.io.FilePermission "Eclipse", "write"
Primordial/void java.io.FileOutputStream.FileOutputStream( java.io.File )
Permission: java.io.FilePermission "META-INF/MANIFEST.MF", "write"
Primordial/void java.io.FileOutputStream.FileOutputStream( java.io.File )
Permission: java.io.FilePermission "No message available.", "write"
Primordial/void java.io.FileOutputStream.FileOutputStream( java.io.File )
Permission: java.io.FilePermission "aix", "write"
Primordial/void java.io.FileOutputStream.FileOutputStream( java.io.File )
Permission: java.io.FilePermission "bin", "write"
Primordial/void java.io.FileOutputStream.FileOutputStream( java.io.File )
Permission: java.io.FilePermission "bundles", "write"
Primordial/void java.io.FileOutputStream.FileOutputStream( java.io.File )
Permission: java.io.FilePermission "carbon", "write"
Primordial/void java.io.FileOutputStream.FileOutputStream( java.io.File )
Permission: java.io.FilePermission "charset", "write"
Primordial/void java.io.FileOutputStream.FileOutputStream( java.io.File )
Permission: java.io.FilePermission "false", "write"
Primordial/void java.io.FileOutputStream.FileOutputStream( java.io.File )
Permission: java.io.FilePermission "file-extensions", "write"
Primordial/void java.io.FileOutputStream.FileOutputStream( java.io.File )
Permission: java.io.FilePermission "file-names", "write"
Primordial/void java.io.FileOutputStream.FileOutputStream( java.io.File )
Permission: java.io.FilePermission "fragment.xml", "write"
Primordial/void java.io.FileOutputStream.FileOutputStream( java.io.File )
Permission: java.io.FilePermission "hpux", "write"
Primordial/void java.io.FileOutputStream.FileOutputStream( java.io.File )
Permission: java.io.FilePermission "instance", "write"
Primordial/void java.io.FileOutputStream.FileOutputStream( java.io.File )
Permission: java.io.FilePermission "linux", "write"
Primordial/void java.io.FileOutputStream.FileOutputStream( java.io.File )
Permission: java.io.FilePermission "macosx", "write"
Primordial/void java.io.FileOutputStream.FileOutputStream( java.io.File )
Permission: java.io.FilePermission "manifests", "write"
Primordial/void java.io.FileOutputStream.FileOutputStream( java.io.File )
Permission: java.io.FilePermission "motif", "write"
Primordial/void java.io.FileOutputStream.FileOutputStream( java.io.File )
Permission: java.io.FilePermission "org.eclipse.core.runtime", "write"
Primordial/void java.io.FileOutputStream.FileOutputStream( java.io.File )
Permission: java.io.FilePermission "org.eclipse.core.runtime.adaptor/resolver/timing/value", "write"
Primordial/void java.io.FileOutputStream.FileOutputStream( java.io.File )
Permission: java.io.FilePermission "org.eclipse.core.runtime/content-types", "write"
Primordial/void java.io.FileOutputStream.FileOutputStream( java.io.File )
Permission: java.io.FilePermission "org.eclipse.osgi", "write"
Primordial/void java.io.FileOutputStream.FileOutputStream( java.io.File )
Permission: java.io.FilePermission "org.eclipse.osgi/defaultprofile/buffersize", "write"
Primordial/void java.io.FileOutputStream.FileOutputStream( java.io.File )
Permission: java.io.FilePermission "org.eclipse.osgi/defaultprofile/logfilename", "write"
Primordial/void java.io.FileOutputStream.FileOutputStream( java.io.File )
Permission: java.io.FilePermission "org.eclipse.osgi/defaultprofile/logsynchronously", "write"
Primordial/void java.io.FileOutputStream.FileOutputStream( java.io.File )
Permission: java.io.FilePermission "org.eclipse.osgi/profile/benchmark", "write"
Primordial/void java.io.FileOutputStream.FileOutputStream( java.io.File )
Permission: java.io.FilePermission "org.eclipse.osgi/profile/debug", "write"
Primordial/void java.io.FileOutputStream.FileOutputStream( java.io.File )
Permission: java.io.FilePermission "org.eclipse.osgi/profile/impl", "write"
Primordial/void java.io.FileOutputStream.FileOutputStream( java.io.File )
Permission: java.io.FilePermission "org.eclipse.osgi/profile/startup", "write"
Primordial/void java.io.FileOutputStream.FileOutputStream( java.io.File )
Permission: java.io.FilePermission "performance.log", "write"
Primordial/void java.io.FileOutputStream.FileOutputStream( java.io.File )
Permission: java.io.FilePermission "photon", "write"
Primordial/void java.io.FileOutputStream.FileOutputStream( java.io.File )
Permission: java.io.FilePermission "plugin.xml", "write"
Primordial/void java.io.FileOutputStream.FileOutputStream( java.io.File )
Permission: java.io.FilePermission "plugin_customization.ini", "write"
Primordial/void java.io.FileOutputStream.FileOutputStream( java.io.File )
Permission: java.io.FilePermission "pref_store.ini", "write"
Primordial/void java.io.FileOutputStream.FileOutputStream( java.io.File )
Permission: java.io.FilePermission "preferences", "write"
Primordial/void java.io.FileOutputStream.FileOutputStream( java.io.File )
Permission: java.io.FilePermission "qnx", "write"
Primordial/void java.io.FileOutputStream.FileOutputStream( java.io.File )
Permission: java.io.FilePermission "solaris", "write"
Primordial/void java.io.FileOutputStream.FileOutputStream( java.io.File )
Permission: java.io.FilePermission "true", "write"
Primordial/void java.io.FileOutputStream.FileOutputStream( java.io.File )
Permission: java.io.FilePermission "unknown", "write"
Primordial/void java.io.FileOutputStream.FileOutputStream( java.io.File )
Permission: java.io.FilePermission "win32", "write"
Primordial/void java.io.FileOutputStream.FileOutputStream( java.io.File )
Permission: java.io.FilePermission "x86", "write"
Primordial/void java.io.FileOutputStream.FileOutputStream( java.io.File )
Permission: java.io.FilePermission "x86_64", "write"
Primordial/void java.io.FileOutputStream.FileOutputStream( java.io.File )
CODE
/**
* Returns an OutputStream for a filemanager managed file from a
* given base name. If enabled, the output stream will represent an OutputStream that
* will be validated before reading. Closing the ouput stream will update filemanager
* with the new target file.
*
* @param target the base file name of the file to write.
* @return OutputStream of a managed file with name of target.
* @throws IOException if an error occurs opening the file.
*/
public StreamManagerOutputStream getOutputStream(String target) throws IOException {
if (useReliableFiles) {
ReliableFileOutputStream out = new ReliableFileOutputStream(new File(manager.getBase(), target));
return new StreamManagerOutputStream(out, this, target, null, ST_OPEN);
}
File tmpFile = manager.createTempFile(target);
return new StreamManagerOutputStream(new FileOutputStream(tmpFile), this, target, tmpFile, ST_OPEN);
}
Tainted variable reference trace:
Permission Requirements:
- permission java.io.FilePermission "", "write";
- permission java.io.FilePermission "*", "write";
- permission java.io.FilePermission "-1", "write";
- permission java.io.FilePermission "-2", "write";
- permission java.io.FilePermission "-2147483648", "write";
- permission java.io.FilePermission "-3", "write";
- permission java.io.FilePermission "-9223372036854775808", "write";
- permission java.io.FilePermission ".", "write";
- permission java.io.FilePermission "..", "write";
- permission java.io.FilePermission ".bundledata", "write";
- permission java.io.FilePermission ".contributions", "write";
- permission java.io.FilePermission ".extraData", "write";
- permission java.io.FilePermission ".lazy", "write";
- permission java.io.FilePermission ".log", "write";
- permission java.io.FilePermission ".mainData", "write";
- permission java.io.FilePermission ".manager", "write";
- permission java.io.FilePermission ".metadata", "write";
- permission java.io.FilePermission ".orphans", "write";
- permission java.io.FilePermission ".plugins", "write";
- permission java.io.FilePermission ".settings", "write";
- permission java.io.FilePermission ".state", "write";
- permission java.io.FilePermission ".table", "write";
- permission java.io.FilePermission "/", "write";
- permission java.io.FilePermission "0", "write";
- permission java.io.FilePermission "1", "write";
- permission java.io.FilePermission "1.3", "write";
- permission java.io.FilePermission "10", "write";
- permission java.io.FilePermission "13", "write";
- permission java.io.FilePermission "2", "write";
- permission java.io.FilePermission "23", "write";
- permission java.io.FilePermission "3", "write";
- permission java.io.FilePermission "3.0.0", "write";
- permission java.io.FilePermission "4", "write";
- permission java.io.FilePermission "5", "write";
- permission java.io.FilePermission "6", "write";
- permission java.io.FilePermission "7", "write";
- permission java.io.FilePermission "8", "write";
- permission java.io.FilePermission "9", "write";
- permission java.io.FilePermission "???file???", "write";
- permission java.io.FilePermission "Eclipse", "write";
- permission java.io.FilePermission "META-INF/MANIFEST.MF", "write";
- permission java.io.FilePermission "No message available.", "write";
- permission java.io.FilePermission "aix", "write";
- permission java.io.FilePermission "bin", "write";
- permission java.io.FilePermission "bundles", "write";
- permission java.io.FilePermission "carbon", "write";
- permission java.io.FilePermission "charset", "write";
- permission java.io.FilePermission "false", "write";
- permission java.io.FilePermission "file-extensions", "write";
- permission java.io.FilePermission "file-names", "write";
- permission java.io.FilePermission "fragment.xml", "write";
- permission java.io.FilePermission "hpux", "write";
- permission java.io.FilePermission "instance", "write";
- permission java.io.FilePermission "linux", "write";
- permission java.io.FilePermission "macosx", "write";
- permission java.io.FilePermission "manifests", "write";
- permission java.io.FilePermission "motif", "write";
- permission java.io.FilePermission "org.eclipse.core.runtime", "write";
- permission java.io.FilePermission "org.eclipse.core.runtime.adaptor/resolver/timing/value", "write";
- permission java.io.FilePermission "org.eclipse.core.runtime/content-types", "write";
- permission java.io.FilePermission "org.eclipse.osgi", "write";
- permission java.io.FilePermission "org.eclipse.osgi/defaultprofile/buffersize", "write";
- permission java.io.FilePermission "org.eclipse.osgi/defaultprofile/logfilename", "write";
- permission java.io.FilePermission "org.eclipse.osgi/defaultprofile/logsynchronously", "write";
- permission java.io.FilePermission "org.eclipse.osgi/profile/benchmark", "write";
- permission java.io.FilePermission "org.eclipse.osgi/profile/debug", "write";
- permission java.io.FilePermission "org.eclipse.osgi/profile/impl", "write";
- permission java.io.FilePermission "org.eclipse.osgi/profile/startup", "write";
- permission java.io.FilePermission "performance.log", "write";
- permission java.io.FilePermission "photon", "write";
- permission java.io.FilePermission "plugin.xml", "write";
- permission java.io.FilePermission "plugin_customization.ini", "write";
- permission java.io.FilePermission "pref_store.ini", "write";
- permission java.io.FilePermission "preferences", "write";
- permission java.io.FilePermission "qnx", "write";
- permission java.io.FilePermission "solaris", "write";
- permission java.io.FilePermission "true", "write";
- permission java.io.FilePermission "unknown", "write";
- permission java.io.FilePermission "win32", "write";
- permission java.io.FilePermission "x86", "write";
- permission java.io.FilePermission "x86_64", "write";
Conclusion: