You are viewing a plain text version of this content. The canonical link for it is here.
Posted to log4j-dev@logging.apache.org by sd...@apache.org on 2005/02/08 15:31:35 UTC

cvs commit: logging-log4j/src/java/org/apache/log4j/net MulticastAppender.java UDPAppender.java

sdeboy      2005/02/08 06:31:35

  Modified:    src/java/org/apache/log4j/net MulticastAppender.java
                        UDPAppender.java
  Log:
  Applied patch to correct UDPAppender (and MulticastAppender) encoding bug, contributed by heikki.linnakangas@iki.fi
  
  Revision  Changes    Path
  1.10      +9 -5      logging-log4j/src/java/org/apache/log4j/net/MulticastAppender.java
  
  Index: MulticastAppender.java
  ===================================================================
  RCS file: /home/cvs/logging-log4j/src/java/org/apache/log4j/net/MulticastAppender.java,v
  retrieving revision 1.9
  retrieving revision 1.10
  diff -u -r1.9 -r1.10
  --- MulticastAppender.java	6 Jan 2005 17:03:11 -0000	1.9
  +++ MulticastAppender.java	8 Feb 2005 14:31:35 -0000	1.10
  @@ -170,13 +170,17 @@
         }
   
         try {
  -        StringBuffer buf=new StringBuffer(layout.format(event).trim());
  -        if (buf.length() < PACKET_LENGTH) {
  -          buf.append(new char[PACKET_LENGTH - buf.length()]);
  +        StringBuffer buf = new StringBuffer(layout.format(event));
  +
  +        byte[] payload;
  +        if(encoding == null) {
  +          payload = buf.toString().getBytes();
  +        } else {
  +          payload = buf.toString().getBytes(encoding);
           }
  -        //the implementation of string.getBytes accepts a null encoding and uses the system charset
  +
           DatagramPacket dp =
  -          new DatagramPacket(buf.toString().getBytes(encoding), buf.length(), address, port);
  +           new DatagramPacket(payload, payload.length, address, port);
           outSocket.send(dp);
           //remove these properties, in case other appenders need to set them to different values 
           event.setProperty(Constants.HOSTNAME_KEY, null);
  
  
  
  1.11      +8 -2      logging-log4j/src/java/org/apache/log4j/net/UDPAppender.java
  
  Index: UDPAppender.java
  ===================================================================
  RCS file: /home/cvs/logging-log4j/src/java/org/apache/log4j/net/UDPAppender.java,v
  retrieving revision 1.10
  retrieving revision 1.11
  diff -u -r1.10 -r1.11
  --- UDPAppender.java	6 Jan 2005 17:03:11 -0000	1.10
  +++ UDPAppender.java	8 Feb 2005 14:31:35 -0000	1.11
  @@ -204,9 +204,15 @@
           // TODO UDPAppender throws NullPointerException if the layout is not set
           StringBuffer buf = new StringBuffer(layout.format(event));
   
  -        //the implementation of string.getBytes accepts a null encoding and uses the system charset
  +        byte[] payload;
  +        if(encoding == null) {
  +          payload = buf.toString().getBytes();
  +        } else {
  +          payload = buf.toString().getBytes(encoding);
  +        }
  +
           DatagramPacket dp =
  -           new DatagramPacket(buf.toString().getBytes(encoding), buf.length(), address, port);
  +           new DatagramPacket(payload, payload.length, address, port);
           outSocket.send(dp);
           //remove these properties, in case other appenders need to set them to different values 
           event.setProperty(Constants.HOSTNAME_KEY, null);
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: log4j-dev-unsubscribe@logging.apache.org
For additional commands, e-mail: log4j-dev-help@logging.apache.org