You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directmemory.apache.org by si...@apache.org on 2012/02/24 17:41:03 UTC

svn commit: r1293333 - /incubator/directmemory/trunk/directmemory-cache/src/main/java/org/apache/directmemory/CacheConfiguratorImpl.java

Author: simonetripodi
Date: Fri Feb 24 16:41:03 2012
New Revision: 1293333

URL: http://svn.apache.org/viewvc?rev=1293333&view=rev
Log:
enhanced error messages

Modified:
    incubator/directmemory/trunk/directmemory-cache/src/main/java/org/apache/directmemory/CacheConfiguratorImpl.java

Modified: incubator/directmemory/trunk/directmemory-cache/src/main/java/org/apache/directmemory/CacheConfiguratorImpl.java
URL: http://svn.apache.org/viewvc/incubator/directmemory/trunk/directmemory-cache/src/main/java/org/apache/directmemory/CacheConfiguratorImpl.java?rev=1293333&r1=1293332&r2=1293333&view=diff
==============================================================================
--- incubator/directmemory/trunk/directmemory-cache/src/main/java/org/apache/directmemory/CacheConfiguratorImpl.java (original)
+++ incubator/directmemory/trunk/directmemory-cache/src/main/java/org/apache/directmemory/CacheConfiguratorImpl.java Fri Feb 24 16:41:03 2012
@@ -19,6 +19,8 @@ package org.apache.directmemory;
  * under the License.
  */
 
+import static java.lang.String.format;
+
 import java.io.PrintWriter;
 import java.io.StringWriter;
 import java.util.Formatter;
@@ -82,7 +84,33 @@ final class CacheConfiguratorImpl<K, V>
     {
         if ( !expression )
         {
-            errors.add( new ErrorMessage( errorMessageTemplate, errorMessageArgs ) );
+            Exception exception = new Exception();
+
+            /*
+             * 0 is this method
+             * 1 is the calling method
+             * 2 is the configure() method
+             * 3 is the DirectMemory class
+             * 4 is the implementing class
+             */
+            StackTraceElement methodElement = exception.getStackTrace()[1];
+            StackTraceElement fileElement = exception.getStackTrace()[4];
+            if ( AbstractCacheConfiguration.class.getName().equals( fileElement.getClassName() ) )
+            {
+                /*
+                 * 5 is the DirectMemory class
+                 * 6 is the implementing class
+                 */
+                fileElement = exception.getStackTrace()[6];
+            }
+
+            String enhancedErrorMessage = format( "%s - [CacheConfiguration#%s() - %s:%s]",
+                                                  errorMessageTemplate,
+                                                  methodElement.getMethodName(),
+                                                  fileElement.getFileName(),
+                                                  fileElement.getLineNumber() );
+
+            errors.add( new ErrorMessage( enhancedErrorMessage, errorMessageArgs ) );
         }
     }