int lineNumber = stackTrace[stackDepth].getLineNumber();\r
String methodName = stackTrace[stackDepth].getMethodName();\r
String location = locator == null ? " - no locator - " : "l." + locator.getLineNumber() + "/c."+ locator.getColumnNumber();\r
- IoProblemEvent event = IoProblemEvent.NewInstance(this.getClass(), message, \r
+ String className = stackTrace[stackDepth].getClassName();\r
+ Class<?> declaringClass;\r
+ try {\r
+ declaringClass = Class.forName(className);\r
+ } catch (ClassNotFoundException e) {\r
+ declaringClass = this.getClass();\r
+ }\r
+ \r
+ IoProblemEvent event = IoProblemEvent.NewInstance(declaringClass, message, \r
location, lineNumber, severity, methodName);\r
return event;\r
}\r
StackTraceElement[] stackTrace = new Exception().getStackTrace();\r
int lineNumber = stackTrace[stackDepth].getLineNumber();\r
String methodName = stackTrace[stackDepth].getMethodName();\r
-\r
- IoProblemEvent event = IoProblemEvent.NewInstance(this.getClass(), message, dataLocation, \r
+ String className = stackTrace[stackDepth].getClassName();\r
+ Class<?> declaringClass;\r
+ try {\r
+ declaringClass = Class.forName(className);\r
+ } catch (ClassNotFoundException e) {\r
+ declaringClass = this.getClass();\r
+ }\r
+ \r
+ IoProblemEvent event = IoProblemEvent.NewInstance(declaringClass, message, dataLocation, \r
lineNumber, severity, methodName);\r
\r
//for performance improvement one may read:\r