Show
Ignore:
Timestamp:
07/17/08 06:02:42 (4 years ago)
Author:
amandel
Message:

Protect logger against failures in the message pattern that
would otherwise cause a ArgumentMalformedException? to be
thrown.

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • trunk/src/java/org/jcoderz/commons/LogMessageInfoImpl.java

    r1011 r1085  
    150150   public final StringBuffer formatMessage (Map parameters, StringBuffer buffer) 
    151151   { 
    152       final MessageFormat formatter = new MessageFormat(getMessagePattern()); 
    153  
    154       final List parameter = new ArrayList(); 
    155  
    156       if (parameters != null && !getParameterList().isEmpty()) 
    157       { 
    158          final Iterator i = getParameterList().iterator(); 
    159          while (i.hasNext()) 
    160          { 
    161             final String parameterName = (String) i.next(); 
    162             final List parameterValues = (List) parameters.get(parameterName); 
    163             if (parameterValues == null || parameterValues.isEmpty()) 
    164             { 
    165                parameter.add(null); 
    166             } 
    167             else 
    168             { 
    169                parameter.add(parameterValues.get(0)); 
    170             } 
    171          } 
    172       } 
    173  
    174       return formatter.format(parameter.toArray(), 
    175             buffer != null ? buffer : new StringBuffer(), null); 
     152       final StringBuffer result 
     153           = buffer != null ? buffer : new StringBuffer(); 
     154       try 
     155       { 
     156          final MessageFormat formatter = new MessageFormat(getMessagePattern()); 
     157 
     158          final List parameter = new ArrayList(); 
     159 
     160          if (parameters != null && !getParameterList().isEmpty()) 
     161          { 
     162             final Iterator i = getParameterList().iterator(); 
     163             while (i.hasNext()) 
     164             { 
     165                final String parameterName = (String) i.next(); 
     166                final List parameterValues = (List) parameters.get(parameterName); 
     167                if (parameterValues == null || parameterValues.isEmpty()) 
     168                { 
     169                   parameter.add(null); 
     170                } 
     171                else 
     172                { 
     173                   parameter.add(parameterValues.get(0)); 
     174                } 
     175             } 
     176          } 
     177          formatter.format(parameter.toArray(), result, null); 
     178       } 
     179       // could be caused by invalid message format! 
     180       catch (Exception ex) 
     181       { 
     182           result.append(getParameterList()); 
     183           result.append(' '); 
     184           result.append(getMessagePattern()); 
     185       } 
     186      return result; 
    176187   } 
    177188