Author: ravn
Date: Sat Dec 27 22:35:01 2008
New Revision: 1262

Modified:
   slf4j/trunk/slf4j-ext/src/main/java/org/slf4j/agent/AgentPremain.java
   
slf4j/trunk/slf4j-ext/src/main/java/org/slf4j/instrumentation/ToStringHelper.java

Log:
accidentially used MessageFormatter in agent, that code is not visible there

Modified: slf4j/trunk/slf4j-ext/src/main/java/org/slf4j/agent/AgentPremain.java
==============================================================================
--- slf4j/trunk/slf4j-ext/src/main/java/org/slf4j/agent/AgentPremain.java       
(original)
+++ slf4j/trunk/slf4j-ext/src/main/java/org/slf4j/agent/AgentPremain.java       
Sat Dec 27 22:35:01 2008
@@ -1,7 +1,5 @@
 package org.slf4j.agent;
 
-import static org.slf4j.helpers.MessageFormatter.format;
-
 import java.io.ByteArrayInputStream;
 import java.io.IOException;
 import java.lang.instrument.Instrumentation;
@@ -16,92 +14,94 @@
  */
 public class AgentPremain {
 
-  private static final String START_MSG = "Start at {}";
-  private static final String STOP_MSG = "Stop at {}, execution time = {} ms";
-
-  /**
-   * JavaAgent premain entry point as specified in the MANIFEST.MF file. See
-   * {...@link 
http://java.sun.com/javase/6/docs/api/java/lang/instrument/package-summary.html}
-   *  for details.
-   * 
-   * @param agentArgument
-   *          string provided after "=" up to first space
-   * @param instrumentation
-   *          instrumentation environment provided by the JVM
-   */
-  public static void premain(String agentArgument,
-      Instrumentation instrumentation) {
-
-    LogTransformer.Builder builder = new LogTransformer.Builder();
-    builder = builder.addEntryExit(true);
-
-    if (agentArgument != null) {
-      Properties args = parseArguments(agentArgument, ",");
-
-      if (args.containsKey(AgentOptions.VERBOSE)) {
-        builder = builder.verbose(true);
-      }
-
-      if (args.containsKey(AgentOptions.TIME)) {
-        printStartStopTimes();
-      }
-
-      if (args.containsKey(AgentOptions.IGNORE)) {
-        String ignore = args.getProperty(AgentOptions.IGNORE);
-        builder = builder.ignore(ignore.split(":"));
-      }
-
-      if (args.containsKey(AgentOptions.LEVEL)) {
-        builder = builder.level(args.getProperty(AgentOptions.LEVEL));
-      }
-    }
-
-    instrumentation.addTransformer(builder.build());
-  }
-
-  /**
-   * Consider the argument string to be a property file (by converting the
-   * splitter character to line feeds), and then reading it like any other
-   * property file.
-   * 
-   * 
-   * @param agentArgument
-   *          string given by instrumentation framework
-   * @param separator
-   *          String to convert to line feeds
-   * @return argument converted to properties
-   */
-  private static Properties parseArguments(String agentArgument,
-      String separator) {
-    Properties p = new Properties();
-    try {
-      String argumentAsLines = agentArgument.replaceAll(separator, "\n");
-      p.load(new ByteArrayInputStream(argumentAsLines.getBytes()));
-    } catch (IOException e) {
-      String s = "Could not load arguments as properties";
-      throw new RuntimeException(s, e);
-    }
-    return p;
-  }
-
-  /**
-   * Print the start message to System.err with the time NOW, and register a
-   * shutdown hook which will print the stop message to System.err with the 
time
-   * then and the number of milliseconds passed since.
-   * 
-   */
-  private static void printStartStopTimes() {
-    final long start = System.currentTimeMillis();
-    System.err.println(format(START_MSG, new Date()));
-
-    Thread hook = new Thread() {
-      @Override
-      public void run() {
-        long timePassed = System.currentTimeMillis() - start;
-        String message = format(STOP_MSG, new Date(), timePassed);
-        System.err.println(message);
-      }
-    };
-    Runtime.getRuntime().addShutdownHook(hook);
-  }
+       /**
+        * JavaAgent premain entry point as specified in the MANIFEST.MF file. 
See
+        * {...@link http
+        * ://java.sun.com/javase/6/docs/api/java/lang/instrument/package-
+        * summary.html} for details.
+        * 
+        * @param agentArgument
+        *            string provided after "=" up to first space
+        * @param instrumentation
+        *            instrumentation environment provided by the JVM
+        */
+       public static void premain(String agentArgument,
+                       Instrumentation instrumentation) {
+
+               // We cannot do sanity checks for slf4j here as the jars loaded
+               // by the application are not visible here.
+
+               LogTransformer.Builder builder = new LogTransformer.Builder();
+               builder = builder.addEntryExit(true);
+
+               if (agentArgument != null) {
+                       Properties args = parseArguments(agentArgument, ",");
+
+                       if (args.containsKey(AgentOptions.VERBOSE)) {
+                               builder = builder.verbose(true);
+                       }
+
+                       if (args.containsKey(AgentOptions.TIME)) {
+                               printStartStopTimes();
+                       }
+
+                       if (args.containsKey(AgentOptions.IGNORE)) {
+                               String ignore = 
args.getProperty(AgentOptions.IGNORE);
+                               builder = builder.ignore(ignore.split(":"));
+                       }
+
+                       if (args.containsKey(AgentOptions.LEVEL)) {
+                               builder = 
builder.level(args.getProperty(AgentOptions.LEVEL));
+                       }
+               }
+
+               instrumentation.addTransformer(builder.build());
+       }
+
+       /**
+        * Consider the argument string to be a property file (by converting the
+        * splitter character to line feeds), and then reading it like any other
+        * property file.
+        * 
+        * 
+        * @param agentArgument
+        *            string given by instrumentation framework
+        * @param separator
+        *            String to convert to line feeds
+        * @return argument converted to properties
+        */
+       private static Properties parseArguments(String agentArgument,
+                       String separator) {
+               Properties p = new Properties();
+               try {
+                       String argumentAsLines = 
agentArgument.replaceAll(separator, "\n");
+                       p.load(new 
ByteArrayInputStream(argumentAsLines.getBytes()));
+               } catch (IOException e) {
+                       String s = "Could not load arguments as properties";
+                       throw new RuntimeException(s, e);
+               }
+               return p;
+       }
+
+       /**
+        * Print the start message to System.err with the time NOW, and 
register a
+        * shutdown hook which will print the stop message to System.err with 
the
+        * time then and the number of milliseconds passed since.
+        * 
+        */
+       private static void printStartStopTimes() {
+               final long start = System.currentTimeMillis();
+
+               System.err.println("Start at " + new Date());
+
+               Thread hook = new Thread() {
+                       @Override
+                       public void run() {
+                               long timePassed = System.currentTimeMillis() - 
start;
+                               System.err.println("Stop at " + new Date()
+                                               + ", execution time = " + 
timePassed + " ms");
+                       }
+               };
+               Runtime.getRuntime().addShutdownHook(hook);
+       }
 }
