private String get_location ()
    {
        final StackTraceElement[] stackTrace = new Throwable ().getStackTrace ();
        for (int i = 2 /* skip this+serviceChanged */; i < stackTrace.length; i++)
        {
            StackTraceElement ste = stackTrace [i];
            String class_name = ste.getClassName ();
            if (!class_name.startsWith ("org.apache.felix.framework.")      // Skip framework (todo: add more fws)
                    && !class_name.equals (this.getClass ().getName ()))    // Skip ourselves
            {
                return (ste.toString ());
            }
        }
        return ("StackTraceElement:Unknown");
    }
private String get_location ()
    {
        final StackTraceElement[] stackTrace = new Throwable ().getStackTrace ();
        for (int i = 2; i < stackTrace.length; i++)
        {
            StackTraceElement ste = stackTrace [i];
            String class_name = ste.getClassName ();
            if (!class_name.startsWith ("org.apache.felix.framework.")     
                    && !class_name.equals (this.getClass ().getName ()))   
            {
                return (ste.toString ());
            }
        }
        return ("StackTraceElement:Unknown");
    }
private string get_location () { final stacktraceelement[] stacktrace = new throwable ().getstacktrace (); for (int i = 2; i < stacktrace.length; i++) { stacktraceelement ste = stacktrace [i]; string class_name = ste.getclassname (); if (!class_name.startswith ("org.apache.felix.framework.") && !class_name.equals (this.getclass ().getname ())) { return (ste.tostring ()); } } return ("stacktraceelement:unknown"); }