Преглед на файлове

Merge "BaseReceivePack: null and IllegalStateException cases for getPushOptions"

tags/v4.5.0.201609210915-r
Jonathan Nieder преди 7 години
родител
ревизия
ca2bf6fc18
променени са 1 файла, в които са добавени 19 реда и са изтрити 3 реда
  1. 19
    3
      org.eclipse.jgit/src/org/eclipse/jgit/transport/BaseReceivePack.java

+ 19
- 3
org.eclipse.jgit/src/org/eclipse/jgit/transport/BaseReceivePack.java Целия файл

@@ -69,6 +69,7 @@ import java.util.Map;
import java.util.Set;
import java.util.concurrent.TimeUnit;

import org.eclipse.jgit.annotations.Nullable;
import org.eclipse.jgit.errors.InvalidObjectIdException;
import org.eclipse.jgit.errors.MissingObjectException;
import org.eclipse.jgit.errors.PackProtocolException;
@@ -845,9 +846,11 @@ public abstract class BaseReceivePack {
}

/**
* Gets the list of string options associated with this push.
* Gets an unmodifiable view of the option strings associated with the push.
*
* @return pushOptions
* @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
@@ -855,10 +858,23 @@ public abstract class BaseReceivePack {
* been read.
* @since 4.5
*/
public List<String> getPushOptions() throws RequestNotYetReadException {
@Nullable
public List<String> getPushOptions() {
if (!allowPushOptions) {
// Reading push options without a prior setAllowPushOptions(true)
// call doesn't make sense.
throw new IllegalStateException();
}
if (enabledCapabilities == null) {
// Push options are not available until receive() has been called.
throw new RequestNotYetReadException();
}
if (pushOptions == null) {
// The client doesn't support push options. Return null to
// distinguish this from the case where the client declared support
// for push options and sent an empty list of them.
return null;
}
return Collections.unmodifiableList(pushOptions);
}


Loading…
Отказ
Запис