@@ -36,8 +36,10 @@ public class ErrorServiceImpl implements ErrorService {
3636 private static final String INVALID_KEY_MESSAGE = "org.zowe.commons.error.invalidMessageKey" ;
3737 private static final String INVALID_MESSAGE_TEXT_FORMAT = "org.zowe.commons.error.invalidMessageTextFormat" ;
3838 private static final Logger LOGGER = LoggerFactory .getLogger (ErrorServiceImpl .class );
39+ private static final int STACK_TRACE_ELEMENT_ABOVE_CREATEAPIMESSAGE_METHOD = 3 ;
3940
4041 private final ErrorMessageStorage messageStorage ;
42+ private String defaultMessageSource ;
4143
4244 /**
4345 * Constructor that creates only common messages.
@@ -103,6 +105,16 @@ public void loadMessages(String messagesFilePath) {
103105 }
104106 }
105107
108+ @ Override
109+ public String getDefaultMessageSource () {
110+ return defaultMessageSource ;
111+ }
112+
113+ @ Override
114+ public void setDefaultMessageSource (String defaultMessageSource ) {
115+ this .defaultMessageSource = defaultMessageSource ;
116+ }
117+
106118 /**
107119 * Internal method that call {@link ErrorMessageStorage} to get message by key.
108120 *
@@ -125,8 +137,13 @@ private Message createMessage(String key, Object... parameters) {
125137 messageParameters = validateParameters (message , key , parameters );
126138 text = String .format (message .getText (), messageParameters );
127139 }
128-
129- return new BasicMessage (key , message .getType (), message .getNumber (), text );
140+ if (message .getComponent () == null ) {
141+ StackTraceElement [] stackTrace = Thread .currentThread ().getStackTrace ();
142+ String className = stackTrace [STACK_TRACE_ELEMENT_ABOVE_CREATEAPIMESSAGE_METHOD ].getClassName ();
143+ message .setComponent (className );
144+ }
145+ return new BasicMessage (message .getType (), message .getNumber (), text , message .getReason (), message .getAction (),
146+ key , null , BasicMessage .generateMessageInstanceId (), defaultMessageSource , message .getComponent ());
130147 }
131148
132149 /**
@@ -146,7 +163,7 @@ private ErrorMessage validateMessage(ErrorMessage message, String key) {
146163
147164 if (message == null ) {
148165 String text = "Internal error: Invalid message key '%s' provided. No default message found. Please contact support of further assistance." ;
149- message = new ErrorMessage (INVALID_KEY_MESSAGE , "ZWEAS001" , MessageType .ERROR , text );
166+ message = new ErrorMessage (INVALID_KEY_MESSAGE , "ZWEAS001" , MessageType .ERROR , text , null , null , null );
150167 }
151168
152169 return message ;
0 commit comments