DigitalAsset digitalAsset = DigitalAssetController.getDigitalAssetWithId(digitalAssetVO.getId(), db);
String cmsBaseUrl = CmsPropertyHandler.getCmsFullBaseUrl();
if(CmsPropertyHandler.getEnableDiskAssets().equals("true"))
{
HttpHelper httpHelper = new HttpHelper();
httpHelper.downloadFile("" + cmsBaseUrl + "/DownloadProtectedAsset.action?digitalAssetId=" + digitalAssetVO.getId(), tmpOutputFile);
}
if(tmpOutputFile.exists())
{
if(logger.isInfoEnabled())
{
logger.info("Time for dumping file " + fileName + ":" + timer.getElapsedTime() + ":" + tmpOutputFile.exists() + ":" + tmpOutputFile.lastModified());
logger.info("tmpOutputFile:" + tmpOutputFile.length() + ":" + tmpOutputFile.exists());
}
if(tmpOutputFile.length() == 0 || outputFile.exists())
{
if(logger.isInfoEnabled())
logger.info("written file:" + tmpOutputFile.length() + " - removing temp and not renaming it...");
tmpOutputFile.delete();
if(logger.isInfoEnabled())
logger.info("Time for deleting file " + timer.getElapsedTime());
}
else
{
logger.info("written file:" + tmpOutputFile.getAbsolutePath() + " - renaming it to " + outputFile.getAbsolutePath());
logger.info("written file:" + tmpOutputFile.length() + " - renaming it to " + outputFile.getAbsolutePath());
tmpOutputFile.renameTo(outputFile);
logger.info("Time for renaming file " + timer.getElapsedTime());
}
}
else
{
InputStream inputStream = digitalAsset.getAssetBlob();
if(inputStream != null)
{
synchronized(inputStream)
{
logger.info("reading inputStream and writing to disk....");
FileOutputStream fos = new FileOutputStream(tmpOutputFile);
BufferedOutputStream bos = new BufferedOutputStream(fos);
BufferedInputStream bis = new BufferedInputStream(inputStream);
int character;
int i=0;
while ((character = bis.read()) != -1)
{
bos.write(character);
i++;
}
if(i == 0)
logger.info("Wrote " + i + " chars to " + fileName);
bos.flush();
fos.close();
bos.close();
bis.close();
logger.info("done reading inputStream and writing to disk....");
}
}
else
{
logger.warn("There was no asset blob in the database - checking the cms-disk - could be a mistake:" + digitalAssetVO.getDigitalAssetId());
try
{
HttpHelper httpHelper = new HttpHelper();
httpHelper.downloadFile("" + cmsBaseUrl + "/DownloadProtectedAsset.action?digitalAssetId=" + digitalAssetVO.getId(), tmpOutputFile);
if(tmpOutputFile.exists())
{
if(logger.isInfoEnabled())
{