in src/java/org/apache/fulcrum/intake/IntakeServiceImpl.java [324:421]
private void saveSerialized(String serialDataPath, Map<AppData, File> appDataElements)
{
getLogger().debug(
"Entered saveSerialized(" + serialDataPath
+ ", appDataElements)");
long timer = System.currentTimeMillis();
if (serialDataPath == null)
{
return;
}
File serialData = new File(serialDataPath);
try
{
boolean result = serialData.createNewFile();
if ( result == false )
{
getLogger().error("Could not create new serialized file");
}
// Try to delete the file
result = serialData.delete();
if ( result == false )
{
getLogger().error("Serialized file could not be removed");
}
}
catch (IOException e)
{
getLogger().info(
"Could not create serialized file " + serialDataPath
+ ", not serializing the XML data", e);
return;
}
ObjectOutputStream out = null;
ObjectInputStream in = null;
try
{
// write the appData file out
FileOutputStream fout = new FileOutputStream(serialDataPath);
out = new ObjectOutputStream(fout);
out.writeObject(appDataElements);
out.flush();
// read the file back in. for some reason on OSX 10.1
// this is necessary.
FileInputStream fin = new FileInputStream(serialDataPath);
in = new ObjectInputStream(fin);
/* Map dummy = (Map) */ in.readObject();
getLogger().debug("Serializing successful");
}
catch (IOException e)
{
getLogger().info(
"Could not write serialized file to " + serialDataPath
+ ", not serializing the XML data", e);
}
catch (ClassNotFoundException e)
{
getLogger().info(
"Could not re-read serialized file from " + serialDataPath, e);
}
finally
{
try
{
if (out != null)
{
out.close();
}
}
catch (IOException e)
{
getLogger().error("Exception while closing file", e);
}
try
{
if (in != null)
{
in.close();
}
}
catch (IOException e)
{
getLogger().error("Exception while closing file", e);
}
}
getLogger().debug("Saving took " + (System.currentTimeMillis() - timer));
}