code: public static ErrorIQ createErrorResponse(final IQ request, final StanzaError error) {
          return createErrorResponse(request, StanzaError.getBuilder(error));
      }
docs: Convenience method to create a new {@link Type#error IQ.Type.error} IQ
  based on a {@link Type#get IQ.Type.get} or {@link Type#set IQ.Type.set}
  IQ. The new stanza will be initialized with:<ul>
  <li>The sender set to the recipient of the originating IQ.
  <li>The recipient set to the sender of the originating IQ.
  <li>The type set to {@link Type#error IQ.Type.error}.
  <li>The id set to the id of the originating IQ.
  <li>The child element contained in the associated originating IQ.
  <li>The provided {@link StanzaError XMPPError}.
  </ul>
  
  @param request the {@link Type#get IQ.Type.get} or {@link Type#set IQ.Type.set} IQ packet.
  @param error the error to associate with the created IQ packet.
  @throws IllegalArgumentException if the IQ stanza does not have a type of
  {@link Type#get IQ.Type.get} or {@link Type#set IQ.Type.set}.
  @return a new {@link Type#error IQ.Type.error} IQ based on the originating IQ.