You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@logging.apache.org by rg...@apache.org on 2012/08/08 08:28:56 UTC
svn commit: r1370673 - in /logging/log4j/log4j2/trunk:
core/src/main/java/org/apache/logging/log4j/core/appender/
core/src/main/java/org/apache/logging/log4j/core/appender/rolling/
core/src/main/java/org/apache/logging/log4j/core/impl/ core/src/main/ja...
Author: rgoers
Date: Wed Aug 8 06:28:55 2012
New Revision: 1370673
URL: http://svn.apache.org/viewvc?rev=1370673&view=rev
Log:
Fix Log4J2-64 - Fix compilation errors under Java 7
Modified:
logging/log4j/log4j2/trunk/core/src/main/java/org/apache/logging/log4j/core/appender/AbstractManager.java
logging/log4j/log4j2/trunk/core/src/main/java/org/apache/logging/log4j/core/appender/ConsoleAppender.java
logging/log4j/log4j2/trunk/core/src/main/java/org/apache/logging/log4j/core/appender/FileManager.java
logging/log4j/log4j2/trunk/core/src/main/java/org/apache/logging/log4j/core/appender/OutputStreamManager.java
logging/log4j/log4j2/trunk/core/src/main/java/org/apache/logging/log4j/core/appender/rolling/RollingFileManager.java
logging/log4j/log4j2/trunk/core/src/main/java/org/apache/logging/log4j/core/impl/ThrowableProxy.java
logging/log4j/log4j2/trunk/core/src/main/java/org/apache/logging/log4j/core/net/DatagramSocketManager.java
logging/log4j/log4j2/trunk/core/src/main/java/org/apache/logging/log4j/core/net/TCPSocketManager.java
logging/log4j/log4j2/trunk/flume-ng/src/main/java/org/apache/logging/log4j/flume/appender/FlumeAvroAppender.java
logging/log4j/log4j2/trunk/src/changes/changes.xml
Modified: logging/log4j/log4j2/trunk/core/src/main/java/org/apache/logging/log4j/core/appender/AbstractManager.java
URL: http://svn.apache.org/viewvc/logging/log4j/log4j2/trunk/core/src/main/java/org/apache/logging/log4j/core/appender/AbstractManager.java?rev=1370673&r1=1370672&r2=1370673&view=diff
==============================================================================
--- logging/log4j/log4j2/trunk/core/src/main/java/org/apache/logging/log4j/core/appender/AbstractManager.java (original)
+++ logging/log4j/log4j2/trunk/core/src/main/java/org/apache/logging/log4j/core/appender/AbstractManager.java Wed Aug 8 06:28:55 2012
@@ -42,7 +42,7 @@ public abstract class AbstractManager {
private String name;
- private int count;
+ protected int count;
protected AbstractManager(String name) {
this.name = name;
Modified: logging/log4j/log4j2/trunk/core/src/main/java/org/apache/logging/log4j/core/appender/ConsoleAppender.java
URL: http://svn.apache.org/viewvc/logging/log4j/log4j2/trunk/core/src/main/java/org/apache/logging/log4j/core/appender/ConsoleAppender.java?rev=1370673&r1=1370672&r2=1370673&view=diff
==============================================================================
--- logging/log4j/log4j2/trunk/core/src/main/java/org/apache/logging/log4j/core/appender/ConsoleAppender.java (original)
+++ logging/log4j/log4j2/trunk/core/src/main/java/org/apache/logging/log4j/core/appender/ConsoleAppender.java Wed Aug 8 06:28:55 2012
@@ -87,8 +87,8 @@ public final class ConsoleAppender exten
private static OutputStreamManager getManager(Target target) {
String type = target.name();
OutputStream os = target == Target.SYSTEM_OUT ? System.out : System.err;
- OutputStreamManager manager = OutputStreamManager.getManager(target.name(), factory,
- new FactoryData(os, type));
+ OutputStreamManager manager = OutputStreamManager.getManager(target.name(), new FactoryData(os, type), factory
+ );
return manager;
}
Modified: logging/log4j/log4j2/trunk/core/src/main/java/org/apache/logging/log4j/core/appender/FileManager.java
URL: http://svn.apache.org/viewvc/logging/log4j/log4j2/trunk/core/src/main/java/org/apache/logging/log4j/core/appender/FileManager.java?rev=1370673&r1=1370672&r2=1370673&view=diff
==============================================================================
--- logging/log4j/log4j2/trunk/core/src/main/java/org/apache/logging/log4j/core/appender/FileManager.java (original)
+++ logging/log4j/log4j2/trunk/core/src/main/java/org/apache/logging/log4j/core/appender/FileManager.java Wed Aug 8 06:28:55 2012
@@ -55,7 +55,7 @@ public class FileManager extends OutputS
if (locking && bufferedIO) {
locking = false;
}
- return (FileManager) getManager(fileName, factory, new FactoryData(append, locking, bufferedIO));
+ return (FileManager) getManager(fileName, new FactoryData(append, locking, bufferedIO), factory);
}
protected synchronized void write(byte[] bytes, int offset, int length) {
Modified: logging/log4j/log4j2/trunk/core/src/main/java/org/apache/logging/log4j/core/appender/OutputStreamManager.java
URL: http://svn.apache.org/viewvc/logging/log4j/log4j2/trunk/core/src/main/java/org/apache/logging/log4j/core/appender/OutputStreamManager.java?rev=1370673&r1=1370672&r2=1370673&view=diff
==============================================================================
--- logging/log4j/log4j2/trunk/core/src/main/java/org/apache/logging/log4j/core/appender/OutputStreamManager.java (original)
+++ logging/log4j/log4j2/trunk/core/src/main/java/org/apache/logging/log4j/core/appender/OutputStreamManager.java Wed Aug 8 06:28:55 2012
@@ -36,13 +36,14 @@ public class OutputStreamManager extends
/**
* Create a Manager.
+ *
* @param name The name of the stream to manage.
- * @param factory The factory to use to create the Manager.
* @param data The data to pass to the Manager.
+ * @param factory The factory to use to create the Manager.
* @return An OutputStreamManager.
*/
- public static OutputStreamManager getManager(String name, ManagerFactory<OutputStreamManager, Object> factory,
- Object data) {
+ public static OutputStreamManager getManager(String name, Object data,
+ ManagerFactory<OutputStreamManager, Object> factory) {
return AbstractManager.getManager(name, factory, data);
}
Modified: logging/log4j/log4j2/trunk/core/src/main/java/org/apache/logging/log4j/core/appender/rolling/RollingFileManager.java
URL: http://svn.apache.org/viewvc/logging/log4j/log4j2/trunk/core/src/main/java/org/apache/logging/log4j/core/appender/rolling/RollingFileManager.java?rev=1370673&r1=1370672&r2=1370673&view=diff
==============================================================================
--- logging/log4j/log4j2/trunk/core/src/main/java/org/apache/logging/log4j/core/appender/rolling/RollingFileManager.java (original)
+++ logging/log4j/log4j2/trunk/core/src/main/java/org/apache/logging/log4j/core/appender/rolling/RollingFileManager.java Wed Aug 8 06:28:55 2012
@@ -61,8 +61,8 @@ public class RollingFileManager extends
public static RollingFileManager getFileManager(String fileName, String pattern, boolean append,
boolean bufferedIO) {
- return (RollingFileManager) getManager(fileName, factory, new FactoryData(pattern, append,
- bufferedIO));
+ return (RollingFileManager) getManager(fileName, new FactoryData(pattern, append,
+ bufferedIO), factory);
}
protected synchronized void write(byte[] bytes, int offset, int length) {
Modified: logging/log4j/log4j2/trunk/core/src/main/java/org/apache/logging/log4j/core/impl/ThrowableProxy.java
URL: http://svn.apache.org/viewvc/logging/log4j/log4j2/trunk/core/src/main/java/org/apache/logging/log4j/core/impl/ThrowableProxy.java?rev=1370673&r1=1370672&r2=1370673&view=diff
==============================================================================
--- logging/log4j/log4j2/trunk/core/src/main/java/org/apache/logging/log4j/core/impl/ThrowableProxy.java (original)
+++ logging/log4j/log4j2/trunk/core/src/main/java/org/apache/logging/log4j/core/impl/ThrowableProxy.java Wed Aug 8 06:28:55 2012
@@ -43,10 +43,10 @@ public class ThrowableProxy extends Thro
private static final org.apache.logging.log4j.Logger LOGGER = StatusLogger.getLogger();
private static Method getSuppressed;
+ private static Method addSuppressed;
private final Throwable throwable;
private final ThrowableProxy cause;
- private final ThrowableProxy[] suppressed;
private int commonElementCount;
private final StackTracePackageElement[] callerPackageData;
@@ -68,7 +68,7 @@ public class ThrowableProxy extends Thro
callerPackageData = resolvePackageData(stack, map, null, throwable.getStackTrace());
this.cause = (throwable.getCause() == null) ? null :
new ThrowableProxy(throwable, stack, map, throwable.getCause());
- suppressed = getSuppressed(throwable);
+ setSuppressed(throwable);
}
/**
@@ -84,7 +84,7 @@ public class ThrowableProxy extends Thro
callerPackageData = resolvePackageData(stack, map, parent.getStackTrace(), cause.getStackTrace());
this.cause = (throwable.getCause() == null) ? null :
new ThrowableProxy(parent, stack, map, throwable.getCause());
- suppressed = getSuppressed(throwable);
+ setSuppressed(throwable);
}
@@ -108,22 +108,6 @@ public class ThrowableProxy extends Thro
return cause;
}
- /**
- * Added in Java 7.
- * @param exception A Throwable that was suppressed.
- */
- public void addSuppressed(Throwable exception) {
- throw new UnsupportedOperationException("Cannot add suppressed exceptions to a ThrowableProxy");
- }
-
- /**
- * Added in Java 7.
- * @return Any suppressed exceptions.
- */
- public Throwable[] getSuppressed() {
- return suppressed;
- }
-
@Override
public Throwable initCause(Throwable throwable) {
throw new IllegalStateException("Cannot set the cause on a ThrowableProxy");
@@ -209,6 +193,7 @@ public class ThrowableProxy extends Thro
* @return The formatted suppressed Throwables.
*/
public String getSuppressedStackTrace() {
+ ThrowableProxy[] suppressed = getSuppressedProxies();
if (suppressed == null || suppressed.length == 0) {
return "";
}
@@ -427,6 +412,8 @@ public class ThrowableProxy extends Thro
for (Method method : methods) {
if (method.getName().equals("getSuppressed")) {
getSuppressed = method;
+ } else if (method.getName().equals("addSuppressed")) {
+ addSuppressed = method;
}
}
}
@@ -463,22 +450,29 @@ public class ThrowableProxy extends Thro
}
}
- private ThrowableProxy[] getSuppressed(Throwable throwable) {
- ThrowableProxy[] supp = null;
+ private ThrowableProxy[] getSuppressedProxies() {
if (getSuppressed != null) {
try {
+ return (ThrowableProxy[]) getSuppressed.invoke(this, null);
+ } catch (Exception ex) {
+ return null;
+ }
+ }
+ return null;
+ }
+
+ private void setSuppressed(Throwable throwable) {
+ if (getSuppressed != null && addSuppressed != null) {
+ try {
Throwable[] array = (Throwable[]) getSuppressed.invoke(throwable, null);
- supp = new ThrowableProxy[array.length];
int i = 0;
for (Throwable t : array) {
- supp[i] = new ThrowableProxy(t);
- ++i;
+ addSuppressed.invoke(this, new ThrowableProxy(t));
}
} catch (Exception ex) {
//
}
}
- return supp;
}
/**
Modified: logging/log4j/log4j2/trunk/core/src/main/java/org/apache/logging/log4j/core/net/DatagramSocketManager.java
URL: http://svn.apache.org/viewvc/logging/log4j/log4j2/trunk/core/src/main/java/org/apache/logging/log4j/core/net/DatagramSocketManager.java?rev=1370673&r1=1370672&r2=1370673&view=diff
==============================================================================
--- logging/log4j/log4j2/trunk/core/src/main/java/org/apache/logging/log4j/core/net/DatagramSocketManager.java (original)
+++ logging/log4j/log4j2/trunk/core/src/main/java/org/apache/logging/log4j/core/net/DatagramSocketManager.java Wed Aug 8 06:28:55 2012
@@ -51,8 +51,8 @@ public class DatagramSocketManager exten
if (port <= 0) {
throw new IllegalArgumentException("A port value is required");
}
- return (DatagramSocketManager) getManager("UDP:" + host + ":" + port, factory,
- new FactoryData(host, port));
+ return (DatagramSocketManager) getManager("UDP:" + host + ":" + port, new FactoryData(host, port), factory
+ );
}
/**
Modified: logging/log4j/log4j2/trunk/core/src/main/java/org/apache/logging/log4j/core/net/TCPSocketManager.java
URL: http://svn.apache.org/viewvc/logging/log4j/log4j2/trunk/core/src/main/java/org/apache/logging/log4j/core/net/TCPSocketManager.java?rev=1370673&r1=1370672&r2=1370673&view=diff
==============================================================================
--- logging/log4j/log4j2/trunk/core/src/main/java/org/apache/logging/log4j/core/net/TCPSocketManager.java (original)
+++ logging/log4j/log4j2/trunk/core/src/main/java/org/apache/logging/log4j/core/net/TCPSocketManager.java Wed Aug 8 06:28:55 2012
@@ -85,7 +85,7 @@ public class TCPSocketManager extends Ab
if (delay == 0) {
delay = DEFAULT_RECONNECTION_DELAY;
}
- return (TCPSocketManager) getManager("TCP:" + host + ":" + port, factory, new FactoryData(host, port, delay));
+ return (TCPSocketManager) getManager("TCP:" + host + ":" + port, new FactoryData(host, port, delay), factory);
}
@Override
Modified: logging/log4j/log4j2/trunk/flume-ng/src/main/java/org/apache/logging/log4j/flume/appender/FlumeAvroAppender.java
URL: http://svn.apache.org/viewvc/logging/log4j/log4j2/trunk/flume-ng/src/main/java/org/apache/logging/log4j/flume/appender/FlumeAvroAppender.java?rev=1370673&r1=1370672&r2=1370673&view=diff
==============================================================================
--- logging/log4j/log4j2/trunk/flume-ng/src/main/java/org/apache/logging/log4j/flume/appender/FlumeAvroAppender.java (original)
+++ logging/log4j/log4j2/trunk/flume-ng/src/main/java/org/apache/logging/log4j/flume/appender/FlumeAvroAppender.java Wed Aug 8 06:28:55 2012
@@ -27,6 +27,10 @@ import org.apache.logging.log4j.core.con
import org.apache.logging.log4j.core.layout.RFC5424Layout;
import java.net.InetAddress;
+import java.net.NetworkInterface;
+import java.net.SocketException;
+import java.net.UnknownHostException;
+import java.util.Enumeration;
/**
* An Appender that uses the Avro protocol to route events to Flume.
@@ -145,7 +149,7 @@ public final class FlumeAvroAppender ext
String hostname;
try {
- hostname = InetAddress.getLocalHost().getHostName();
+ hostname = getHostName();
} catch (Exception ex) {
LOGGER.error("Unable to determine local hostname", ex);
return null;
@@ -180,4 +184,29 @@ public final class FlumeAvroAppender ext
return new FlumeAvroAppender(name, filter, layout, handleExceptions, hostname, includes,
excludes, required, mdcPrefix, eventPrefix, compress, reconnectDelay, retries, factory, manager);
}
+
+ private static String getHostName() throws Exception {
+ try {
+ return InetAddress.getLocalHost().getHostName();
+ } catch (Exception ex) {
+ // Could not locate host the easy way.
+ }
+
+ Enumeration<NetworkInterface> interfaces = NetworkInterface.getNetworkInterfaces();
+ while (interfaces.hasMoreElements()) {
+ NetworkInterface nic = interfaces.nextElement();
+ Enumeration<InetAddress> addresses = nic.getInetAddresses();
+ while (addresses.hasMoreElements()) {
+ InetAddress address = addresses.nextElement();
+ if (!address.isLoopbackAddress()) {
+ String hostname = address.getHostName();
+ if (hostname != null) {
+ return hostname;
+ }
+ }
+ }
+ }
+ throw new UnknownHostException("Unable to determine host name");
+
+ }
}
Modified: logging/log4j/log4j2/trunk/src/changes/changes.xml
URL: http://svn.apache.org/viewvc/logging/log4j/log4j2/trunk/src/changes/changes.xml?rev=1370673&r1=1370672&r2=1370673&view=diff
==============================================================================
--- logging/log4j/log4j2/trunk/src/changes/changes.xml (original)
+++ logging/log4j/log4j2/trunk/src/changes/changes.xml Wed Aug 8 06:28:55 2012
@@ -23,7 +23,10 @@
<body>
<release version="2.0-alpha2" date="TBD" description="Bug fixes and minor enhancements">
- <action issue="LOG4J2-65" dev="rgoers">
+ <action issue="LOG4J2-64" dev="rgoers" type="fix">
+ Fix compilation problems in Java 7.
+ </action>
+ <action issue="LOG4J2-65" dev="rgoers" type="fix">
Allow variable substitution on the configuration attributes and on the root log level.
</action>
</release>