\ No newline at end of file

Modified: 
slf4j/trunk/slf4j-ext/src/main/java/org/slf4j/instrumentation/ToStringHelper.java
==============================================================================
--- 
slf4j/trunk/slf4j-ext/src/main/java/org/slf4j/instrumentation/ToStringHelper.java
   (original)
+++ 
slf4j/trunk/slf4j-ext/src/main/java/org/slf4j/instrumentation/ToStringHelper.java
   Sat Dec 27 22:35:01 2008
@@ -32,7 +32,7 @@
         * System.currentTimeMilis when an instance of the class failed to 
render.
         */
 
-       final static Map<Class, Object> unrenderableClasses = new 
WeakHashMap<Class, Object>();
+       final static Map<Class<?>, Object> unrenderableClasses = new 
WeakHashMap<Class<?>, Object>();
 
        /**
         * Returns o.toString() unless it throws an exception (which causes it 
to be
@@ -48,7 +48,7 @@
                if (o == null) {
                        return String.valueOf(o);
                }
-               Class objectClass = o.getClass();
+               Class<?> objectClass = o.getClass();
                if (unrenderableClasses.containsKey(objectClass) == false) {
                        try {
                                if (objectClass.isArray()) {
@@ -58,6 +58,8 @@
                                }
                        } catch (Exception e) {
                                Long now = new Long(System.currentTimeMillis());
+                               System.err.println("Disabling exception 
throwing class "
+                                               + objectClass.getName() + ", " 
+ e.getMessage());
                                unrenderableClasses.put(objectClass, now);
                        }
                }
@@ -74,8 +76,8 @@
         * @param objectClass
         * @return
         */
-       private static StringBuffer renderArray(Object o, Class objectClass) {
-               Class componentType = objectClass.getComponentType();
+       private static StringBuffer renderArray(Object o, Class<?> objectClass) 
{
+               Class<?> componentType = objectClass.getComponentType();
                StringBuffer sb = new StringBuffer(ARRAY_PREFIX);
 
                if (componentType.isPrimitive() == false) {
_______________________________________________
dev mailing list
dev@slf4j.org
http://www.slf4j.org/mailman/listinfo/dev

Reply via email to