|
@@ -22,6 +22,8 @@ import java.io.InputStream;
|
|
|
|
|
|
import org.apache.hadoop.classification.InterfaceAudience;
|
|
|
import org.apache.hadoop.classification.InterfaceStability;
|
|
|
+import org.slf4j.Logger;
|
|
|
+import org.slf4j.LoggerFactory;
|
|
|
|
|
|
/**
|
|
|
* Static methods to implement policies for {@link StreamCapabilities}.
|
|
@@ -29,6 +31,10 @@ import org.apache.hadoop.classification.InterfaceStability;
|
|
|
@InterfaceAudience.Public
|
|
|
@InterfaceStability.Evolving
|
|
|
public class StreamCapabilitiesPolicy {
|
|
|
+ public static final String CAN_UNBUFFER_NOT_IMPLEMENTED_MESSAGE =
|
|
|
+ "claims unbuffer capabilty but does not implement CanUnbuffer";
|
|
|
+ static final Logger LOG = LoggerFactory.getLogger(
|
|
|
+ StreamCapabilitiesPolicy.class);
|
|
|
/**
|
|
|
* Implement the policy for {@link CanUnbuffer#unbuffer()}.
|
|
|
*
|
|
@@ -40,11 +46,14 @@ public class StreamCapabilitiesPolicy {
|
|
|
&& ((StreamCapabilities) in).hasCapability(
|
|
|
StreamCapabilities.UNBUFFER)) {
|
|
|
((CanUnbuffer) in).unbuffer();
|
|
|
+ } else {
|
|
|
+ LOG.debug(in.getClass().getName() + ":"
|
|
|
+ + " does not implement StreamCapabilities"
|
|
|
+ + " and the unbuffer capability");
|
|
|
}
|
|
|
} catch (ClassCastException e) {
|
|
|
- throw new UnsupportedOperationException("this stream " +
|
|
|
- in.getClass().getName() +
|
|
|
- " claims to unbuffer but forgets to implement CanUnbuffer");
|
|
|
+ throw new UnsupportedOperationException(in.getClass().getName() + ": "
|
|
|
+ + CAN_UNBUFFER_NOT_IMPLEMENTED_MESSAGE);
|
|
|
}
|
|
|
}
|
|
|
}
|