Patch re ResourceManager [WAS: Re: [Yanel-dev] Cleaned src code
Alec Bickerton
alec.bickerton at wyona.com
Tue Dec 9 11:03:04 CET 2008
Michael,
Sounds reasonable. FYI The chanes relate to a potential null access
which is followed by a redundant null check.
> - String universalName = rtd.getResourceTypeUniversalName();
universal name is never read.
> - if (rtd != null) {
If rti was null, we've already thrown a NullPointer, so we never get here.
Michael Wechner wrote:
> Michael Wechner schrieb:
>> Alec Bickerton schrieb:
>>> Hi,
>>>
>>> I've ran a few code cleanup tools on the yanel code base and removed all
>>> the areas that were identified as potential problems.
>>>
>>> The settings were very conservative, targeting only the following.
>>> - Unused imports
>>> - Unused variables (local and private)
>>> - Redundant null checks
>>> - Redundant if-else nesting
>>> - Indirect access to static fields.
>>>
>>> Can someone with commit access take a look.
>>>
>>
>> I am currently reviewing the changes and will try to commit them today.
>
> I put the following on hold, because I need to check it closer
>
> Index: core/java/org/wyona/yanel/core/ResourceManager.java
> ===================================================================
> --- core/java/org/wyona/yanel/core/ResourceManager.java (Revision 40290)
> +++ core/java/org/wyona/yanel/core/ResourceManager.java (Arbeitskopie)
> @@ -20,10 +20,7 @@
> import java.util.Enumeration;
>
> import javax.servlet.http.HttpServletRequest;
> -import javax.servlet.http.HttpServletResponse;
> -
> import org.apache.log4j.Category;
> -import org.wyona.yanel.core.map.Map;
> import org.wyona.yanel.core.map.Realm;
> import org.wyona.yanel.core.util.HttpServletRequestHelper;
> import org.wyona.yanel.core.util.PathUtil;
> @@ -58,24 +55,20 @@
> * @param rti Resource type identifier (deprecated and contains
> redudant information to resource type definition. What about properties?)
> */
> public Resource getResource(Environment environment, Realm realm,
> String path, ResourceTypeDefinition rtd, ResourceTypeIdentifier rti)
> throws Exception {
> - String universalName = rtd.getResourceTypeUniversalName();
> - if (rtd != null) {
> - Resource resource = (Resource)
> Class.forName(rtd.getResourceTypeClassname()).newInstance();
> -
> - resource.setRTD(rtd);
> - resource.setYanel(Yanel.getInstance());
> - resource.setRealm(realm);
> - resource.setPath(path);
> - resource.setRTI(rti);
> - resource.setEnvironment(environment);
> -
> - passParameters(resource, environment.getRequest());
> -
> - return resource;
> - } else {
> - log.error("No resource registered for rti: " + universalName);
> + if( rtd == null ){
> + log.error("Rtd was null");
> return null;
> }
> + //String universalName = rtd.getResourceTypeUniversalName();
> + Resource resource = (Resource)
> Class.forName(rtd.getResourceTypeClassname()).newInstance();
> + resource.setRTD(rtd);
> + resource.setYanel(Yanel.getInstance());
> + resource.setRealm(realm);
> + resource.setPath(path);
> + resource.setRTI(rti);
> + resource.setEnvironment(environment);
> + passParameters(resource, environment.getRequest());
> + return resource;
> }
>
> /**
> @@ -85,9 +78,8 @@
> */
> public Resource getResource(Environment environment, Realm realm,
> String path, ResourceConfiguration rc) throws Exception {
> ResourceTypeDefinition rtd =
> rtRegistry.getResourceTypeDefinition(rc.getUniversalName());
> -
> if (rtd != null) {
> - String universalName = rtd.getResourceTypeUniversalName();
> +// String universalName = rtd.getResourceTypeUniversalName();
> try {
> Resource resource = (Resource)
> Class.forName(rtd.getResourceTypeClassname()).newInstance();
>
> @@ -105,10 +97,9 @@
> log.error("Resource class not found for " +
> rtd.getResourceTypeUniversalName());
> throw e;
> }
> - } else {
> - log.error("Resource Type Definition cannot be determined
> for: " + realm + ", " + path + ", " + rc.getUniversalName());
> - return null;
> }
> + log.error("Resource Type Definition cannot be determined for: "
> + realm + ", " + path + ", " + rc.getUniversalName());
> + return null;
> }
>
> /**
> @@ -119,7 +110,7 @@
> public Resource getResource(Environment environment, Realm realm,
> String path) throws Exception {
> if
> (realm.getRTIRepository().existsNode(PathUtil.getRCPath(path))) {
> ResourceConfiguration rc = new
> ResourceConfiguration(realm.getRTIRepository().getNode(PathUtil.getRCPath(path)));
>
> - if (rc != null) return getResource(environment, realm,
> path, rc);
> + return getResource(environment, realm, path, rc);
> }
>
> if
> (realm.getRTIRepository().existsNode(PathUtil.getRTIPath(path))) {
> @@ -133,7 +124,7 @@
> String rcPath = ResourceConfigurationMap.getRCPath(realm, path);
> if (rcPath != null &&
> realm.getRTIRepository().existsNode(rcPath)) {
> ResourceConfiguration rc = new
> ResourceConfiguration(realm.getRTIRepository().getNode(ResourceConfigurationMap.getRCPath(realm,
> path)));
> - if (rc != null) return getResource(environment, realm,
> path, rc);
> + return getResource(environment, realm, path, rc);
> }
>
> return getResource(environment, realm, path, new
> ResourceConfiguration("file", "http://www.wyona.org/yanel/resource/1.0",
> null));
>
More information about the Yanel-development
mailing list