I was trying to fit a prewritten module that I had in Phoenix [make a block out of it]. This particular module has a lot of dependencies of other thirdparty jars (like jdbc stuff etc.). While playing with it I realized that if a third party jar is deployed in the sar file for the block which does not have a manifest in it Phoenix gives a null pointer exception and exits. A little analysis showed that the getListed function in the Extension.java of the Extension package of Excalibur did not check for a null in the manifest entry passed to it and was throwing a null pointer if so. Just a check for null fixed it.
Here is the code I modified - /** * Retrieve all the extensions listed under a particular key * (Usually EXTENSION_LIST or OPTIONAL_EXTENSION_LIST). * * @param manifest the manifest to extract extensions from * @param listKey the key used to get list (Usually * EXTENSION_LIST or OPTIONAL_EXTENSION_LIST) * @return the list of listed extensions */ private static Extension[] getListed( final Manifest manifest, final Attributes.Name listKey ) { final ArrayList results = new ArrayList(); >> if( null != manifest) >> { final Attributes mainAttributes = manifest.getMainAttributes(); if( null != mainAttributes ) { getExtension( mainAttributes, results, listKey ); } final Map entries = manifest.getEntries(); final Iterator keys = entries.keySet().iterator(); while( keys.hasNext() ) { final String key = (String)keys.next(); final Attributes attributes = (Attributes)entries.get( key ); getExtension( attributes, results, listKey ); } >> } return (Extension[])results.toArray( new Extension[ 0 ] ); } Atul. -- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>