[opencms-dev] projectId of tempfileproject

Roland Hordos roland at ethicalmachine.com
Mon Jun 2 19:20:02 CEST 2003


A rebuild was not necessary for me.  I had this error, which is caused 
by not running the installation wizard (ocsetup) after you've done a 
re-deployment that results in the config/registry.xml file being 
overwritten.  This happened just recently when I upgraded from Tomcat 
4.1.18 to JBoss 3.2.1+Tomcat 4.1.24.  I copied the entire expanded 
opencms war directory over to the new server, then re-deployed the 
opencms.war file as well.  When the server extracted the war, the 
registry.xml became overwritten with the default which has an empty 
<tempfileproject> tag.  Simply re-running ocsetup fixes the problem.

The exception message occurs here, in 
com.opencms.workplace.CmsXmlTemplateEditor, after you edit an HTML page:

        // get the temporary file projectid
        int tempProject = 0;
        try{
            tempProject = 
Integer.parseInt((String)cms.getRegistry().getSystemValue("tempfileproject"));
        }catch(Exception e){
            throw new CmsException("Can not read projectId of 
tempfileproject for creating temporary file for editing! "+e.toString());
        }

The registry DOM (cms.getRegistry()) is read for the "tempfileproject" 
tag, causing an exception on the Integer.parseInt as the result is null 
if only the default registry.xml exists.  This exception is caught and 
re-thrown as the CmsException.

Suggestion:  It seems to me that this would only happen on a corrupt 
installation / corrupt registry.  You could make it easier on future 
users who hit this problem by simply suggesting that "the setup wizard 
may have to be re-run" or something like this.  This should be safe on 
two counts:
1)  as a precaution you already lock the setup after its initial run 
with the "wizard.enabled" property in the config/opencms.properties file
2)  OpenCMS appears very tolerant to having the setup wizard re-run to 
change config, so long as you pay attention (ie. don't blast right 
through and drop and re-create your tables on the page that covers this).

With no disrespect intended to the previous post, I certainly don't 
believe this problem has anything what-so-ever to do with a difference 
between installations on Solaris vs Linux.  While I tracked down this 
issue I noticed not a single line of code that would have known it's 
running on my RedHat 7.3 platform.  It is a standard pure Java web 
application and I doubt it even cares which servlet container it's 
running in.  

I must say that I have never used an opensource solution that is as easy 
to configure and administer as OpenCMS -- nice work on the installation 
wizard!

thanks, Roland;


Yasuhisa Itoh wrote:

>Dear all,
>
>I found workaround for the exception below.
>
>Exception: 
>com.opencms.core.CmsException: 0 Unknown exception. Detailed error:
>Can not read projectId of tempfileproject for creating temporary
>file for editing!
>
>I have "GOOD" Solaris system with default setting(but rebuild by
>source - binary distribution has same error. By rebuilding,
>got well, somehow), and  some "BAD" Linux systems.
>In opencms/WEB-INF/config/registry.xml, "tempfileproject" is set to
>"3" on "GOOD" system. On "BAD" systems, null.
>
># Id 3 means "Offline" Project?
>
>Edit registry.xml, restart Tomcat, then all my systems run well.
>But I'm afraid that this workaround is not safe.
>Do you know whether this is OK?
>
>Regards
>---
>Yasuhisa Itoh
>_______________________________________________
>This mail is send to you from the opencms-dev mailing list
>To change your list options, or to unsubscribe from the list, please visit
>http://mail.opencms.org/mailman/listinfo/opencms-dev
>  
>






More information about the opencms-dev mailing list