cocoon-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Sylvain Wallez <sylvain.wal...@anyware-tech.com>
Subject Re: svn commit: r312968 - in /cocoon/branches/BRANCH_2_1_X: ./ src/java/org/apache/cocoon/components/source/impl/validity/ src/java/org/apache/cocoon/i18n/ src/java/org/apache/cocoon/transformation/ src/webapp/WEB-INF/ src/webapp/samples/i18n/translations/
Date Fri, 21 Oct 2005 14:55:05 GMT
Why such a complicated exception handling?

I see several problems here:
- SourceNotFoundException is a nominal case (BTW why not using 
Source.exists()?) and should not log an exception
- Bad formed XML files and other serious exceptions are semi-silently 
ignored. By semi-silently, I mean they're just logged and don't bubble 
up higher in the call stack, thus giving the false impression that the 
system works.

I will fix the 1st point (it scares my users to see all this in the 
logs), and would really understand the rationale for the second.

Sylvain


vgritsenko@apache.org wrote:
> Author: vgritsenko
> Date: Tue Oct 11 15:28:46 2005
> New Revision: 312968
>
> URL: http://svn.apache.org/viewcvs?rev=312968&view=rev
> Log:
>     <action dev="VG" type="update">
>       I18n: Refactored XMLResourceBundle to use transient store instead of
>       private cache. Added reload check interval parameter. Support dynamic
>       additions and removals of resource bundles, without need to restart
>       Cocoon.
>     </action>
>
>   
> Modified: cocoon/branches/BRANCH_2_1_X/src/java/org/apache/cocoon/i18n/XMLResourceBundle.java
>   
<snip/>
> -        } catch (ServiceException e) {
> -            throw new ProcessingException("Can't lookup source resolver", e);
> +
> +            // Success
> +            return true;
> +
>          } catch (MalformedURLException e) {
> -            throw new SourceNotFoundException("Invalid resource URL: " + this.sourceURI,
e);
> +            getLogger().error("Bundle <" + this.sourceURI + "> not loaded: Invalid
URI", e);
> +            newValues = Collections.EMPTY_MAP;
> +
> +        } catch (ResourceNotFoundException e) {
> +            if (getLogger().isDebugEnabled()) {
> +                getLogger().info("Bundle <" + sourceURI + "> not loaded: Source
URI not found", e);
> +            } else if (getLogger().isInfoEnabled()) {
> +                getLogger().info("Bundle <" + sourceURI + "> not loaded: Source
URI not found");
> +            }
> +            newValues = Collections.EMPTY_MAP;
> +
> +        } catch (SourceNotFoundException e) {
> +            if (getLogger().isDebugEnabled()) {
> +                getLogger().info("Bundle <" + sourceURI + "> not loaded: Source
URI not found", e);
> +            } else if (getLogger().isInfoEnabled()) {
> +                getLogger().info("Bundle <" + sourceURI + "> not loaded: Source
URI not found");
> +            }
> +            newValues = Collections.EMPTY_MAP;
> +
> +        } catch (SAXException e) {
> +            getLogger().error("Bundle <" + sourceURI + "> not loaded: Invalid
XML", e);
> +            // Keep existing loaded values
> +            newValues = this.values;
> +
> +        } catch (Exception e) {
> +            getLogger().error("Bundle <" + sourceURI + "> not loaded: Exception",
e);
> +            // Keep existing loaded values
> +            newValues = this.values;
> +
>          } finally {
> -            if (source != null) {
> -                resolver.release(source);
> +            if (newSource != null) {
> +                resolver.release(newSource);
>              }
> -            this.manager.release(resolver);
>          }
> -    }
>  
>   

-- 
Sylvain Wallez                        Anyware Technologies
http://people.apache.org/~sylvain     http://www.anyware-tech.com
Apache Software Foundation Member     Research & Technology Director


Mime
View raw message