Skip to content

Commit 70d391b

Browse files
committed
fix for #2418 :
- now correctly set the hours, minutes, seconds and the pattern replacement - added a walltime unit test in Job2XMLTransformerTest (cherry picked from commit b5e7efa)
1 parent c0eae77 commit 70d391b

1 file changed

Lines changed: 12 additions & 32 deletions

File tree

scheduler/scheduler-api/src/main/java/org/ow2/proactive/scheduler/common/job/factories/Job2XMLTransformer.java

Lines changed: 12 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -36,22 +36,8 @@
3636
*/
3737
package org.ow2.proactive.scheduler.common.job.factories;
3838

39-
import java.io.*;
40-
import java.util.ArrayList;
41-
import java.util.List;
42-
import java.util.Map;
43-
import java.util.concurrent.TimeUnit;
44-
45-
import javax.xml.parsers.DocumentBuilder;
46-
import javax.xml.parsers.DocumentBuilderFactory;
47-
import javax.xml.parsers.ParserConfigurationException;
48-
import javax.xml.transform.OutputKeys;
49-
import javax.xml.transform.Transformer;
50-
import javax.xml.transform.TransformerException;
51-
import javax.xml.transform.TransformerFactory;
52-
import javax.xml.transform.dom.DOMSource;
53-
import javax.xml.transform.stream.StreamResult;
54-
39+
import org.apache.commons.io.IOUtils;
40+
import org.apache.log4j.Logger;
5541
import org.objectweb.proactive.extensions.dataspaces.vfs.selector.FileSelector;
5642
import org.ow2.proactive.scheduler.common.job.JobEnvironment;
5743
import org.ow2.proactive.scheduler.common.job.TaskFlowJob;
@@ -65,16 +51,7 @@
6551
import org.ow2.proactive.scripting.GenerationScript;
6652
import org.ow2.proactive.scripting.Script;
6753
import org.ow2.proactive.scripting.SelectionScript;
68-
import org.ow2.proactive.topology.descriptor.ArbitraryTopologyDescriptor;
69-
import org.ow2.proactive.topology.descriptor.BestProximityDescriptor;
70-
import org.ow2.proactive.topology.descriptor.DifferentHostsExclusiveDescriptor;
71-
import org.ow2.proactive.topology.descriptor.MultipleHostsExclusiveDescriptor;
72-
import org.ow2.proactive.topology.descriptor.SingleHostDescriptor;
73-
import org.ow2.proactive.topology.descriptor.SingleHostExclusiveDescriptor;
74-
import org.ow2.proactive.topology.descriptor.ThresholdProximityDescriptor;
75-
import org.ow2.proactive.topology.descriptor.TopologyDescriptor;
76-
import org.apache.commons.io.IOUtils;
77-
import org.apache.log4j.Logger;
54+
import org.ow2.proactive.topology.descriptor.*;
7855
import org.w3c.dom.CDATASection;
7956
import org.w3c.dom.Document;
8057
import org.w3c.dom.Element;
@@ -918,12 +895,15 @@ private Element createScriptExecutableElement(Document doc, ScriptTask t) {
918895
}
919896

920897
private static String formatDate(long millis) {
921-
String formatted = String.format("%02d:%02d:%02d", TimeUnit.MILLISECONDS.toHours(millis),
922-
TimeUnit.MILLISECONDS.toMinutes(millis) -
923-
TimeUnit.HOURS.toMinutes(TimeUnit.MILLISECONDS.toHours(millis)), TimeUnit.MILLISECONDS
924-
.toSeconds(millis) -
925-
TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.toMinutes(millis)));
926-
return formatted.replace("00:", "");
898+
long hours = TimeUnit.MILLISECONDS.toHours(millis);
899+
millis -= TimeUnit.HOURS.toMillis(hours);
900+
long minutes = TimeUnit.MILLISECONDS.toMinutes(millis);
901+
millis -= TimeUnit.MINUTES.toMillis(minutes);
902+
long seconds = TimeUnit.MILLISECONDS.toSeconds(millis);
903+
String formatted = String.format("%02d:%02d:%02d", hours,
904+
minutes, seconds);
905+
// replace heading 00: as it's not accepted by the schema validation
906+
return (formatted.replaceFirst("^(00:)+", ""));
927907
}
928908
}
929909

0 commit comments

Comments
 (0)