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 ) );
}
}