summaryrefslogtreecommitdiffstats
path: root/org.eclipse.jgit
diff options
context:
space:
mode:
Diffstat (limited to 'org.eclipse.jgit')
-rw-r--r--org.eclipse.jgit/src/org/eclipse/jgit/transport/ReceivePack.java24
1 files changed, 18 insertions, 6 deletions
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 842c2d0626..cea004b515 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.
+ * <p>
+ * 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<String> options) {
+ usePushOptions = options != null;
+ pushOptions = options;
+ }
+
/** @return the hook invoked before updates occur. */
public PreReceiveHook getPreReceiveHook() {
return preReceive;