You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by jo...@apache.org on 2014/09/30 22:48:40 UTC
[34/35] git commit: AMBARI-7546. Slider View: Creating slider view
should use labels,
queue and log aggregation settings - no log-aggregations fix (srimanth)
AMBARI-7546. Slider View: Creating slider view should use labels, queue and log aggregation settings - no log-aggregations fix (srimanth)
Project: http://git-wip-us.apache.org/repos/asf/ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/753fe29e
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/753fe29e
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/753fe29e
Branch: refs/heads/branch-alerts-dev
Commit: 753fe29e555542208b388086b06537da19e2f635
Parents: 1140528
Author: Srimanth Gunturi <sg...@hortonworks.com>
Authored: Tue Sep 30 13:22:11 2014 -0700
Committer: Srimanth Gunturi <sg...@hortonworks.com>
Committed: Tue Sep 30 13:22:18 2014 -0700
----------------------------------------------------------------------
.../slider/SliderAppsViewControllerImpl.java | 40 +++++++++++++-------
1 file changed, 26 insertions(+), 14 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ambari/blob/753fe29e/contrib/views/slider/src/main/java/org/apache/ambari/view/slider/SliderAppsViewControllerImpl.java
----------------------------------------------------------------------
diff --git a/contrib/views/slider/src/main/java/org/apache/ambari/view/slider/SliderAppsViewControllerImpl.java b/contrib/views/slider/src/main/java/org/apache/ambari/view/slider/SliderAppsViewControllerImpl.java
index eff1359..795d7de 100644
--- a/contrib/views/slider/src/main/java/org/apache/ambari/view/slider/SliderAppsViewControllerImpl.java
+++ b/contrib/views/slider/src/main/java/org/apache/ambari/view/slider/SliderAppsViewControllerImpl.java
@@ -23,6 +23,7 @@ import java.io.FileOutputStream;
import java.io.FilenameFilter;
import java.io.IOException;
import java.io.InputStream;
+import java.lang.reflect.UndeclaredThrowableException;
import java.security.PrivilegedExceptionAction;
import java.util.ArrayList;
import java.util.Collections;
@@ -137,7 +138,7 @@ public class SliderAppsViewControllerImpl implements SliderAppsViewController {
}
}
- private <T> T invokeSliderClientRunnable(final SliderClientContextRunnable<T> runnable) throws IOException, InterruptedException {
+ private <T> T invokeSliderClientRunnable(final SliderClientContextRunnable<T> runnable) throws IOException, InterruptedException, YarnException {
ClassLoader currentClassLoader = Thread.currentThread().getContextClassLoader();
Thread.currentThread().setContextClassLoader(getClass().getClassLoader());
try {
@@ -151,19 +152,28 @@ public class SliderAppsViewControllerImpl implements SliderAppsViewController {
} else {
sliderUser = UserGroupInformation.getBestUGI(null, getUserToRunAs());
}
- T value = sliderUser.doAs(
- new PrivilegedExceptionAction<T>() {
- @Override
- public T run() throws Exception {
- final SliderClient sliderClient = createSliderClient();
- try{
- return runnable.run(sliderClient);
- }finally{
- destroySliderClient(sliderClient);
+ try{
+ T value = sliderUser.doAs(
+ new PrivilegedExceptionAction<T>() {
+ @Override
+ public T run() throws Exception {
+ final SliderClient sliderClient = createSliderClient();
+ try{
+ return runnable.run(sliderClient);
+ }finally{
+ destroySliderClient(sliderClient);
+ }
}
- }
- });
- return value;
+ });
+ return value;
+ } catch (UndeclaredThrowableException e) {
+ Throwable cause = e.getCause();
+ if (cause instanceof YarnException) {
+ YarnException ye = (YarnException) cause;
+ throw ye;
+ }
+ throw e;
+ }
} finally {
Thread.currentThread().setContextClassLoader(currentClassLoader);
}
@@ -782,7 +792,9 @@ public class SliderAppsViewControllerImpl implements SliderAppsViewController {
resourcesObj.addProperty("schema",
"http://example.org/specification/v2.0.0");
resourcesObj.add("metadata", new JsonObject());
- resourcesObj.add("global", clientResourcesObj.get("global").getAsJsonObject());
+ resourcesObj.add("global",
+ clientResourcesObj.has("global") ? clientResourcesObj.get("global")
+ .getAsJsonObject() : new JsonObject());
JsonObject componentsObj = new JsonObject();
if (clientComponentsArray != null) {
for (int i = 0; i < clientComponentsArray.size(); i++) {