John/Scott:
The patch below for o/a/j/page/impl/CastorXmlPageManager.java worked for me... it seems that page ids now require an extension so that they can be cached correctly in the FileCache with a real file name. I am not sure this is the CORRECT fix. It is certainly not the cleanest or most efficient possible... perhaps adding an additional name/alias lookup to the FileCache would be better?
I also had to escape the French LATIN-1 character embedded in the o/a/j/page/TestCastorXmlPageManager.java source file to make sure it functioned properly. I seem to recall somewhere that LATIN-1 characters must be escaped in string literals, (?).
Randy Watler
--------------------------------------------------------------------------------------------------------------------------------- --- CastorXmlPageManager.java.orig 2004-08-30 21:37:13.000000000 -0600 +++ CastorXmlPageManager.java 2004-08-30 20:44:43.000000000 -0600 @@ -194,7 +194,14 @@
Page page = null;
- page = (Page) pages.getDocument(id);
+ if (id.endsWith(this.ext))
+ {
+ page = (Page) pages.getDocument(id);
+ }
+ else
+ {
+ page = (Page) pages.getDocument(id + this.ext);
+ } if (page == null)
{
@@ -206,7 +213,14 @@
// watcher
try
{
- pages.put(id, page, this.rootDir);
+ if (id.endsWith(this.ext))
+ {
+ pages.put(id, page, this.rootDir);
+ }
+ else
+ {
+ pages.put(id + this.ext, page, this.rootDir);
+ }
int lastSlash = id.indexOf("/");
if (lastSlash > -1)
{
@@ -385,7 +399,16 @@
} // marshal page to disk
- File f = new File(this.rootDir, id + this.ext);
+
+ File f = null;
+ if (id.endsWith(this.ext))
+ {
+ f = new File(this.rootDir, id);
+ }
+ else
+ {
+ f = new File(this.rootDir, id + this.ext);
+ }
FileWriter writer = null; try
@@ -437,7 +460,14 @@
{
try
{
- pages.put(id, page, this.rootDir);
+ if (id.endsWith(this.ext))
+ {
+ pages.put(id, page, this.rootDir);
+ }
+ else
+ {
+ pages.put(id + this.ext, page, this.rootDir);
+ }
}
catch (IOException e)
{
@@ -467,11 +497,26 @@
return;
}- File file = new File(this.rootDir, id + this.ext);
+ File file = null;
+ if (id.endsWith(this.ext))
+ {
+ file = new File(this.rootDir, id);
+ }
+ else
+ {
+ file = new File(this.rootDir, id + this.ext);
+ } synchronized (pages)
{
- pages.remove(id);
+ if (id.endsWith(this.ext))
+ {
+ pages.remove(id);
+ }
+ else
+ {
+ pages.remove(id + this.ext);
+ }
}file.delete();
---------------------------------------------------------------------------------------------------------------------------------
--- TestCastorXmlPageManager.java.orig 2004-08-30 21:21:44.000000000 -0600
+++ TestCastorXmlPageManager.java 2004-08-30 21:22:26.000000000 -0600
@@ -346,7 +346,7 @@
Folder folder1French = pageManager.getFolder("folder1");
FolderMetaData metaData = folder1French.getMetaData();
assertNotNull(metaData);
- assertEquals("Titre fran�ais pour la chemise 1", metaData.getTitle(Locale.FRENCH));
+ assertEquals("Titre fran\347ais pour la chemise 1", metaData.getTitle(Locale.FRENCH));
Folder folder1English = pageManager.getFolder("folder1");
metaData = folder1English.getMetaData();
----------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
