JMS message listener invoker failed, Cause: Identifier contains invalid JMS identifier character '-': 'x-request-id'

Section 3.5.1 of the JMS 2 specification states this about message properties:

Property names must obey the rules for a message selector identifier. See Section 3.8 “Message selection” for more information.

In regards to identifiers, section 3.8.1.1 states, in part:

An identifier is an unlimited-length character sequence that must begin with a Java identifier start character; all following characters must be Java identifier part characters. An identifier start character is any character for which the method Character.isJavaIdentifierStart returns true. This includes '_' and '$'. An identifier part character is any character for which the method Character.isJavaIdentifierPart returns true.

If you pass the character - into either Character.isJavaIdentifierStart or Character.isJavaIdentifierPart the return value is false. In other words, the - character in the name of a message property violates the JMS specification and therefore will cause an error.