You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@uima.apache.org by bu...@apache.org on 2016/11/04 22:10:00 UTC
svn commit: r1768113 - in /uima/uima-ducc/trunk:
uima-ducc-common/src/main/java/org/apache/uima/ducc/common/jd/files/
uima-ducc-common/src/main/java/org/apache/uima/ducc/common/jd/files/perf/
uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/ ...
Author: burn
Date: Fri Nov 4 22:10:00 2016
New Revision: 1768113
URL: http://svn.apache.org/viewvc?rev=1768113&view=rev
Log:
UIMA-5170 Added EffectiveUser.isLoggedin so can report 'no data' vs. 'inaccessibe data' in some cases
Modified:
uima/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/jd/files/JobPerformanceSummaryJsonGz.java
uima/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/jd/files/perf/PerformanceSummaryReader.java
uima/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccHandler.java
uima/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/utils/alien/EffectiveUser.java
Modified: uima/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/jd/files/JobPerformanceSummaryJsonGz.java
URL: http://svn.apache.org/viewvc/uima/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/jd/files/JobPerformanceSummaryJsonGz.java?rev=1768113&r1=1768112&r2=1768113&view=diff
==============================================================================
--- uima/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/jd/files/JobPerformanceSummaryJsonGz.java (original)
+++ uima/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/jd/files/JobPerformanceSummaryJsonGz.java Fri Nov 4 22:10:00 2016
@@ -125,7 +125,7 @@ public class JobPerformanceSummaryJsonGz
}
catch(Exception e) {
//e.printStackTrace();
- System.out.println("importData: error importing perf data "+e); // Should use logger
+ System.out.println("importData: error importing perf data "+e); // Should use logger?
}
finally {
if(reader != null) {
@@ -136,23 +136,46 @@ public class JobPerformanceSummaryJsonGz
}
public JobPerformanceSummaryData importData(String userid) throws IOException, ClassNotFoundException {
- JobPerformanceSummaryData data = new JobPerformanceSummaryData();
- if(userid == null) {
- data = importData();
- }
- else {
- try {
+ String json;
+ JobPerformanceSummaryData data = new JobPerformanceSummaryData();
+ try {
+ File f = new File(filename);
+ if (f.canRead()) {
+ json = readGzipFile(filename);
+ } else {
AlienFile alienFile = new AlienFile(userid, filename);
- String json = alienFile.getString();
- Type typeOfMap = new TypeToken<JobPerformanceSummaryData>() { }.getType();
- data = gson.fromJson(json, typeOfMap);
- }
- catch(Throwable t) {
- System.out.println("importData: error importing perf data for "+userid+" "+t); // Should use logger
- return null;
- }
+ json = alienFile.getString();
+ }
+ Type typeOfMap = new TypeToken<JobPerformanceSummaryData>() { }.getType();
+ data = gson.fromJson(json, typeOfMap);
+ }
+ catch(Throwable t) {
+ System.out.println("importData: error importing perf data for "+userid+" "+t); // Should use logger?
+ return null;
}
return data;
}
+ /*
+ * Unzip a text file into a string
+ * (Could be public? or made part of AlienFile that would skip ducc_ling if file is readable?)
+ */
+ private String readGzipFile(String filename) throws IOException {
+ BufferedReader br = null;
+ try {
+ // Wrap the file-stream in a GZIP-stream in a reader in a buffered-reader
+ br = new BufferedReader(new InputStreamReader(new GZIPInputStream(new FileInputStream(filename)), encoding));
+ StringBuilder sb = new StringBuilder();
+ String line;
+ while ((line = br.readLine()) != null) {
+ sb.append(line);
+ sb.append("\n");
+ }
+ return sb.toString();
+ } finally {
+ if (br != null) {
+ br.close();
+ }
+ }
+ }
}
Modified: uima/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/jd/files/perf/PerformanceSummaryReader.java
URL: http://svn.apache.org/viewvc/uima/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/jd/files/perf/PerformanceSummaryReader.java?rev=1768113&r1=1768112&r2=1768113&view=diff
==============================================================================
--- uima/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/jd/files/perf/PerformanceSummaryReader.java (original)
+++ uima/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/jd/files/perf/PerformanceSummaryReader.java Fri Nov 4 22:10:00 2016
@@ -35,6 +35,7 @@ public class PerformanceSummaryReader ex
super(dirname);
}
+ @Deprecated
public PerformanceMetricsSummaryMap readJsonGz() throws IOException, ClassNotFoundException {
PerformanceMetricsSummaryMap map = new PerformanceMetricsSummaryMap();
JobPerformanceSummaryData data = jsonGz.importData();
@@ -54,33 +55,26 @@ public class PerformanceSummaryReader ex
public PerformanceMetricsSummaryMap readJsonGz(String userId) throws IOException, ClassNotFoundException {
PerformanceMetricsSummaryMap map = new PerformanceMetricsSummaryMap();
JobPerformanceSummaryData data = null;
- if(data == null) {
- try {
- data = jsonGz.importData(userId);
- }
- catch(Exception e) {
- }
- }
- if(data == null) {
- try {
- data = jsonGz.importData();
- }
- catch(Exception e) {
- }
- }
- if(data != null) {
- Integer casCount = data.getCasCount();
- map.putCasCount(casCount);
- ConcurrentSkipListMap<String, JobPerformanceSummary> gzMap = data.getMap();
- Set<Entry<String, JobPerformanceSummary>> entries = gzMap.entrySet();
- for(Entry<String, JobPerformanceSummary> entry : entries) {
- String key = entry.getKey();
- IJobPerformanceSummary jps = entry.getValue();
- PerformanceMetricsSummaryItem value = new PerformanceMetricsSummaryItem(jps.getName(),jps.getUniqueName(),jps.getAnalysisTime(),jps.getNumProcessed(),jps.getAnalysisTimeMin(),jps.getAnalysisTimeMax());
- map.putItem(key, value);
- }
- }
- return map;
+ try {
+ data = jsonGz.importData(userId);
+ } catch (Exception e) {
+ System.err.println("readJsonGz " + userId + " ignoring exception " + e); // Should be logged?
+ }
+ if (data == null) { // Data missing or unreadable
+ return null;
+ }
+ Integer casCount = data.getCasCount();
+ map.putCasCount(casCount);
+ ConcurrentSkipListMap<String, JobPerformanceSummary> gzMap = data.getMap();
+ Set<Entry<String, JobPerformanceSummary>> entries = gzMap.entrySet();
+ for (Entry<String, JobPerformanceSummary> entry : entries) {
+ String key = entry.getKey();
+ IJobPerformanceSummary jps = entry.getValue();
+ PerformanceMetricsSummaryItem value = new PerformanceMetricsSummaryItem(jps.getName(), jps.getUniqueName(),
+ jps.getAnalysisTime(), jps.getNumProcessed(), jps.getAnalysisTimeMin(), jps.getAnalysisTimeMax());
+ map.putItem(key, value);
+ }
+ return map;
}
@Deprecated
@@ -98,12 +92,14 @@ public class PerformanceSummaryReader ex
map = getSummaryMap();
}
catch(Exception e) {
- System.err.println("PerformanceMetricsSummaryMap.readSer() could not read file: "+ filename);
+ // Probably missing file
+ //System.err.println("PerformanceMetricsSummaryMap.readSer() could not read file: "+ filename);
}
}
return map;
}
+ @Deprecated
public PerformanceMetricsSummaryMap readSummary() {
PerformanceMetricsSummaryMap map = null;
try {
@@ -119,18 +115,21 @@ public class PerformanceSummaryReader ex
return map;
}
+ /*
+ * Read the json gzipped file
+ * If still supporting the legacy blob try to read it
+ */
public PerformanceMetricsSummaryMap readSummary(String userId) {
PerformanceMetricsSummaryMap map = null;
try {
map = readJsonGz(userId);
- return map;
}
catch(Exception e) {
- if(!legacy) {
- e.printStackTrace();
- }
+ System.err.println("readSummary " + userId + " ignoring exception " + e); // Should be logged?
+ }
+ if (map == null && legacy) {
+ map = readSer();
}
- map = readSer();
return map;
}
}
Modified: uima/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccHandler.java
URL: http://svn.apache.org/viewvc/uima/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccHandler.java?rev=1768113&r1=1768112&r2=1768113&view=diff
==============================================================================
--- uima/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccHandler.java (original)
+++ uima/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccHandler.java Fri Nov 4 22:10:00 2016
@@ -1740,8 +1740,10 @@ public class DuccHandler extends DuccAbs
long wiVersion = job.getWiVersion();
AlienWorkItemStateReader workItemStateReader = new AlienWorkItemStateReader(eu, component, directory, wiVersion);
ConcurrentSkipListMap<Long,IWorkItemState> map = workItemStateReader.getMap();
- if( (map == null) || (map.size() == 0) ) {
- sb.append("no accessible data (not logged in?)");
+ if (map == null) {
+ sb.append(eu.isLoggedin() ? "(data missing or unreadable)" : "(not visible - try logging in)");
+ } else if (map.size() == 0) {
+ sb.append("(no work-items processed)");
}
else {
ConcurrentSkipListMap<IWorkItemState,IWorkItemState> sortedMap = new ConcurrentSkipListMap<IWorkItemState,IWorkItemState>();
@@ -1902,8 +1904,10 @@ public class DuccHandler extends DuccAbs
EffectiveUser eu = EffectiveUser.create(request);
PerformanceSummary performanceSummary = new PerformanceSummary(job.getLogDirectory()+jobNo);
PerformanceMetricsSummaryMap performanceMetricsSummaryMap = performanceSummary.readSummary(eu.get());
- if( (performanceMetricsSummaryMap == null) || (performanceMetricsSummaryMap.size() == 0) ) {
- sb.append("no accessible data (not logged in?)");
+ if (performanceMetricsSummaryMap == null) {
+ sb.append(eu.isLoggedin() ? "(data missing or unreadable)" : "(not visible - try logging in)");
+ } else if (performanceMetricsSummaryMap.size() == 0) {
+ sb.append("(no performance metrics)");
}
else {
int casCount = performanceMetricsSummaryMap.casCount();
@@ -2086,7 +2090,7 @@ public class DuccHandler extends DuccAbs
String path = work.getUserLogsDir() + work.getDuccId().getFriendly() + File.separator + specFile;
Properties properties = DuccFile.getProperties(eu, path);
if (properties == null) {
- sb.append("no accessible data (not logged in?)");
+ sb.append(eu.isLoggedin() ? "(data missing or unreadable)" : "(not visible - try logging in)");
} else {
int i = 0;
int counter = 0;
@@ -2123,7 +2127,6 @@ public class DuccHandler extends DuccAbs
{
String methodName = "handleDuccServletJobSpecificationData";
duccLogger.trace(methodName, null, messages.fetch("enter"));
- StringBuffer sb = new StringBuffer();
String jobNo = request.getParameter("id");
DuccWorkJob job = getJob(jobNo);
processSpecificationData(job, DuccUiConstants.job_specification_properties, request, response);
@@ -2177,7 +2180,7 @@ public class DuccHandler extends DuccAbs
counter++;
}
if (counter == 0) {
- sb.append("no files found (not logged in?)");
+ sb.append(eu.isLoggedin() ? "(data missing or unreadable)" : "(not visible - try logging in)");
}
}
catch(Throwable t) {
@@ -2237,12 +2240,11 @@ public class DuccHandler extends DuccAbs
counter++;
}
if (counter == 0) {
- sb.append("no files found (not logged in?)");
+ sb.append(eu.isLoggedin() ? "(no files found)" : "(not visible - try logging in)");
}
}
catch(Throwable t) {
duccLogger.warn(methodName, null, t);
- //sb = new StringBuffer();
sb.append("no accessible data ("+t+")");
}
}
Modified: uima/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/utils/alien/EffectiveUser.java
URL: http://svn.apache.org/viewvc/uima/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/utils/alien/EffectiveUser.java?rev=1768113&r1=1768112&r2=1768113&view=diff
==============================================================================
--- uima/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/utils/alien/EffectiveUser.java (original)
+++ uima/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/utils/alien/EffectiveUser.java Fri Nov 4 22:10:00 2016
@@ -45,6 +45,7 @@ public class EffectiveUser {
}
private String user = null;
+ private boolean loggedin = false;
private EffectiveUser(String user) {
set(user);
@@ -54,10 +55,12 @@ public class EffectiveUser {
String location = "set";
if(value != null) {
user = value;
+ loggedin = true;
logger.debug(location, jobid, "value: "+user);
}
else {
user = System.getProperty("user.name");
+ loggedin = false;
logger.debug(location, jobid, "property: "+user);
}
}
@@ -65,4 +68,8 @@ public class EffectiveUser {
public String get() {
return user;
}
+
+ public boolean isLoggedin() {
+ return loggedin;
+ }
}