diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/transport/ReceivePack.java b/org.eclipse.jgit/src/org/eclipse/jgit/transport/ReceivePack.java index 842c2d062..cea004b51 100644 --- a/org.eclipse.jgit/src/org/eclipse/jgit/transport/ReceivePack.java +++ b/org.eclipse.jgit/src/org/eclipse/jgit/transport/ReceivePack.java @@ -98,11 +98,6 @@ public class ReceivePack extends BaseReceivePack { * @return an unmodifiable view of pushOptions, or null (if pushOptions is). * @throws IllegalStateException * if allowPushOptions has not been set to true. - * @throws RequestNotYetReadException - * if the client's request has not yet been read from the wire, - * so we do not know if they expect push options. Note that the - * client may have already written the request, it just has not - * been read. * @since 4.5 */ @Nullable @@ -112,7 +107,6 @@ public class ReceivePack extends BaseReceivePack { // call doesn't make sense. throw new IllegalStateException(); } - checkRequestWasRead(); if (!usePushOptions) { // The client doesn't support push options. Return null to // distinguish this from the case where the client declared support @@ -122,6 +116,24 @@ public class ReceivePack extends BaseReceivePack { return Collections.unmodifiableList(pushOptions); } + /** + * Set the push options supplied by the client. + *
+ * Should only be called if reconstructing an instance without going through
+ * the normal {@link #recvCommands()} flow.
+ *
+ * @param options
+ * the list of options supplied by the client. The
+ * {@code ReceivePack} instance takes ownership of this list.
+ * Callers are encouraged to first create a copy if the list may
+ * be modified later.
+ * @since 4.5
+ */
+ public void setPushOptions(@Nullable List