Author: tolusha
Date: 2010-11-23 04:20:29 -0500 (Tue, 23 Nov 2010)
New Revision: 3519
Modified:
jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/backup/BackupChainLog.java
jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/backup/RepositoryBackupChainLog.java
jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/backup/impl/BackupManagerImpl.java
jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/backup/impl/BackupScheduler.java
jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/backup/impl/IndexCleanHelper.java
jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/backup/impl/PendingChangesLog.java
jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/backup/impl/ValueStorageCleanHelper.java
jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/backup/impl/fs/FileNameProducer.java
jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/backup/impl/fs/FullBackupJob.java
jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/backup/impl/fs/IncrementalBackupJob.java
jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/backup/server/HTTPBackupAgent.java
jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/backup/server/bean/BackupConfigBean.java
jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/initializer/RemoteWorkspaceInitializationService.java
jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/initializer/RemoteWorkspaceInitializer.java
jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/initializer/impl/RemoteReceiver.java
jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/initializer/impl/RemoteTransmitter.java
jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/initializer/impl/RemoteTransportImpl.java
jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/replication/AbstractWorkspaceDataReceiver.java
jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/replication/ChangesFile.java
jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/replication/PendingBinaryFile.java
jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/replication/ReplicationChannelManager.java
jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/replication/ReplicationService.java
jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/replication/WorkspaceDataTransmitter.java
jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/replication/recovery/AbstractFSAccess.java
jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/replication/recovery/RecoveryReader.java
jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/replication/recovery/RecoverySynchronizer.java
jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/replication/recovery/RecoveryWriter.java
jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/replication/recovery/backup/BackupCreator.java
jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/replication/storage/RandomChangesFile.java
jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/replication/test/CopyMoveTestCase.java
jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/replication/test/NtFileTestCase.java
jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/replication/test/bandwidth/BandwidthAllocationTestCase.java
jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/replication/test/concurrent/ConcurrentModificationTestCase.java
Log:
EXOJCR-852: wrap file operation in privileged block
Modified:
jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/backup/BackupChainLog.java
===================================================================
---
jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/backup/BackupChainLog.java 2010-11-23
09:11:41 UTC (rev 3518)
+++
jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/backup/BackupChainLog.java 2010-11-23
09:20:29 UTC (rev 3519)
@@ -18,17 +18,20 @@
*/
package org.exoplatform.services.jcr.ext.backup;
+import org.exoplatform.commons.utils.PrivilegedFileHelper;
+import org.exoplatform.commons.utils.SecurityHelper;
import org.exoplatform.services.jcr.impl.util.JCRDateFormat;
import org.exoplatform.services.log.ExoLogger;
import org.exoplatform.services.log.Log;
import java.io.File;
-import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.net.MalformedURLException;
import java.net.URL;
+import java.security.PrivilegedActionException;
+import java.security.PrivilegedExceptionAction;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Collection;
@@ -101,8 +104,9 @@
try
{
this.finalized = false;
- this.log = new File(logDir.getCanonicalPath() + File.separator + (PREFIX +
backupId + SUFFIX));
- this.log.createNewFile();
+ this.log =
+ new File(PrivilegedFileHelper.getCanonicalPath(logDir) + File.separator +
(PREFIX + backupId + SUFFIX));
+ PrivilegedFileHelper.createNewFile(this.log);
this.backupId = backupId;
this.config = config;
this.jobEntries = new ArrayList<JobEntryInfo>();
@@ -284,7 +288,7 @@
*/
public String getLogFilePath()
{
- return log.getAbsolutePath();
+ return PrivilegedFileHelper.getAbsolutePath(log);
}
/**
@@ -328,7 +332,8 @@
this.logFile = logFile;
jobEntries = new ArrayList<JobEntryInfo>();
- reader = XMLInputFactory.newInstance().createXMLStreamReader(new
FileInputStream(this.logFile));
+ reader =
+
XMLInputFactory.newInstance().createXMLStreamReader(PrivilegedFileHelper.fileInputStream(this.logFile));
}
public BackupConfig getBackupConfig()
@@ -542,11 +547,44 @@
XMLStreamWriter writer;
- public LogWriter(File logFile) throws FileNotFoundException, XMLStreamException,
FactoryConfigurationError
+ public LogWriter(File file) throws FileNotFoundException, XMLStreamException,
FactoryConfigurationError
{
- this.logFile = logFile;
+ this.logFile = file;
- writer = XMLOutputFactory.newInstance().createXMLStreamWriter(new
FileOutputStream(this.logFile));
+ try
+ {
+ writer = SecurityHelper.doPriviledgedExceptionAction(new
PrivilegedExceptionAction<XMLStreamWriter>()
+ {
+ public XMLStreamWriter run() throws Exception
+ {
+ return XMLOutputFactory.newInstance().createXMLStreamWriter(new
FileOutputStream(logFile));
+ }
+ });
+ }
+ catch (PrivilegedActionException pae)
+ {
+ Throwable cause = pae.getCause();
+ if (cause instanceof FileNotFoundException)
+ {
+ throw (FileNotFoundException)cause;
+ }
+ else if (cause instanceof XMLStreamException)
+ {
+ throw (XMLStreamException)cause;
+ }
+ else if (cause instanceof FactoryConfigurationError)
+ {
+ throw (FactoryConfigurationError)cause;
+ }
+ else if (cause instanceof RuntimeException)
+ {
+ throw (RuntimeException)cause;
+ }
+ else
+ {
+ throw new RuntimeException(cause);
+ }
+ };
writer.writeStartDocument();
writer.writeStartElement("backup-cain-log");
@@ -569,7 +607,7 @@
if (config.getBackupDir() != null)
{
writer.writeStartElement("backup-dir");
- writer.writeCharacters(config.getBackupDir().getAbsolutePath());
+
writer.writeCharacters(PrivilegedFileHelper.getAbsolutePath(config.getBackupDir()));
writer.writeEndElement();
}
Modified:
jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/backup/RepositoryBackupChainLog.java
===================================================================
---
jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/backup/RepositoryBackupChainLog.java 2010-11-23
09:11:41 UTC (rev 3518)
+++
jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/backup/RepositoryBackupChainLog.java 2010-11-23
09:20:29 UTC (rev 3519)
@@ -16,13 +16,20 @@
*/
package org.exoplatform.services.jcr.ext.backup;
+import org.exoplatform.commons.utils.PrivilegedFileHelper;
+import org.exoplatform.commons.utils.SecurityHelper;
+import org.exoplatform.services.jcr.impl.util.JCRDateFormat;
+import org.exoplatform.services.log.ExoLogger;
+import org.exoplatform.services.log.Log;
+
import java.io.File;
-import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.net.MalformedURLException;
import java.net.URL;
+import java.security.PrivilegedActionException;
+import java.security.PrivilegedExceptionAction;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.List;
@@ -36,10 +43,6 @@
import javax.xml.stream.XMLStreamWriter;
import javax.xml.stream.events.StartElement;
-import org.exoplatform.services.jcr.impl.util.JCRDateFormat;
-import org.exoplatform.services.log.ExoLogger;
-import org.exoplatform.services.log.Log;
-
/**
* Created by The eXo Platform SAS.
*
@@ -59,11 +62,44 @@
XMLStreamWriter writer;
- public LogWriter(File logFile) throws FileNotFoundException, XMLStreamException,
FactoryConfigurationError
+ public LogWriter(File file) throws FileNotFoundException, XMLStreamException,
FactoryConfigurationError
{
- this.logFile = logFile;
+ this.logFile = file;
- writer = XMLOutputFactory.newInstance().createXMLStreamWriter(new
FileOutputStream(this.logFile));
+ try
+ {
+ writer = SecurityHelper.doPriviledgedExceptionAction(new
PrivilegedExceptionAction<XMLStreamWriter>()
+ {
+ public XMLStreamWriter run() throws Exception
+ {
+ return XMLOutputFactory.newInstance().createXMLStreamWriter(new
FileOutputStream(logFile));
+ }
+ });
+ }
+ catch (PrivilegedActionException pae)
+ {
+ Throwable cause = pae.getCause();
+ if (cause instanceof FileNotFoundException)
+ {
+ throw (FileNotFoundException)cause;
+ }
+ else if (cause instanceof XMLStreamException)
+ {
+ throw (XMLStreamException)cause;
+ }
+ else if (cause instanceof FactoryConfigurationError)
+ {
+ throw (FactoryConfigurationError)cause;
+ }
+ else if (cause instanceof RuntimeException)
+ {
+ throw (RuntimeException)cause;
+ }
+ else
+ {
+ throw new RuntimeException(cause);
+ }
+ };
writer.writeStartDocument();
writer.writeStartElement("repository-backup-chain-log");
@@ -118,7 +154,7 @@
if (config.getBackupDir() != null)
{
writer.writeStartElement("backup-dir");
- writer.writeCharacters(config.getBackupDir().getAbsolutePath());
+
writer.writeCharacters(PrivilegedFileHelper.getAbsolutePath(config.getBackupDir()));
writer.writeEndElement();
}
@@ -172,7 +208,7 @@
public LogReader(File logFile) throws FileNotFoundException, XMLStreamException,
FactoryConfigurationError
{
this.logFile = logFile;
- reader = XMLInputFactory.newInstance().createXMLStreamReader(new
FileInputStream(logFile));
+ reader =
XMLInputFactory.newInstance().createXMLStreamReader(PrivilegedFileHelper.fileInputStream(logFile));
}
public void readLogFile() throws XMLStreamException, MalformedURLException,
ValueFormatException
@@ -432,8 +468,10 @@
try
{
this.finalized = false;
- this.log = new File(logDirectory.getCanonicalPath() + File.separator + (PREFIX +
backupId + SUFFIX));
- this.log.createNewFile();
+ this.log =
+ new File(PrivilegedFileHelper.getCanonicalPath(logDirectory) +
File.separator
+ + (PREFIX + backupId + SUFFIX));
+ PrivilegedFileHelper.createNewFile(this.log);
this.backupId = backupId;
this.config = config;
this.startedTime = Calendar.getInstance();
@@ -479,27 +517,32 @@
catch (FileNotFoundException e)
{
throw new BackupOperationException(
- "Can not read RepositoryBackupChainLog from file :" +
log.getAbsolutePath(), e);
+"Can not read RepositoryBackupChainLog from file :"
+ + PrivilegedFileHelper.getAbsolutePath(log), e);
}
catch (XMLStreamException e)
{
throw new BackupOperationException(
- "Can not read RepositoryBackupChainLog from file :" +
log.getAbsolutePath(), e);
+"Can not read RepositoryBackupChainLog from file :"
+ + PrivilegedFileHelper.getAbsolutePath(log), e);
}
catch (FactoryConfigurationError e)
{
throw new BackupOperationException(
- "Can not read RepositoryBackupChainLog from file :" +
log.getAbsolutePath(), e);
+"Can not read RepositoryBackupChainLog from file :"
+ + PrivilegedFileHelper.getAbsolutePath(log), e);
}
catch (MalformedURLException e)
{
throw new BackupOperationException(
- "Can not read RepositoryBackupChainLog from file :" +
log.getAbsolutePath(), e);
+"Can not read RepositoryBackupChainLog from file :"
+ + PrivilegedFileHelper.getAbsolutePath(log), e);
}
catch (ValueFormatException e)
{
throw new BackupOperationException(
- "Can not read RepositoryBackupChainLog from file :" +
log.getAbsolutePath(), e);
+"Can not read RepositoryBackupChainLog from file :"
+ + PrivilegedFileHelper.getAbsolutePath(log), e);
}
}
@@ -511,7 +554,7 @@
*/
public String getLogFilePath()
{
- return log.getAbsolutePath();
+ return PrivilegedFileHelper.getAbsolutePath(log);
}
/**
Modified:
jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/backup/impl/BackupManagerImpl.java
===================================================================
---
jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/backup/impl/BackupManagerImpl.java 2010-11-23
09:11:41 UTC (rev 3518)
+++
jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/backup/impl/BackupManagerImpl.java 2010-11-23
09:20:29 UTC (rev 3519)
@@ -78,7 +78,6 @@
import java.io.EOFException;
import java.io.File;
import java.io.FileFilter;
-import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
@@ -497,7 +496,7 @@
*/
public BackupChainLog[] getBackupsLogs()
{
- File[] cfs = logsDirectory.listFiles(new BackupLogsFilter());
+ File[] cfs = PrivilegedFileHelper.listFiles(logsDirectory, new
BackupLogsFilter());
List<BackupChainLog> logs = new ArrayList<BackupChainLog>();
for (int i = 0; i < cfs.length; i++)
{
@@ -510,7 +509,8 @@
}
catch (BackupOperationException e)
{
- log.warn("Log file " + cf.getAbsolutePath() + " is bussy or
corrupted. Skipped. " + e, e);
+ log.warn("Log file " + PrivilegedFileHelper.getAbsolutePath(cf) +
" is bussy or corrupted. Skipped. " + e,
+ e);
}
}
BackupChainLog[] ls = new BackupChainLog[logs.size()];
@@ -523,7 +523,7 @@
*/
public RepositoryBackupChainLog[] getRepositoryBackupsLogs()
{
- File[] cfs = logsDirectory.listFiles(new RepositoryBackupLogsFilter());
+ File[] cfs = PrivilegedFileHelper.listFiles(logsDirectory, new
RepositoryBackupLogsFilter());
List<RepositoryBackupChainLog> logs = new
ArrayList<RepositoryBackupChainLog>();
for (int i = 0; i < cfs.length; i++)
{
@@ -536,7 +536,8 @@
}
catch (BackupOperationException e)
{
- log.warn("Log file " + cf.getAbsolutePath() + " is bussy or
corrupted. Skipped. " + e, e);
+ log.warn("Log file " + PrivilegedFileHelper.getAbsolutePath(cf) +
" is bussy or corrupted. Skipped. " + e,
+ e);
}
}
RepositoryBackupChainLog[] ls = new RepositoryBackupChainLog[logs.size()];
@@ -826,23 +827,23 @@
}
catch (BackupSchedulerException e)
{
- log.error("Can't restore backup scheduler task from file " +
task.getAbsolutePath(), e);
+ log.error("Can't restore backup scheduler task from file " +
PrivilegedFileHelper.getAbsolutePath(task), e);
}
catch (BackupOperationException e)
{
- log.error("Can't restore backup scheduler task from file " +
task.getAbsolutePath(), e);
+ log.error("Can't restore backup scheduler task from file " +
PrivilegedFileHelper.getAbsolutePath(task), e);
}
catch (BackupConfigurationException e)
{
- log.error("Can't restore backup scheduler task from file " +
task.getAbsolutePath(), e);
+ log.error("Can't restore backup scheduler task from file " +
PrivilegedFileHelper.getAbsolutePath(task), e);
}
catch (RepositoryException e)
{
- log.error("Can't restore backup scheduler task from file " +
task.getAbsolutePath(), e);
+ log.error("Can't restore backup scheduler task from file " +
PrivilegedFileHelper.getAbsolutePath(task), e);
}
catch (RepositoryConfigurationException e)
{
- log.error("Can't restore backup scheduler task from file " +
task.getAbsolutePath(), e);
+ log.error("Can't restore backup scheduler task from file " +
PrivilegedFileHelper.getAbsolutePath(task), e);
}
}
}
@@ -870,7 +871,7 @@
RepositoryImpl defRep = (RepositoryImpl)repoService.getRepository(repositoryName);
- defRep.importWorkspace(workspaceEntry.getName(), new
FileInputStream(pathBackupFile));
+ defRep.importWorkspace(workspaceEntry.getName(),
PrivilegedFileHelper.fileInputStream(pathBackupFile));
}
private void fullRestoreOverInitializer(String pathBackupFile, String repositoryName,
WorkspaceEntry workspaceEntry)
@@ -915,7 +916,7 @@
try
{
backupFile = new File(pathBackupFile);
- ois = new ObjectInputStream(new FileInputStream(backupFile));
+ ois = new ObjectInputStream(PrivilegedFileHelper.fileInputStream(backupFile));
while (true)
{
@@ -1085,7 +1086,7 @@
byte[] buf = new byte[bufferSize];
File tempFile = SpoolFile.createTempFile("" + System.currentTimeMillis(),
".stmp", tempDir);
- FileOutputStream fos = new FileOutputStream(tempFile);
+ FileOutputStream fos = PrivilegedFileHelper.fileOutputStream(tempFile);
long readBytes = fileSize;
while (readBytes > 0)
@@ -1557,7 +1558,7 @@
File dir =
new File(config.getBackupDir() + File.separator + "repository_" +
config.getRepository() + "_backup_"
+ System.currentTimeMillis());
- dir.mkdir();
+ PrivilegedFileHelper.mkdirs(dir);
config.setBackupDir(dir);
RepositoryBackupChain repositoryBackupChain =
Modified:
jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/backup/impl/BackupScheduler.java
===================================================================
---
jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/backup/impl/BackupScheduler.java 2010-11-23
09:11:41 UTC (rev 3518)
+++
jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/backup/impl/BackupScheduler.java 2010-11-23
09:20:29 UTC (rev 3519)
@@ -18,6 +18,8 @@
*/
package org.exoplatform.services.jcr.ext.backup.impl;
+import org.exoplatform.commons.utils.PrivilegedFileHelper;
+import org.exoplatform.commons.utils.SecurityHelper;
import org.exoplatform.services.jcr.config.RepositoryConfigurationException;
import org.exoplatform.services.jcr.ext.backup.BackupChain;
import org.exoplatform.services.jcr.ext.backup.BackupConfig;
@@ -36,6 +38,8 @@
import java.io.IOException;
import java.lang.ref.WeakReference;
import java.net.MalformedURLException;
+import java.security.PrivilegedActionException;
+import java.security.PrivilegedExceptionAction;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
@@ -192,7 +196,7 @@
}
}
- if (_backupLog.exists())
+ if (PrivilegedFileHelper.exists(_backupLog))
{
// this.backupLog = _backupLog;
this.startTime = _startTime;
@@ -202,23 +206,24 @@
}
else
throw new BackupSchedulerException(
- "Scheduler task skipped due to the error. Backup log file not
exists " + _backupLog.getAbsolutePath()
- + ". Task file " + taskFile.getAbsolutePath());
+ "Scheduler task skipped due to the error. Backup log file not
exists "
+ + PrivilegedFileHelper.getAbsolutePath(_backupLog) + ". Task
file "
+ + PrivilegedFileHelper.getAbsolutePath(taskFile));
}
else
throw new BackupSchedulerException("Scheduler task skipped due to bad
configured task file "
- + taskFile.getAbsolutePath() + ". File doesn't contains
configuration line.");
+ + PrivilegedFileHelper.getAbsolutePath(taskFile) + ". File
doesn't contains configuration line.");
}
@Deprecated
File save_old(File taskFile) throws IOException
{
- // File taskFile = new File(backupLog.getAbsolutePath() + ".task");
- if (!taskFile.exists())
+ // File taskFile = new File(PrivilegedFileHelper.getAbsolutePath(backupLog) +
".task");
+ if (!PrivilegedFileHelper.exists(taskFile))
{
FileWriter fw = new FileWriter(taskFile);
fw.append("LogPath,StartTime,StopTime,ChainPeriod,IncrPeriod\n");
- fw.append(taskFile.getAbsolutePath() + "," +
datef.format(startTime) + ","
+ fw.append(PrivilegedFileHelper.getAbsolutePath(taskFile) + "," +
datef.format(startTime) + ","
+ (stopTime != null ? datef.format(stopTime) : "null") +
"," + chainPeriod + "," + incrPeriod);
fw.close();
return taskFile;
@@ -236,11 +241,45 @@
final XMLStreamWriter writer;
- TaskConfigWriter(File logFile) throws FileNotFoundException, XMLStreamException,
FactoryConfigurationError
+ TaskConfigWriter(final File logFile) throws FileNotFoundException,
XMLStreamException,
+ FactoryConfigurationError
{
- this.logFile = new FileOutputStream(logFile);
+ this.logFile = PrivilegedFileHelper.fileOutputStream(logFile);
- writer = XMLOutputFactory.newInstance().createXMLStreamWriter(this.logFile);
+ try
+ {
+ writer = SecurityHelper.doPriviledgedExceptionAction(new
PrivilegedExceptionAction<XMLStreamWriter>()
+ {
+ public XMLStreamWriter run() throws Exception
+ {
+ return XMLOutputFactory.newInstance().createXMLStreamWriter(new
FileOutputStream(logFile));
+ }
+ });
+ }
+ catch (PrivilegedActionException pae)
+ {
+ Throwable cause = pae.getCause();
+ if (cause instanceof FileNotFoundException)
+ {
+ throw (FileNotFoundException)cause;
+ }
+ else if (cause instanceof XMLStreamException)
+ {
+ throw (XMLStreamException)cause;
+ }
+ else if (cause instanceof FactoryConfigurationError)
+ {
+ throw (FactoryConfigurationError)cause;
+ }
+ else if (cause instanceof RuntimeException)
+ {
+ throw (RuntimeException)cause;
+ }
+ else
+ {
+ throw new RuntimeException(cause);
+ }
+ };
writer.writeStartDocument();
writer.writeStartElement("backup-task-config");
@@ -262,7 +301,7 @@
if (config.getBackupDir() != null)
{
writer.writeStartElement("backup-dir");
- writer.writeCharacters(config.getBackupDir().getAbsolutePath());
+
writer.writeCharacters(PrivilegedFileHelper.getAbsolutePath(config.getBackupDir()));
writer.writeEndElement();
}
@@ -345,7 +384,7 @@
TaskConfigReader(File logFile) throws FileNotFoundException, XMLStreamException,
FactoryConfigurationError
{
- this.logFile = new FileInputStream(logFile);
+ this.logFile = PrivilegedFileHelper.fileInputStream(logFile);
this.reader =
XMLInputFactory.newInstance().createXMLStreamReader(this.logFile);
}
@@ -671,13 +710,13 @@
{
// remove task file config
File taskFile =
- new File(backup.getLogsDirectory().getAbsolutePath() + File.separator +
config.getRepository() + "-"
- + config.getWorkspace() + ".task");
- if (taskFile.exists())
+ new File(PrivilegedFileHelper.getAbsolutePath(backup.getLogsDirectory()) +
File.separator
+ + config.getRepository() + "-" + config.getWorkspace() +
".task");
+ if (PrivilegedFileHelper.exists(taskFile))
{
- taskFile.delete();
+ PrivilegedFileHelper.delete(taskFile);
if (log.isDebugEnabled())
- log.debug("Remove scheduler task " +
taskFile.getAbsolutePath());
+ log.debug("Remove scheduler task " +
PrivilegedFileHelper.getAbsolutePath(taskFile));
}
}
@@ -821,6 +860,7 @@
{
Runtime.getRuntime().addShutdownHook(new Thread()
{
+ @Override
public void run()
{
timer.cancel();
@@ -876,19 +916,23 @@
}
catch (IOException e)
{
- throw new BackupSchedulerException("Can't restore scheduler from task
file " + taskFile.getAbsolutePath(), e);
+ throw new BackupSchedulerException("Can't restore scheduler from task
file "
+ + PrivilegedFileHelper.getAbsolutePath(taskFile), e);
}
catch (ParseException e)
{
- throw new BackupSchedulerException("Can't restore scheduler from task
file " + taskFile.getAbsolutePath(), e);
+ throw new BackupSchedulerException("Can't restore scheduler from task
file "
+ + PrivilegedFileHelper.getAbsolutePath(taskFile), e);
}
catch (XMLStreamException e)
{
- throw new BackupSchedulerException("Can't restore scheduler from task
file " + taskFile.getAbsolutePath(), e);
+ throw new BackupSchedulerException("Can't restore scheduler from task
file "
+ + PrivilegedFileHelper.getAbsolutePath(taskFile), e);
}
catch (FactoryConfigurationError e)
{
- throw new BackupSchedulerException("Can't restore scheduler from task
file " + taskFile.getAbsolutePath(), e);
+ throw new BackupSchedulerException("Can't restore scheduler from task
file "
+ + PrivilegedFileHelper.getAbsolutePath(taskFile), e);
}
}
@@ -1019,13 +1063,16 @@
TaskConfig tc = new TaskConfig(config, startTime, stopTime, chainPeriod,
incrementalPeriod);
try
{
- // backup.getLogsDirectory().getAbsolutePath()
+ // PrivilegedFileHelper.getAbsolutePath(backup.getLogsDirectory())
File taskFile =
- new File(backup.getLogsDirectory().getAbsolutePath() + File.separator +
config.getRepository() + "-"
- + config.getWorkspace() + ".task");
- if (taskFile.exists())
+ new File(PrivilegedFileHelper.getAbsolutePath(backup.getLogsDirectory()) +
File.separator
+ + config.getRepository() + "-" + config.getWorkspace() +
".task");
+
+ if (PrivilegedFileHelper.exists(taskFile))
+ {
throw new BackupSchedulerException("Task for repository '" +
config.getRepository() + "' workspace '"
- + config.getWorkspace() + "' already exists. File " +
taskFile.getAbsolutePath());
+ + config.getWorkspace() + "' already exists. File " +
PrivilegedFileHelper.getAbsolutePath(taskFile));
+ }
tc.save(taskFile); // save task config
}
catch (IOException e)
Modified:
jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/backup/impl/IndexCleanHelper.java
===================================================================
---
jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/backup/impl/IndexCleanHelper.java 2010-11-23
09:11:41 UTC (rev 3518)
+++
jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/backup/impl/IndexCleanHelper.java 2010-11-23
09:20:29 UTC (rev 3519)
@@ -16,6 +16,7 @@
*/
package org.exoplatform.services.jcr.ext.backup.impl;
+import org.exoplatform.commons.utils.PrivilegedFileHelper;
import org.exoplatform.services.jcr.config.QueryHandlerParams;
import org.exoplatform.services.jcr.config.RepositoryConfigurationException;
import org.exoplatform.services.jcr.config.WorkspaceEntry;
@@ -60,23 +61,23 @@
*/
private void removeFolder(File dir) throws IOException
{
- if (dir.isDirectory())
+ if (PrivilegedFileHelper.isDirectory(dir))
{
- for (File subFile : dir.listFiles())
+ for (File subFile : PrivilegedFileHelper.listFiles(dir))
{
removeFolder(subFile);
}
- if (!dir.delete())
+ if (!PrivilegedFileHelper.delete(dir))
{
- throw new IOException("Index folder was not deleted : " +
dir.getCanonicalPath());
+ throw new IOException("Index folder was not deleted : " +
PrivilegedFileHelper.getCanonicalPath(dir));
}
}
else
{
- if (!dir.delete())
+ if (!PrivilegedFileHelper.delete(dir))
{
- throw new IOException("Index file was not deleted : " +
dir.getCanonicalPath());
+ throw new IOException("Index file was not deleted : " +
PrivilegedFileHelper.getCanonicalPath(dir));
}
}
}
Modified:
jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/backup/impl/PendingChangesLog.java
===================================================================
---
jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/backup/impl/PendingChangesLog.java 2010-11-23
09:11:41 UTC (rev 3518)
+++
jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/backup/impl/PendingChangesLog.java 2010-11-23
09:20:29 UTC (rev 3519)
@@ -18,6 +18,7 @@
*/
package org.exoplatform.services.jcr.ext.backup.impl;
+import org.exoplatform.commons.utils.PrivilegedFileHelper;
import org.exoplatform.commons.utils.PrivilegedSystemHelper;
import org.exoplatform.services.jcr.dataflow.ItemState;
import org.exoplatform.services.jcr.dataflow.TransactionChangesLog;
@@ -470,7 +471,7 @@
File f = SpoolFile.createTempFile("tempFile" + IdGenerator.generate(),
".tmp", tempDir);
this.getListFile().add(f);
- this.getListRandomAccessFiles().add(new RandomAccessFile(f, "rw"));
+ this.getListRandomAccessFiles().add(PrivilegedFileHelper.randomAccessFile(f,
"rw"));
}
@@ -494,8 +495,10 @@
ValueData vd =
(propertyData.getValues().get(listFixupStream.get(i).getValueDataId()));
// re-init the value
- propertyData.getValues().set(listFixupStream.get(i).getValueDataId(),
- new StreamPersistedValueData(vd.getOrderNumber(), new
SpoolFile(listFile.get(i).getAbsolutePath())));
+ propertyData.getValues().set(
+ listFixupStream.get(i).getValueDataId(),
+ new StreamPersistedValueData(vd.getOrderNumber(), new
SpoolFile(PrivilegedFileHelper
+ .getAbsolutePath(listFile.get(i)))));
}
if (listRandomAccessFile != null)
Modified:
jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/backup/impl/ValueStorageCleanHelper.java
===================================================================
---
jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/backup/impl/ValueStorageCleanHelper.java 2010-11-23
09:11:41 UTC (rev 3518)
+++
jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/backup/impl/ValueStorageCleanHelper.java 2010-11-23
09:20:29 UTC (rev 3519)
@@ -16,6 +16,7 @@
*/
package org.exoplatform.services.jcr.ext.backup.impl;
+import org.exoplatform.commons.utils.PrivilegedFileHelper;
import org.exoplatform.services.jcr.config.ContainerEntry;
import org.exoplatform.services.jcr.config.RepositoryConfigurationException;
import org.exoplatform.services.jcr.config.ValueStorageEntry;
@@ -64,23 +65,24 @@
*/
private void removeFolder(File dir) throws IOException
{
- if (dir.isDirectory())
+ if (PrivilegedFileHelper.isDirectory(dir))
{
- for (File subFile : dir.listFiles())
+ for (File subFile : PrivilegedFileHelper.listFiles(dir))
{
removeFolder(subFile);
}
- if (!dir.delete())
+ if (!PrivilegedFileHelper.delete(dir))
{
- throw new IOException("Value storage folder was not deleted : " +
dir.getCanonicalPath());
+ throw new IOException("Value storage folder was not deleted : "
+ + PrivilegedFileHelper.getCanonicalPath(dir));
}
}
else
{
- if (!dir.delete())
+ if (!PrivilegedFileHelper.delete(dir))
{
- throw new IOException("Value storage file was not deleted : " +
dir.getCanonicalPath());
+ throw new IOException("Value storage file was not deleted : " +
PrivilegedFileHelper.getCanonicalPath(dir));
}
}
}
Modified:
jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/backup/impl/fs/FileNameProducer.java
===================================================================
---
jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/backup/impl/fs/FileNameProducer.java 2010-11-23
09:11:41 UTC (rev 3518)
+++
jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/backup/impl/fs/FileNameProducer.java 2010-11-23
09:20:29 UTC (rev 3519)
@@ -18,6 +18,8 @@
*/
package org.exoplatform.services.jcr.ext.backup.impl.fs;
+import org.exoplatform.commons.utils.PrivilegedFileHelper;
+
import java.io.File;
import java.io.IOException;
import java.util.Calendar;
@@ -67,13 +69,15 @@
backupSetDir = new File(serviceDir + File.separator + backupSetName + sTime);
- if (!backupSetDir.exists())
- backupSetDir.mkdirs();
+ if (!PrivilegedFileHelper.exists(backupSetDir))
+ {
+ PrivilegedFileHelper.mkdirs(backupSetDir);
+ }
String sNextName = generateName();
nextFile = new File(backupSetDir.getAbsoluteFile() + File.separator +
sNextName);
- nextFile.createNewFile();
+ PrivilegedFileHelper.createNewFile(nextFile);
}
catch (IOException e)
{
@@ -104,7 +108,7 @@
private String getNextSufix()
{
- String[] fileList = backupSetDir.list();
+ String[] fileList = PrivilegedFileHelper.list(backupSetDir);
int sufix = 0;
Modified:
jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/backup/impl/fs/FullBackupJob.java
===================================================================
---
jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/backup/impl/fs/FullBackupJob.java 2010-11-23
09:11:41 UTC (rev 3518)
+++
jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/backup/impl/fs/FullBackupJob.java 2010-11-23
09:20:29 UTC (rev 3519)
@@ -18,6 +18,7 @@
*/
package org.exoplatform.services.jcr.ext.backup.impl.fs;
+import org.exoplatform.commons.utils.PrivilegedFileHelper;
import org.exoplatform.services.jcr.core.ManageableRepository;
import org.exoplatform.services.jcr.ext.backup.BackupConfig;
import org.exoplatform.services.jcr.ext.backup.impl.AbstractFullBackupJob;
@@ -44,14 +45,16 @@
private String pathBackupFile;
+ @Override
protected URL createStorage() throws FileNotFoundException, IOException
{
FileNameProducer fnp =
- new FileNameProducer(config.getRepository(), config.getWorkspace(),
config.getBackupDir().getAbsolutePath(),
+ new FileNameProducer(config.getRepository(), config.getWorkspace(),
+ PrivilegedFileHelper.getAbsolutePath(config.getBackupDir()),
super.timeStamp, true);
- return new URL("file:" + fnp.getNextFile().getAbsolutePath());
+ return new URL("file:" +
PrivilegedFileHelper.getAbsolutePath(fnp.getNextFile()));
}
public void init(ManageableRepository repository, String workspaceName, BackupConfig
config, Calendar timeStamp)
@@ -89,7 +92,7 @@
try
{
notifyListeners();
- FileOutputStream fos = new FileOutputStream(pathBackupFile);
+ FileOutputStream fos =
PrivilegedFileHelper.fileOutputStream(pathBackupFile);
session.exportWorkspaceSystemView(fos, false, false);
}
finally
Modified:
jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/backup/impl/fs/IncrementalBackupJob.java
===================================================================
---
jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/backup/impl/fs/IncrementalBackupJob.java 2010-11-23
09:11:41 UTC (rev 3518)
+++
jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/backup/impl/fs/IncrementalBackupJob.java 2010-11-23
09:20:29 UTC (rev 3519)
@@ -18,6 +18,7 @@
*/
package org.exoplatform.services.jcr.ext.backup.impl.fs;
+import org.exoplatform.commons.utils.PrivilegedFileHelper;
import org.exoplatform.services.jcr.core.ManageableRepository;
import org.exoplatform.services.jcr.dataflow.ChangesLogIterator;
import org.exoplatform.services.jcr.dataflow.ItemStateChangesLog;
@@ -94,12 +95,12 @@
protected URL createStorage() throws FileNotFoundException, IOException
{
FileNameProducer fnp =
- new FileNameProducer(config.getRepository(), config.getWorkspace(),
config.getBackupDir().getAbsolutePath(),
- super.timeStamp, false);
+ new FileNameProducer(config.getRepository(), config.getWorkspace(),
+ PrivilegedFileHelper.getAbsolutePath(config.getBackupDir()), super.timeStamp,
false);
File backupFileData = fnp.getNextFile();
- oosFileData = new ObjectOutputStream(new FileOutputStream(backupFileData));
+ oosFileData = new
ObjectOutputStream(PrivilegedFileHelper.fileOutputStream(backupFileData));
return new URL("file:" + backupFileData.getAbsoluteFile());
}
@@ -152,10 +153,10 @@
for (int i = 0; i < listInputList.size(); i++)
{
File tempFile = getAsFile(listInputList.get(i));
- FileInputStream fis = new FileInputStream(tempFile);
+ FileInputStream fis = PrivilegedFileHelper.fileInputStream(tempFile);
// write file size
- out.writeLong(tempFile.length());
+ out.writeLong(PrivilegedFileHelper.length(tempFile));
// write file content
writeContent(fis, out);
@@ -180,8 +181,8 @@
{
byte[] buf = new byte[1024 * 20];
- File tempFile = File.createTempFile("" + System.currentTimeMillis(),
"" + System.nanoTime());
- FileOutputStream fos = new FileOutputStream(tempFile);
+ File tempFile = PrivilegedFileHelper.createTempFile("" +
System.currentTimeMillis(), "" + System.nanoTime());
+ FileOutputStream fos = PrivilegedFileHelper.fileOutputStream(tempFile);
int len;
while ((len = is.read(buf)) > 0)
Modified:
jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/backup/server/HTTPBackupAgent.java
===================================================================
---
jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/backup/server/HTTPBackupAgent.java 2010-11-23
09:11:41 UTC (rev 3518)
+++
jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/backup/server/HTTPBackupAgent.java 2010-11-23
09:20:29 UTC (rev 3519)
@@ -18,26 +18,7 @@
*/
package org.exoplatform.services.jcr.ext.backup.server;
-import java.io.File;
-import java.io.FilenameFilter;
-import java.util.ArrayList;
-import java.util.List;
-
-import javax.annotation.security.RolesAllowed;
-import javax.jcr.LoginException;
-import javax.jcr.NoSuchWorkspaceException;
-import javax.jcr.RepositoryException;
-import javax.jcr.Session;
-import javax.ws.rs.Consumes;
-import javax.ws.rs.GET;
-import javax.ws.rs.POST;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.Produces;
-import javax.ws.rs.core.CacheControl;
-import javax.ws.rs.core.MediaType;
-import javax.ws.rs.core.Response;
-
+import org.exoplatform.commons.utils.PrivilegedFileHelper;
import org.exoplatform.services.jcr.RepositoryService;
import org.exoplatform.services.jcr.config.RepositoryConfigurationException;
import org.exoplatform.services.jcr.config.RepositoryEntry;
@@ -68,6 +49,26 @@
import org.exoplatform.services.log.Log;
import org.exoplatform.services.rest.resource.ResourceContainer;
+import java.io.File;
+import java.io.FilenameFilter;
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.annotation.security.RolesAllowed;
+import javax.jcr.LoginException;
+import javax.jcr.NoSuchWorkspaceException;
+import javax.jcr.RepositoryException;
+import javax.jcr.Session;
+import javax.ws.rs.Consumes;
+import javax.ws.rs.GET;
+import javax.ws.rs.POST;
+import javax.ws.rs.Path;
+import javax.ws.rs.PathParam;
+import javax.ws.rs.Produces;
+import javax.ws.rs.core.CacheControl;
+import javax.ws.rs.core.MediaType;
+import javax.ws.rs.core.Response;
+
/**
* Created by The eXo Platform SAS.
*
@@ -312,8 +313,9 @@
try
{
File backupDir = new File(bConfigBeen.getBackupDir());
- if (!backupDir.exists())
- throw new BackupDirNotFoundException("The backup folder not exists :
" + backupDir.getAbsolutePath());
+ if (!PrivilegedFileHelper.exists(backupDir))
+ throw new BackupDirNotFoundException("The backup folder not exists :
"
+ + PrivilegedFileHelper.getAbsolutePath(backupDir));
BackupConfig config = new BackupConfig();
config.setBackupType(bConfigBeen.getBackupType());
@@ -411,9 +413,10 @@
try
{
File backupDir = new File(bConfigBeen.getBackupDir());
- if (!backupDir.exists())
+ if (!PrivilegedFileHelper.exists(backupDir))
{
- throw new BackupDirNotFoundException("The backup folder not exists :
" + backupDir.getAbsolutePath());
+ throw new BackupDirNotFoundException("The backup folder not exists :
"
+ + PrivilegedFileHelper.getAbsolutePath(backupDir));
}
RepositoryBackupConfig config = new RepositoryBackupConfig();
@@ -876,7 +879,8 @@
{
BackupServiceInfoBean infoBeen =
new BackupServiceInfoBean(backupManager.getFullBackupType(),
backupManager.getIncrementalBackupType(),
- backupManager.getBackupDirectory().getAbsolutePath(),
backupManager.getDefaultIncrementalJobPeriod());
+ PrivilegedFileHelper.getAbsolutePath(backupManager.getBackupDirectory()),
+ backupManager.getDefaultIncrementalJobPeriod());
return Response.ok(infoBeen).cacheControl(noCache).build();
}
@@ -1747,7 +1751,7 @@
}
};
- File[] files = backupManager.getBackupDirectory().listFiles(backupLogsFilter);
+ File[] files = PrivilegedFileHelper.listFiles(backupManager.getBackupDirectory(),
backupLogsFilter);
if (files.length != 0)
for (File f : files)
@@ -1775,7 +1779,7 @@
}
};
- File[] files = backupManager.getBackupDirectory().listFiles(backupLogsFilter);
+ File[] files = PrivilegedFileHelper.listFiles(backupManager.getBackupDirectory(),
backupLogsFilter);
if (files.length != 0)
for (File f : files)
Modified:
jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/backup/server/bean/BackupConfigBean.java
===================================================================
---
jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/backup/server/bean/BackupConfigBean.java 2010-11-23
09:11:41 UTC (rev 3518)
+++
jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/backup/server/bean/BackupConfigBean.java 2010-11-23
09:20:29 UTC (rev 3519)
@@ -18,6 +18,7 @@
*/
package org.exoplatform.services.jcr.ext.backup.server.bean;
+import org.exoplatform.commons.utils.PrivilegedFileHelper;
import org.exoplatform.services.jcr.ext.backup.BackupConfig;
import org.exoplatform.services.jcr.ext.backup.RepositoryBackupConfig;
import org.exoplatform.services.jcr.ext.backup.server.bean.response.BackupJobConfig;
@@ -131,7 +132,8 @@
*/
public BackupConfigBean(BackupConfig config)
{
- this(config.getBackupType(), config.getBackupDir().getAbsolutePath(),
config.getIncrementalJobPeriod());
+ this(config.getBackupType(),
PrivilegedFileHelper.getAbsolutePath(config.getBackupDir()), config
+ .getIncrementalJobPeriod());
this.incrementalRepetitionNumber = config.getIncrementalJobNumber();
}
@@ -143,7 +145,8 @@
*/
public BackupConfigBean(RepositoryBackupConfig config)
{
- this(config.getBackupType(), config.getBackupDir().getAbsolutePath(),
config.getIncrementalJobPeriod());
+ this(config.getBackupType(),
PrivilegedFileHelper.getAbsolutePath(config.getBackupDir()), config
+ .getIncrementalJobPeriod());
this.incrementalRepetitionNumber = config.getIncrementalJobNumber();
}
Modified:
jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/initializer/RemoteWorkspaceInitializationService.java
===================================================================
---
jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/initializer/RemoteWorkspaceInitializationService.java 2010-11-23
09:11:41 UTC (rev 3518)
+++
jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/initializer/RemoteWorkspaceInitializationService.java 2010-11-23
09:20:29 UTC (rev 3519)
@@ -18,6 +18,7 @@
*/
package org.exoplatform.services.jcr.ext.initializer;
+import org.exoplatform.commons.utils.PrivilegedFileHelper;
import org.exoplatform.container.xml.InitParams;
import org.exoplatform.container.xml.PropertiesParam;
import org.exoplatform.services.jcr.RepositoryService;
@@ -193,8 +194,10 @@
String tempD = pps.getProperty("temp-dir");
tempDir = new File(tempD);
- if (!tempDir.exists())
- tempDir.mkdirs();
+ if (!PrivilegedFileHelper.exists(tempDir))
+ {
+ PrivilegedFileHelper.mkdirs(tempDir);
+ }
log.info("RemoteWorkspaceInitializerService");
}
@@ -396,6 +399,7 @@
/**
* {@inheritDoc}
*/
+ @Override
public void run()
{
try
Modified:
jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/initializer/RemoteWorkspaceInitializer.java
===================================================================
---
jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/initializer/RemoteWorkspaceInitializer.java 2010-11-23
09:11:41 UTC (rev 3518)
+++
jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/initializer/RemoteWorkspaceInitializer.java 2010-11-23
09:20:29 UTC (rev 3519)
@@ -18,6 +18,7 @@
*/
package org.exoplatform.services.jcr.ext.initializer;
+import org.exoplatform.commons.utils.PrivilegedFileHelper;
import org.exoplatform.container.ExoContainer;
import org.exoplatform.container.ExoContainerContext;
import org.exoplatform.services.jcr.access.AccessManager;
@@ -73,7 +74,7 @@
throw new RepositoryException("Can not get remote workspace data :"
+ e.getMessage(), e);
}
- this.restorePath = f.getAbsolutePath();
+ this.restorePath = PrivilegedFileHelper.getAbsolutePath(f);
}
}
Modified:
jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/initializer/impl/RemoteReceiver.java
===================================================================
---
jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/initializer/impl/RemoteReceiver.java 2010-11-23
09:11:41 UTC (rev 3518)
+++
jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/initializer/impl/RemoteReceiver.java 2010-11-23
09:20:29 UTC (rev 3519)
@@ -18,6 +18,7 @@
*/
package org.exoplatform.services.jcr.ext.initializer.impl;
+import org.exoplatform.commons.utils.PrivilegedFileHelper;
import
org.exoplatform.services.jcr.ext.initializer.RemoteWorkspaceInitializationException;
import org.exoplatform.services.jcr.ext.replication.storage.IncomeDataContext;
import org.exoplatform.services.jcr.ext.replication.storage.Member;
@@ -117,10 +118,12 @@
RandomChangesFile changesFile;
try
{
- File subDir = new File(tempDir.getCanonicalPath() + File.separator +
System.currentTimeMillis());
- subDir.mkdirs();
+ File subDir =
+ new File(PrivilegedFileHelper.getCanonicalPath(tempDir) +
File.separator
+ + System.currentTimeMillis());
+ PrivilegedFileHelper.mkdirs(subDir);
- File wdFile = File.createTempFile("wdFile",
".0", subDir);
+ File wdFile =
PrivilegedFileHelper.createTempFile("wdFile", ".0", subDir);
changesFile = new RandomChangesFile(wdFile, wdPacket.getCRC(), 1,
new ResourcesHolder());
}
Modified:
jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/initializer/impl/RemoteTransmitter.java
===================================================================
---
jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/initializer/impl/RemoteTransmitter.java 2010-11-23
09:11:41 UTC (rev 3518)
+++
jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/initializer/impl/RemoteTransmitter.java 2010-11-23
09:20:29 UTC (rev 3519)
@@ -18,6 +18,7 @@
*/
package org.exoplatform.services.jcr.ext.initializer.impl;
+import org.exoplatform.commons.utils.PrivilegedFileHelper;
import org.exoplatform.services.jcr.ext.replication.transport.AbstractPacket;
import org.exoplatform.services.jcr.ext.replication.transport.ChannelManager;
import org.exoplatform.services.jcr.ext.replication.transport.MemberAddress;
@@ -25,7 +26,6 @@
import org.exoplatform.services.log.Log;
import java.io.File;
-import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
@@ -77,10 +77,10 @@
protected void sendChangesLogFile(MemberAddress destinationAddress, File file, byte[]
checkSum) throws IOException
{
if (log.isDebugEnabled())
- log.debug("Begin send : " + file.length());
+ log.debug("Begin send : " + PrivilegedFileHelper.length(file));
- InputStream in = new FileInputStream(file);
- long totalPacketCount = getPacketCount(file.length(),
AbstractPacket.MAX_PACKET_SIZE);
+ InputStream in = PrivilegedFileHelper.fileInputStream(file);
+ long totalPacketCount = getPacketCount(PrivilegedFileHelper.length(file),
AbstractPacket.MAX_PACKET_SIZE);
try
{
Modified:
jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/initializer/impl/RemoteTransportImpl.java
===================================================================
---
jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/initializer/impl/RemoteTransportImpl.java 2010-11-23
09:11:41 UTC (rev 3518)
+++
jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/initializer/impl/RemoteTransportImpl.java 2010-11-23
09:20:29 UTC (rev 3519)
@@ -18,6 +18,7 @@
*/
package org.exoplatform.services.jcr.ext.initializer.impl;
+import org.exoplatform.commons.utils.PrivilegedFileHelper;
import org.exoplatform.services.jcr.ext.initializer.NoMemberToSendException;
import org.exoplatform.services.jcr.ext.initializer.RemoteTransport;
import
org.exoplatform.services.jcr.ext.initializer.RemoteWorkspaceInitializationException;
@@ -26,7 +27,6 @@
import org.exoplatform.services.jcr.ext.replication.transport.ChannelManager;
import java.io.File;
-import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.security.MessageDigest;
@@ -175,7 +175,7 @@
NoMemberToSendException
{
- if (!workspaceData.exists())
+ if (!PrivilegedFileHelper.exists(workspaceData))
throw new RemoteWorkspaceInitializationException("The file with workspace
data not exists.");
byte[] crc;
@@ -241,9 +241,9 @@
private byte[] getCheckSum(File f) throws NoSuchAlgorithmException, IOException
{
MessageDigest digest = MessageDigest.getInstance("MD5");
- InputStream in = new FileInputStream(f);
+ InputStream in = PrivilegedFileHelper.fileInputStream(f);
- long length = f.length();
+ long length = PrivilegedFileHelper.length(f);
byte[] buff = new byte[BUFFER_SIZE];
for (; length >= BUFFER_SIZE; length -= BUFFER_SIZE)
Modified:
jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/replication/AbstractWorkspaceDataReceiver.java
===================================================================
---
jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/replication/AbstractWorkspaceDataReceiver.java 2010-11-23
09:11:41 UTC (rev 3518)
+++
jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/replication/AbstractWorkspaceDataReceiver.java 2010-11-23
09:20:29 UTC (rev 3519)
@@ -18,6 +18,7 @@
*/
package org.exoplatform.services.jcr.ext.replication;
+import org.exoplatform.commons.utils.PrivilegedFileHelper;
import org.exoplatform.services.jcr.config.RepositoryConfigurationException;
import org.exoplatform.services.jcr.dataflow.ChangesLogIterator;
import org.exoplatform.services.jcr.dataflow.ItemDataKeeper;
@@ -260,7 +261,7 @@
saveChangesLog(chf, packet.getIdentifier());
// remove
- if (!chf.getFile().delete())
+ if (!PrivilegedFileHelper.delete(chf.getFile()))
fileCleaner.addFile(chf.getFile());
mapPendingBinaryFile.remove(packet.getIdentifier());
@@ -316,11 +317,12 @@
private void saveChangesLog(ChangesFile fileDescriptor, String identifire) throws
Exception
{
TransactionChangesLog transactionChangesLog =
-
recoveryManager.getRecoveryReader().getChangesLog(fileDescriptor.getFile().getAbsolutePath());
+ recoveryManager.getRecoveryReader().getChangesLog(
+ PrivilegedFileHelper.getAbsolutePath(fileDescriptor.getFile()));
if (log.isDebugEnabled())
{
- log.debug("Save to JCR : " +
fileDescriptor.getFile().getAbsolutePath());
+ log.debug("Save to JCR : " +
PrivilegedFileHelper.getAbsolutePath(fileDescriptor.getFile()));
log.debug("SystemID : " + transactionChangesLog.getSystemId());
}
@@ -335,6 +337,6 @@
}
}
- this.receive((ItemStateChangesLog)transactionChangesLog, identifire);
+ this.receive(transactionChangesLog, identifire);
}
}
Modified:
jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/replication/ChangesFile.java
===================================================================
---
jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/replication/ChangesFile.java 2010-11-23
09:11:41 UTC (rev 3518)
+++
jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/replication/ChangesFile.java 2010-11-23
09:20:29 UTC (rev 3519)
@@ -18,6 +18,8 @@
*/
package org.exoplatform.services.jcr.ext.replication;
+import org.exoplatform.commons.utils.PrivilegedFileHelper;
+
import java.io.File;
import java.io.IOException;
import java.io.RandomAccessFile;
@@ -115,7 +117,7 @@
{
if (randomAccessFile == null)
{
- randomAccessFile = new RandomAccessFile(file, "rw");
+ randomAccessFile = PrivilegedFileHelper.randomAccessFile(file, "rw");
}
randomAccessFile.seek(offset);
Modified:
jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/replication/PendingBinaryFile.java
===================================================================
---
jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/replication/PendingBinaryFile.java 2010-11-23
09:11:41 UTC (rev 3518)
+++
jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/replication/PendingBinaryFile.java 2010-11-23
09:20:29 UTC (rev 3519)
@@ -18,6 +18,7 @@
*/
package org.exoplatform.services.jcr.ext.replication;
+import org.exoplatform.commons.utils.PrivilegedFileHelper;
import org.exoplatform.services.log.ExoLogger;
import org.exoplatform.services.log.Log;
@@ -104,7 +105,7 @@
public ChangesFile addChangesFile(String ownerName, String fileName, String systemId,
long totalPacketCount)
throws IOException
{
- File f = File.createTempFile(fileName, "");
+ File f = PrivilegedFileHelper.createTempFile(fileName, "");
ChangesFile fileDescriptor = new ChangesFile(f, systemId, totalPacketCount);
HashMap<String, ChangesFile> fileMap;
@@ -168,7 +169,7 @@
{
log.debug("\n\nList has been sorted :\n");
for (ChangesFile fd : fileDescriptorhList)
- log.debug(fd.getFile().getAbsolutePath());
+ log.debug(PrivilegedFileHelper.getAbsolutePath(fd.getFile()));
}
return fileDescriptorhList;
Modified:
jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/replication/ReplicationChannelManager.java
===================================================================
---
jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/replication/ReplicationChannelManager.java 2010-11-23
09:11:41 UTC (rev 3518)
+++
jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/replication/ReplicationChannelManager.java 2010-11-23
09:20:29 UTC (rev 3519)
@@ -18,6 +18,7 @@
*/
package org.exoplatform.services.jcr.ext.replication;
+import org.exoplatform.commons.utils.PrivilegedFileHelper;
import org.exoplatform.services.jcr.ext.replication.transport.AbstractPacket;
import org.exoplatform.services.jcr.ext.replication.transport.ChannelManager;
import org.exoplatform.services.jcr.ext.replication.transport.MemberAddress;
@@ -72,6 +73,7 @@
/**
* {@inheritDoc}
*/
+ @Override
public Object handle(final Message message)
{
if (isConnected())
@@ -178,9 +180,9 @@
LOG.debug("Begin send : " + filePath);
File f = new File(filePath);
- long packetCount = getPacketCount(f.length(), Packet.MAX_PACKET_SIZE);
+ long packetCount = getPacketCount(PrivilegedFileHelper.length(f),
Packet.MAX_PACKET_SIZE);
- FileInputStream in = new FileInputStream(f);
+ FileInputStream in = PrivilegedFileHelper.fileInputStream(f);
byte[] buf = new byte[Packet.MAX_PACKET_SIZE];
int len;
long offset = 0;
@@ -273,6 +275,7 @@
/**
* {@inheritDoc}
*/
+ @Override
public void connect() throws ReplicationException
{
Modified:
jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/replication/ReplicationService.java
===================================================================
---
jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/replication/ReplicationService.java 2010-11-23
09:11:41 UTC (rev 3518)
+++
jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/replication/ReplicationService.java 2010-11-23
09:20:29 UTC (rev 3519)
@@ -18,6 +18,7 @@
*/
package org.exoplatform.services.jcr.ext.replication;
+import org.exoplatform.commons.utils.PrivilegedFileHelper;
import org.exoplatform.container.xml.InitParams;
import org.exoplatform.container.xml.PropertiesParam;
import org.exoplatform.container.xml.ValuesParam;
@@ -372,9 +373,9 @@
{
// create the recovery for workspace
File dir =
- new File(recoveryDir.getAbsolutePath() + File.separator +
repoNamesList.get(rIndex) + "_"
- + workspaces[wIndex]);
- dir.mkdirs();
+ new File(PrivilegedFileHelper.getAbsolutePath(recoveryDir) +
File.separator
+ + repoNamesList.get(rIndex) + "_" +
workspaces[wIndex]);
+ PrivilegedFileHelper.mkdirs(dir);
String systemId = IdGenerator.generate();
String props = channelConfig.replaceAll(IP_ADRESS_TEMPLATE,
bindIPAddress);
@@ -759,8 +760,10 @@
throw new RuntimeException("Recovery dir not specified");
recoveryDir = new File(recDir);
- if (!recoveryDir.exists())
- recoveryDir.mkdirs();
+ if (!PrivilegedFileHelper.exists(recoveryDir))
+ {
+ PrivilegedFileHelper.mkdirs(recoveryDir);
+ }
if (mode.equals(PERSISTENT_MODE))
{
@@ -834,8 +837,10 @@
else if (backupEnabled)
{
backupDir = new File(sBackupDir);
- if (!backupDir.exists())
- backupDir.mkdirs();
+ if (!PrivilegedFileHelper.exists(backupDir))
+ {
+ PrivilegedFileHelper.mkdirs(backupDir);
+ }
}
if (sDelayTime == null && backupEnabled)
Modified:
jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/replication/WorkspaceDataTransmitter.java
===================================================================
---
jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/replication/WorkspaceDataTransmitter.java 2010-11-23
09:11:41 UTC (rev 3518)
+++
jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/replication/WorkspaceDataTransmitter.java 2010-11-23
09:20:29 UTC (rev 3519)
@@ -18,6 +18,7 @@
*/
package org.exoplatform.services.jcr.ext.replication;
+import org.exoplatform.commons.utils.PrivilegedFileHelper;
import org.exoplatform.services.jcr.config.RepositoryConfigurationException;
import org.exoplatform.services.jcr.dataflow.ChangesLogIterator;
import org.exoplatform.services.jcr.dataflow.ItemStateChangesLog;
@@ -168,8 +169,8 @@
String identifier = IdGenerator.generate();
String fName = recoveryManager.save(isChangesLog, identifier);
- channelManager.sendBinaryFile(new File(fName).getCanonicalPath(), ownName,
identifier, systemId,
- Packet.PacketType.BINARY_CHANGESLOG_PACKET);
+ channelManager.sendBinaryFile(PrivilegedFileHelper.getCanonicalPath(new
File(fName)), ownName, identifier,
+ systemId, Packet.PacketType.BINARY_CHANGESLOG_PACKET);
return identifier;
}
Modified:
jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/replication/recovery/AbstractFSAccess.java
===================================================================
---
jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/replication/recovery/AbstractFSAccess.java 2010-11-23
09:11:41 UTC (rev 3518)
+++
jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/replication/recovery/AbstractFSAccess.java 2010-11-23
09:20:29 UTC (rev 3519)
@@ -18,6 +18,8 @@
*/
package org.exoplatform.services.jcr.ext.replication.recovery;
+import org.exoplatform.commons.utils.PrivilegedFileHelper;
+
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
@@ -81,8 +83,8 @@
{
byte[] buf = new byte[BUFFER_1KB * BUFFER_20X];
- File tempFile = File.createTempFile("" + System.currentTimeMillis(),
"" + System.nanoTime());
- FileOutputStream fos = new FileOutputStream(tempFile);
+ File tempFile = PrivilegedFileHelper.createTempFile("" +
System.currentTimeMillis(), "" + System.nanoTime());
+ FileOutputStream fos = PrivilegedFileHelper.fileOutputStream(tempFile);
int len;
while ((len = is.read(buf)) > 0)
@@ -110,8 +112,8 @@
int bufferSize = BUFFER_1KB * BUFFER_8X;
byte[] buf = new byte[bufferSize];
- File tempFile = File.createTempFile("" + System.currentTimeMillis(),
"" + System.nanoTime());
- FileOutputStream fos = new FileOutputStream(tempFile);
+ File tempFile = PrivilegedFileHelper.createTempFile("" +
System.currentTimeMillis(), "" + System.nanoTime());
+ FileOutputStream fos = PrivilegedFileHelper.fileOutputStream(tempFile);
long readBytes = fileSize;
while (readBytes > 0)
Modified:
jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/replication/recovery/RecoveryReader.java
===================================================================
---
jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/replication/recovery/RecoveryReader.java 2010-11-23
09:11:41 UTC (rev 3518)
+++
jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/replication/recovery/RecoveryReader.java 2010-11-23
09:20:29 UTC (rev 3519)
@@ -18,6 +18,7 @@
*/
package org.exoplatform.services.jcr.ext.replication.recovery;
+import org.exoplatform.commons.utils.PrivilegedFileHelper;
import org.exoplatform.services.jcr.dataflow.TransactionChangesLog;
import org.exoplatform.services.jcr.dataflow.serialization.UnknownClassIdException;
import org.exoplatform.services.jcr.impl.dataflow.serialization.ObjectReaderImpl;
@@ -29,7 +30,6 @@
import java.io.BufferedReader;
import java.io.File;
-import java.io.FileInputStream;
import java.io.FileReader;
import java.io.IOException;
import java.text.DateFormat;
@@ -107,7 +107,7 @@
public TransactionChangesLog getChangesLog(String filePath) throws IOException,
ClassNotFoundException
{
- ObjectReaderImpl in = new ObjectReaderImpl(new FileInputStream(filePath));
+ ObjectReaderImpl in = new
ObjectReaderImpl(PrivilegedFileHelper.fileInputStream(filePath));
TransactionChangesLogReader rdr = new TransactionChangesLogReader(fileCleaner,
maxBufferSize, holder);
TransactionChangesLog tcl;
@@ -136,11 +136,11 @@
*/
public List<String> getFilePathList(Calendar timeStamp, String ownName) throws
IOException
{
- File dataInfo = new File(recoveryDir.getAbsolutePath() + File.separator +
ownName);
+ File dataInfo = new File(PrivilegedFileHelper.getAbsolutePath(recoveryDir) +
File.separator + ownName);
List<String> list = new ArrayList<String>();
- if (dataInfo.exists())
+ if (PrivilegedFileHelper.exists(dataInfo))
{
BufferedReader br = new BufferedReader(new FileReader(dataInfo));
Modified:
jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/replication/recovery/RecoverySynchronizer.java
===================================================================
---
jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/replication/recovery/RecoverySynchronizer.java 2010-11-23
09:11:41 UTC (rev 3518)
+++
jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/replication/recovery/RecoverySynchronizer.java 2010-11-23
09:20:29 UTC (rev 3519)
@@ -18,6 +18,7 @@
*/
package org.exoplatform.services.jcr.ext.replication.recovery;
+import org.exoplatform.commons.utils.PrivilegedFileHelper;
import org.exoplatform.services.jcr.dataflow.ChangesLogIterator;
import org.exoplatform.services.jcr.dataflow.ItemDataKeeper;
import org.exoplatform.services.jcr.dataflow.ItemState;
@@ -288,7 +289,7 @@
try
{
TransactionChangesLog transactionChangesLog =
-
recoveryReader.getChangesLog(fileDescriptor.getFile().getAbsolutePath());
+
recoveryReader.getChangesLog(PrivilegedFileHelper.getAbsolutePath(fileDescriptor.getFile()));
transactionChangesLog.setSystemId(fileDescriptor.getSystemId());
@@ -296,7 +297,8 @@
if (log.isDebugEnabled())
{
- log.debug("Save to JCR : " +
fileDescriptor.getFile().getAbsolutePath());
+ log.debug("Save to JCR : "
+ +
PrivilegedFileHelper.getAbsolutePath(fileDescriptor.getFile()));
log.debug("SystemID : " +
transactionChangesLog.getSystemId());
log.debug("list size : " +
fileDescriptorList.size());
}
Modified:
jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/replication/recovery/RecoveryWriter.java
===================================================================
---
jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/replication/recovery/RecoveryWriter.java 2010-11-23
09:11:41 UTC (rev 3518)
+++
jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/replication/recovery/RecoveryWriter.java 2010-11-23
09:20:29 UTC (rev 3519)
@@ -18,6 +18,7 @@
*/
package org.exoplatform.services.jcr.ext.replication.recovery;
+import org.exoplatform.commons.utils.PrivilegedFileHelper;
import org.exoplatform.services.jcr.dataflow.TransactionChangesLog;
import org.exoplatform.services.jcr.impl.dataflow.serialization.ObjectWriterImpl;
import
org.exoplatform.services.jcr.impl.dataflow.serialization.TransactionChangesLogWriter;
@@ -30,7 +31,6 @@
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileFilter;
-import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
@@ -106,9 +106,11 @@
this.recoveryDir = recoveryDir;
this.fileNameFactory = fileNameFactory;
- recoveryDirDate = new File(this.recoveryDir.getCanonicalPath() + File.separator +
DATA_DIR_NAME);
- if (!recoveryDirDate.exists())
- recoveryDirDate.mkdirs();
+ recoveryDirDate = new File(PrivilegedFileHelper.getCanonicalPath(this.recoveryDir)
+ File.separator + DATA_DIR_NAME);
+ if (!PrivilegedFileHelper.exists(recoveryDirDate))
+ {
+ PrivilegedFileHelper.mkdirs(recoveryDirDate);
+ }
fileRemover = new FileRemover(REMOVER_TIMEOUT, recoveryDir, fileCleaner, ownName);
fileRemover.start();
@@ -133,7 +135,7 @@
// save info
if (log.isDebugEnabled())
- log.debug("Write info : " + f.getAbsolutePath());
+ log.debug("Write info : " +
PrivilegedFileHelper.getAbsolutePath(f));
writeNotConfirmationInfo(f, confirmationChengesLog.getNotConfirmationList());
@@ -161,15 +163,17 @@
String fileName = fileNameFactory.getTimeStampName(timeStamp) + "_" +
identifier;
// create dir
- File dir = new File(recoveryDirDate.getCanonicalPath() + File.separator +
fileNameFactory.getRandomSubPath());
- dir.mkdirs();
+ File dir =
+ new File(PrivilegedFileHelper.getCanonicalPath(recoveryDirDate) +
File.separator
+ + fileNameFactory.getRandomSubPath());
+ PrivilegedFileHelper.mkdirs(dir);
- File f = new File(dir.getCanonicalPath() + File.separator + File.separator +
fileName);
+ File f = new File(PrivilegedFileHelper.getCanonicalPath(dir) + File.separator +
File.separator + fileName);
// save data
- this.save(f, (TransactionChangesLog)tcLog);
+ this.save(f, tcLog);
- return f.getCanonicalPath();
+ return PrivilegedFileHelper.getCanonicalPath(f);
}
/**
@@ -186,7 +190,7 @@
public String save(File f, TransactionChangesLog changesLog) throws IOException
{
// save data
- ObjectWriterImpl out = new ObjectWriterImpl(new FileOutputStream(f));
+ ObjectWriterImpl out = new
ObjectWriterImpl(PrivilegedFileHelper.fileOutputStream(f));
TransactionChangesLogWriter wr = new TransactionChangesLogWriter();
wr.write(out, changesLog);
@@ -210,14 +214,16 @@
{
for (String name : participantsClusterList)
{
- File metaDataFile = new File(recoveryDir.getCanonicalPath() + File.separator +
name);
+ File metaDataFile = new File(PrivilegedFileHelper.getCanonicalPath(recoveryDir)
+ File.separator + name);
- if (!metaDataFile.exists())
- metaDataFile.createNewFile();
+ if (!PrivilegedFileHelper.exists(metaDataFile))
+ {
+ PrivilegedFileHelper.createNewFile(metaDataFile);
+ }
- RandomAccessFile raf = new RandomAccessFile(metaDataFile, "rw");
- raf.seek(metaDataFile.length());
- raf.write((dataFile.getCanonicalPath() + "\n").getBytes());
+ RandomAccessFile raf = PrivilegedFileHelper.randomAccessFile(metaDataFile,
"rw");
+ raf.seek(PrivilegedFileHelper.length(metaDataFile));
+ raf.write((PrivilegedFileHelper.getCanonicalPath(dataFile) +
"\n").getBytes());
raf.close();
}
@@ -235,9 +241,9 @@
*/
public synchronized void removeChangesLog(String identifier, String ownerName) throws
IOException
{
- File metaDataFile = new File(recoveryDir.getAbsolutePath() + File.separator +
ownerName);
+ File metaDataFile = new File(PrivilegedFileHelper.getAbsolutePath(recoveryDir) +
File.separator + ownerName);
- RandomAccessFile raf = new RandomAccessFile(metaDataFile, "rw");
+ RandomAccessFile raf = PrivilegedFileHelper.randomAccessFile(metaDataFile,
"rw");
String fileName;
@@ -257,7 +263,7 @@
log.debug("remove changes log form fs : " + identifier);
}
- saveRemoveChangesLog((new File(fileName)).getCanonicalPath());
+ saveRemoveChangesLog(PrivilegedFileHelper.getCanonicalPath((new
File(fileName))));
break;
}
@@ -279,9 +285,9 @@
{
long removeCounter = 0;
- File metaDataFile = new File(recoveryDir.getAbsolutePath() + File.separator +
ownerName);
+ File metaDataFile = new File(PrivilegedFileHelper.getAbsolutePath(recoveryDir) +
File.separator + ownerName);
- RandomAccessFile raf = new RandomAccessFile(metaDataFile, "rw");
+ RandomAccessFile raf = PrivilegedFileHelper.randomAccessFile(metaDataFile,
"rw");
HashMap<String, String> fileNameMap = new HashMap<String, String>();
@@ -333,10 +339,10 @@
log.debug("Seve removable changeslogs form fs : " + filePath);
File removeDataFile =
- new File(recoveryDir.getAbsolutePath() + File.separator + DATA_DIR_NAME +
File.separator
+ new File(PrivilegedFileHelper.getAbsolutePath(recoveryDir) + File.separator +
DATA_DIR_NAME + File.separator
+ IdGenerator.generate() + REMOVED_SUFFIX);
- removeDataFile.createNewFile();
+ PrivilegedFileHelper.createNewFile(removeDataFile);
BufferedWriter bw = new BufferedWriter(new FileWriter(removeDataFile));
@@ -364,10 +370,10 @@
log.debug("Seve removable changeslogs form fs : " +
fileNameList.size());
File removeDataFile =
- new File(recoveryDir.getAbsolutePath() + File.separator + DATA_DIR_NAME +
File.separator
+ new File(PrivilegedFileHelper.getAbsolutePath(recoveryDir) + File.separator +
DATA_DIR_NAME + File.separator
+ IdGenerator.generate() + REMOVED_SUFFIX);
- removeDataFile.createNewFile();
+ PrivilegedFileHelper.createNewFile(removeDataFile);
BufferedWriter bw = new BufferedWriter(new FileWriter(removeDataFile));
@@ -391,7 +397,7 @@
*/
public void removeDataFile(File f)
{
- if (!f.delete())
+ if (!PrivilegedFileHelper.delete(f))
fileCleaner.addFile(f);
}
}
@@ -466,6 +472,7 @@
/**
* {@inheritDoc}
*/
+ @Override
public void run()
{
while (true)
@@ -476,9 +483,10 @@
Thread.sleep(period);
File recoveryDataDir =
- new File(recoveryDir.getCanonicalPath() + File.separator +
RecoveryWriter.DATA_DIR_NAME);
+ new File(PrivilegedFileHelper.getCanonicalPath(recoveryDir) +
File.separator
+ + RecoveryWriter.DATA_DIR_NAME);
- File[] fArray = recoveryDataDir.listFiles(new RemoveFilesFilter());
+ File[] fArray = PrivilegedFileHelper.listFiles(recoveryDataDir, new
RemoveFilesFilter());
if (fArray.length > 0)
{
@@ -489,12 +497,12 @@
for (String fPath : needRemoveFilesName)
{
File f = new File(fPath);
- if (f.exists() && !map.containsKey(f.getName()))
+ if (PrivilegedFileHelper.exists(f) &&
!map.containsKey(f.getName()))
{
fileCleaner.addFile(f);
if (log.isDebugEnabled())
- log.debug("Remove file :" + f.getCanonicalPath());
+ log.debug("Remove file :" +
PrivilegedFileHelper.getCanonicalPath(f));
}
}
@@ -505,7 +513,7 @@
fileCleaner.addFile(ff);
if (log.isDebugEnabled())
- log.debug("Remove file :" + ff.getCanonicalPath());
+ log.debug("Remove file :" +
PrivilegedFileHelper.getCanonicalPath(ff));
}
}
}
@@ -562,7 +570,7 @@
{
HashMap<String, String> map = new HashMap<String, String>();
- for (File f : recoveryDir.listFiles())
+ for (File f : PrivilegedFileHelper.listFiles(recoveryDir))
if (f.isFile())
for (String filePath : getFilePathList(f))
map.put(new File(filePath).getName(), filePath);
@@ -625,10 +633,16 @@
*/
private void getFiles(File f, List<File> list)
{
- if (f.isDirectory())
- for (File subFile : f.listFiles())
+ if (PrivilegedFileHelper.isDirectory(f))
+ {
+ for (File subFile : PrivilegedFileHelper.listFiles(f))
+ {
getFiles(subFile, list);
+ }
+ }
else if (f.isFile() &&
!(f.getName().endsWith(AbstractFSAccess.REMOVED_SUFFIX)))
+ {
list.add(f);
+ }
}
}
Modified:
jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/replication/recovery/backup/BackupCreator.java
===================================================================
---
jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/replication/recovery/backup/BackupCreator.java 2010-11-23
09:11:41 UTC (rev 3518)
+++
jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/replication/recovery/backup/BackupCreator.java 2010-11-23
09:20:29 UTC (rev 3519)
@@ -18,6 +18,7 @@
*/
package org.exoplatform.services.jcr.ext.replication.recovery.backup;
+import org.exoplatform.commons.utils.PrivilegedFileHelper;
import org.exoplatform.services.jcr.core.ManageableRepository;
import org.exoplatform.services.jcr.ext.replication.recovery.FileNameFactory;
import org.exoplatform.services.jcr.impl.core.SessionImpl;
@@ -25,7 +26,6 @@
import org.exoplatform.services.log.Log;
import java.io.File;
-import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Calendar;
@@ -122,18 +122,18 @@
manageableRepository.getConfiguration().getName() + "_" +
workspaceName + "_"
+ fileNameFactory.getStrDate(backupTime) + "_" +
fileNameFactory.getStrTime(backupTime) + ".xml";
- File backupFile = new File(backupDir.getCanonicalPath() + File.separator +
fileName);
+ File backupFile = new File(PrivilegedFileHelper.getCanonicalPath(backupDir) +
File.separator + fileName);
- if (backupFile.createNewFile())
+ if (PrivilegedFileHelper.createNewFile(backupFile))
{
- session.exportWorkspaceSystemView(new FileOutputStream(backupFile), false,
false);
+
session.exportWorkspaceSystemView(PrivilegedFileHelper.fileOutputStream(backupFile),
false, false);
log.info("The backup has been finished : " +
manageableRepository.getConfiguration().getName() + "@"
+ workspaceName);
}
else
- throw new IOException("Can't create file : " +
backupFile.getCanonicalPath());
+ throw new IOException("Can't create file : " +
PrivilegedFileHelper.getCanonicalPath(backupFile));
}
catch (InterruptedException ie)
Modified:
jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/replication/storage/RandomChangesFile.java
===================================================================
---
jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/replication/storage/RandomChangesFile.java 2010-11-23
09:11:41 UTC (rev 3518)
+++
jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/replication/storage/RandomChangesFile.java 2010-11-23
09:20:29 UTC (rev 3519)
@@ -18,11 +18,11 @@
*/
package org.exoplatform.services.jcr.ext.replication.storage;
+import org.exoplatform.commons.utils.PrivilegedFileHelper;
import org.exoplatform.services.log.ExoLogger;
import org.exoplatform.services.log.Log;
import java.io.File;
-import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.RandomAccessFile;
@@ -117,7 +117,7 @@
{
finishWrite();
- InputStream in = new FileInputStream(file);
+ InputStream in = PrivilegedFileHelper.fileInputStream(file);
resHolder.add(in);
return in;
}
@@ -174,14 +174,14 @@
{
if (fileAccessor == null)
{
- fileAccessor = new RandomAccessFile(file, "rwd");
+ fileAccessor = PrivilegedFileHelper.randomAccessFile(file, "rwd");
resHolder.add(fileAccessor);
// if (file.length() > 0) {
// doTruncate = true;
// }
- fileAccessor.seek(file.length());
+ fileAccessor.seek(PrivilegedFileHelper.length(file));
// LOG.info("checkFileAccessor - seek on " + file.length());
}
@@ -198,7 +198,7 @@
public boolean delete() throws IOException
{
finishWrite();
- return file.delete();
+ return PrivilegedFileHelper.delete(file);
}
/**
@@ -212,9 +212,10 @@
/**
* {@inheritDoc}
*/
+ @Override
public String toString()
{
- return file.getAbsolutePath();
+ return PrivilegedFileHelper.getAbsolutePath(file);
}
/**
@@ -222,7 +223,7 @@
*/
public long getLength()
{
- return file.length();
+ return PrivilegedFileHelper.length(file);
}
/**
Modified:
jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/replication/test/CopyMoveTestCase.java
===================================================================
---
jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/replication/test/CopyMoveTestCase.java 2010-11-23
09:11:41 UTC (rev 3518)
+++
jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/replication/test/CopyMoveTestCase.java 2010-11-23
09:20:29 UTC (rev 3519)
@@ -18,12 +18,12 @@
*/
package org.exoplatform.services.jcr.ext.replication.test;
+import org.exoplatform.commons.utils.PrivilegedFileHelper;
import org.exoplatform.services.jcr.RepositoryService;
import org.exoplatform.services.log.ExoLogger;
import org.exoplatform.services.log.Log;
import java.io.File;
-import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
@@ -92,8 +92,8 @@
File tempFile = null;
try
{
- tempFile = File.createTempFile("tempF", "_");
- FileOutputStream fos = new FileOutputStream(tempFile);
+ tempFile = PrivilegedFileHelper.createTempFile("tempF",
"_");
+ FileOutputStream fos = PrivilegedFileHelper.fileOutputStream(tempFile);
for (int i = 0; i < buf.length; i++)
buf[i] = (byte)(i % Byte.MAX_VALUE);
@@ -106,7 +106,7 @@
Node srcNode = addNodePath(srcRepoPath).addNode(nodeName, "nt:file");
Node contentNode = srcNode.addNode("jcr:content",
"nt:resource");
contentNode.setProperty("jcr:encoding", "UTF-8");
- contentNode.setProperty("jcr:data", new FileInputStream(tempFile));
+ contentNode.setProperty("jcr:data",
PrivilegedFileHelper.fileInputStream(tempFile));
contentNode.setProperty("jcr:mimeType",
"application/octet-stream");
contentNode.setProperty("jcr:lastModified",
session.getValueFactory().createValue(Calendar.getInstance()));
@@ -157,8 +157,8 @@
File tempFile = null;
try
{
- tempFile = File.createTempFile("tempF", "_");
- FileOutputStream fos = new FileOutputStream(tempFile);
+ tempFile = PrivilegedFileHelper.createTempFile("tempF",
"_");
+ FileOutputStream fos = PrivilegedFileHelper.fileOutputStream(tempFile);
for (int i = 0; i < buf.length; i++)
buf[i] = (byte)(i % Byte.MAX_VALUE);
@@ -171,7 +171,7 @@
Node srcNode = addNodePath(srcRepoPath).addNode(nodeName, "nt:file");
Node contentNode = srcNode.addNode("jcr:content",
"nt:resource");
contentNode.setProperty("jcr:encoding", "UTF-8");
- contentNode.setProperty("jcr:data", new FileInputStream(tempFile));
+ contentNode.setProperty("jcr:data",
PrivilegedFileHelper.fileInputStream(tempFile));
contentNode.setProperty("jcr:mimeType",
"application/octet-stream");
contentNode.setProperty("jcr:lastModified",
session.getValueFactory().createValue(Calendar.getInstance()));
@@ -222,8 +222,8 @@
File tempFile = null;
try
{
- tempFile = File.createTempFile("tempF", "_");
- FileOutputStream fos = new FileOutputStream(tempFile);
+ tempFile = PrivilegedFileHelper.createTempFile("tempF",
"_");
+ FileOutputStream fos = PrivilegedFileHelper.fileOutputStream(tempFile);
for (int i = 0; i < buf.length; i++)
buf[i] = (byte)(i % Byte.MAX_VALUE);
@@ -236,7 +236,7 @@
Node srcNode = addNodePath(srcRepoPath).addNode(nodeName, "nt:file");
Node contentNode = srcNode.addNode("jcr:content",
"nt:resource");
contentNode.setProperty("jcr:encoding", "UTF-8");
- contentNode.setProperty("jcr:data", new FileInputStream(tempFile));
+ contentNode.setProperty("jcr:data",
PrivilegedFileHelper.fileInputStream(tempFile));
contentNode.setProperty("jcr:mimeType",
"application/octet-stream");
contentNode.setProperty("jcr:lastModified",
session.getValueFactory().createValue(Calendar.getInstance()));
Modified:
jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/replication/test/NtFileTestCase.java
===================================================================
---
jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/replication/test/NtFileTestCase.java 2010-11-23
09:11:41 UTC (rev 3518)
+++
jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/replication/test/NtFileTestCase.java 2010-11-23
09:20:29 UTC (rev 3519)
@@ -18,12 +18,12 @@
*/
package org.exoplatform.services.jcr.ext.replication.test;
+import org.exoplatform.commons.utils.PrivilegedFileHelper;
import org.exoplatform.services.jcr.RepositoryService;
import org.exoplatform.services.log.ExoLogger;
import org.exoplatform.services.log.Log;
import java.io.File;
-import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.util.Calendar;
@@ -90,8 +90,8 @@
File tempFile = null;
try
{
- tempFile = File.createTempFile("tempF", "_");
- FileOutputStream fos = new FileOutputStream(tempFile);
+ tempFile = PrivilegedFileHelper.createTempFile("tempF",
"_");
+ FileOutputStream fos = PrivilegedFileHelper.fileOutputStream(tempFile);
for (int i = 0; i < buf.length; i++)
buf[i] = (byte)(i % DIVIDER);
@@ -106,7 +106,7 @@
Node cool = addNodePath(repoPath).addNode(fileName, "nt:file");
Node contentNode = cool.addNode("jcr:content",
"nt:resource");
contentNode.setProperty("jcr:encoding", "UTF-8");
- contentNode.setProperty("jcr:data", new FileInputStream(tempFile));
+ contentNode.setProperty("jcr:data",
PrivilegedFileHelper.fileInputStream(tempFile));
contentNode.setProperty("jcr:mimeType",
"application/octet-stream");
contentNode.setProperty("jcr:lastModified",
session.getValueFactory().createValue(Calendar.getInstance()));
@@ -124,7 +124,7 @@
}
finally
{
- tempFile.delete();
+ PrivilegedFileHelper.delete(tempFile);
}
return sb;
Modified:
jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/replication/test/bandwidth/BandwidthAllocationTestCase.java
===================================================================
---
jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/replication/test/bandwidth/BandwidthAllocationTestCase.java 2010-11-23
09:11:41 UTC (rev 3518)
+++
jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/replication/test/bandwidth/BandwidthAllocationTestCase.java 2010-11-23
09:20:29 UTC (rev 3519)
@@ -18,13 +18,13 @@
*/
package org.exoplatform.services.jcr.ext.replication.test.bandwidth;
+import org.exoplatform.commons.utils.PrivilegedFileHelper;
import org.exoplatform.services.jcr.RepositoryService;
import org.exoplatform.services.jcr.ext.replication.test.BaseReplicationTestCase;
import org.exoplatform.services.log.ExoLogger;
import org.exoplatform.services.log.Log;
import java.io.File;
-import java.io.FileInputStream;
import java.io.FileOutputStream;
import javax.jcr.Node;
@@ -209,8 +209,8 @@
File tempFile = null;
try
{
- tempFile = File.createTempFile("tempF", "_");
- FileOutputStream fos = new FileOutputStream(tempFile);
+ tempFile = PrivilegedFileHelper.createTempFile("tempF",
"_");
+ FileOutputStream fos = PrivilegedFileHelper.fileOutputStream(tempFile);
for (int i = 0; i < buf.length; i++)
buf[i] = (byte)(i % BaseReplicationTestCase.DIVIDER);
@@ -225,15 +225,15 @@
{
String normalizePath = getNormalizePath(repoPath);
Node baseNode = ((Node)session.getItem(normalizePath)).getNode(nodeName);
- baseNode.setProperty("d", new FileInputStream(tempFile));
+ baseNode.setProperty("d",
PrivilegedFileHelper.fileInputStream(tempFile));
session.save();
}
end = System.currentTimeMillis();
- log.info("The time of the adding of nt:file + " + iterations + "(
" + tempFile.length() + " B ) : "
- + ((end - start) / BaseReplicationTestCase.ONE_SECONDS) + " sec");
+ log.info("The time of the adding of nt:file + " + iterations + "(
" + PrivilegedFileHelper.length(tempFile)
+ + " B ) : " + ((end - start) / BaseReplicationTestCase.ONE_SECONDS)
+ " sec");
sb.append("ok");
}
@@ -244,7 +244,7 @@
}
finally
{
- tempFile.delete();
+ PrivilegedFileHelper.delete(tempFile);
}
return sb;
Modified:
jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/replication/test/concurrent/ConcurrentModificationTestCase.java
===================================================================
---
jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/replication/test/concurrent/ConcurrentModificationTestCase.java 2010-11-23
09:11:41 UTC (rev 3518)
+++
jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/replication/test/concurrent/ConcurrentModificationTestCase.java 2010-11-23
09:20:29 UTC (rev 3519)
@@ -18,13 +18,13 @@
*/
package org.exoplatform.services.jcr.ext.replication.test.concurrent;
+import org.exoplatform.commons.utils.PrivilegedFileHelper;
import org.exoplatform.services.jcr.RepositoryService;
import org.exoplatform.services.jcr.ext.replication.test.BaseReplicationTestCase;
import org.exoplatform.services.log.ExoLogger;
import org.exoplatform.services.log.Log;
import java.io.File;
-import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.util.Calendar;
@@ -90,8 +90,8 @@
File tempFile = null;
try
{
- tempFile = File.createTempFile("tempF", "_");
- FileOutputStream fos = new FileOutputStream(tempFile);
+ tempFile = PrivilegedFileHelper.createTempFile("tempF",
"_");
+ FileOutputStream fos = PrivilegedFileHelper.fileOutputStream(tempFile);
for (long i = 0; i < iterations; i++)
fos.write(simpleContent.getBytes());
@@ -102,7 +102,7 @@
Node cool = addNodePath(repoPath).addNode(fileName, "nt:file");
Node contentNode = cool.addNode("jcr:content",
"nt:resource");
contentNode.setProperty("jcr:encoding", "UTF-8");
- contentNode.setProperty("jcr:data", new FileInputStream(tempFile));
+ contentNode.setProperty("jcr:data",
PrivilegedFileHelper.fileInputStream(tempFile));
contentNode.setProperty("jcr:mimeType",
"application/octet-stream");
contentNode.setProperty("jcr:lastModified",
session.getValueFactory().createValue(Calendar.getInstance()));
@@ -121,7 +121,7 @@
}
finally
{
- tempFile.delete();
+ PrivilegedFileHelper.delete(tempFile);
}
return sb;
@@ -247,6 +247,7 @@
/**
* {@inheritDoc}
*/
+ @Override
public void run()
{
String destPath = null;