Issue Details (XML | Word | Printable)

Key: FOR-924
Type: Bug Bug
Status: Closed Closed
Resolution: Fixed
Priority: Major Major
Assignee: Unassigned
Reporter: David Crossley
Votes: 1
Watchers: 0
Operations

If you were logged in you would be able to see more operations.
Forrest

forrest war fails with error in ForrestConfModule

Created: 25/Aug/06 02:29 PM   Updated: 19/Sep/06 11:28 PM
Return to search
Component/s: Launch servlet WAR
Affects Version/s: 0.8
Fix Version/s: 0.8

Time Tracking:
Not Specified

Issue Links:
Dependants
 


 Description  « Hide
With the current trunk (r436707) doing 'forrest war' and deploy to either full Jetty-4 or Tomcat-4
error log has this ...

------------
ERROR (2006-08-26) 00:17.47:047 [core.manager] (Unknown-URI) Unknown-Thread/CoreServiceManager: Caught an exception trying to initialize the component handler.
java.lang.NullPointerException
        at org.apache.forrest.conf.ForrestConfUtils.aliasSkinProperties(ForrestConfUtils.java:100)
        at org.apache.forrest.conf.ForrestConfModule.initialize(ForrestConfModule.java:194)
        at org.apache.avalon.framework.container.ContainerUtil.initialize(ContainerUtil.java:244)
...
------------

Perhaps this is related to recent changes in forrest properties system.

 All   Comments   Work Log   Change History   Subversion Commits      Sort Order: Ascending order - Click to sort in descending order
Martin Stockhammer added a comment - 17/Sep/06 06:54 PM
By one of the last patches the import of forrest.properties file in ForrestConfModule.java was removed, because in "forrest run" startup they are set from ant as system properties. In Webapp-Modules there is no ant involved and forrest.properties is never read.
This leads to the NullpointerException in ForrestConfUtils.aliasSkinProperties().
---------------------
        String skinName = props.getProperty("project.skin");
        if (skinName.equals("crust")) { <<<<------ skinName is 'null'
            setSkinToUse(props, "krysalis-site");
--------------------
My suggestion is, to reinsert the code to import forrest.properties file in ForrestConfModule.java:

Index: E:/user/martins/devel/eclipse-ws/apache-forrest/main/java/org/apache/forrest/conf/ForrestConfModule.java
===================================================================
Index: E:/user/martins/devel/eclipse-ws/apache-forrest/main/java/org/apache/forrest/conf/ForrestConfModule.java
===================================================================
--- org/apache/forrest/conf/ForrestConfModule.java (revision 447107)
+++ org/apache/forrest/conf/ForrestConfModule.java (working copy)
@@ -175,6 +175,20 @@
             filteringProperties = loadXMLPropertiesFromURI(filteringProperties,
                     forrestPropertiesStringURI);
 
+ // get forrest.properties and load the values
+ forrestPropertiesStringURI = projectHome + SystemUtils.FILE_SEPARATOR
+ + "forrest.properties";
+ filteringProperties = loadAntPropertiesFromURI(filteringProperties,
+ forrestPropertiesStringURI);
+
+ // get default-forrest.properties and load the values
+ String defaultForrestPropertiesStringURI = contextHome + SystemUtils.FILE_SEPARATOR
+ + "default-forrest.properties";
+ filteringProperties = loadAntPropertiesFromURI(filteringProperties,
+ defaultForrestPropertiesStringURI);
+
+
+
             // Load plugin default properties
             String strPluginList = filteringProperties
                     .getProperty("project.required.plugins");
@@ -309,5 +323,46 @@
     private final void debug(String debugString) {
         getLogger().debug(debugString);
     }
+
+ /**
+ * @param antPropertiesStringURI
+ * @throws MalformedURLException
+ * @throws IOException
+ * @throws SourceNotFoundException
+ */
+ private AntProperties loadAntPropertiesFromURI(AntProperties precedingProperties,
+ String antPropertiesStringURI) throws MalformedURLException, IOException,
+ SourceNotFoundException {
 
+ Source source = null;
+ InputStream in = null;
+ try {
+ source = m_resolver.resolveURI(antPropertiesStringURI);
+ if (debugging())
+ debug("Searching for forrest.properties in" + source.getURI());
+ if (source.exists()){
+ in = source.getInputStream();
+ filteringProperties = new AntProperties(precedingProperties);
+ filteringProperties.load(in);
+
+ if (debugging())
+ debug("Loaded:" + antPropertiesStringURI + filteringProperties.toString());
+ }
+
+ } finally {
+ if (source != null) {
+ m_resolver.release(source);
+ }
+ if (in != null) {
+ try {
+ in.close();
+ } catch (IOException e) {
+ }
+ }
+ }
+
+ return filteringProperties;
+ }
+
+
 }

Thorsten Scherler added a comment - 19/Sep/06 09:56 AM
The FOR-924 seems to be provoked by FOR-916

Thorsten Scherler added a comment - 19/Sep/06 10:43 AM
Should be fixed now. Can you please verify and then close this issue.
TIA

David Crossley added a comment - 19/Sep/06 11:28 PM
Confirmed. Thanks Martin.