Merge branch 'master_13.5.2' (13.5.1-18) into omaha_13.5.2

Conflicts:
	cave/com.raytheon.viz.warngen/src/com/raytheon/viz/warngen/gui/FollowupData.java
	nativeLib/edexBridge/edexBridge.cpp

Former-commit-id: e361386eab [formerly a3671ea2935178a28dce6d075dc2067a609e6725]
Former-commit-id: 119af8a466
This commit is contained in:
Steve Harris 2013-08-23 10:58:04 -05:00
commit 5b11d137df
8 changed files with 56 additions and 12 deletions

View file

@ -42,6 +42,7 @@ import com.raytheon.uf.common.status.UFStatus.Priority;
import com.raytheon.uf.common.time.DataTime;
import com.raytheon.uf.common.time.SimulatedTime;
import com.raytheon.uf.viz.core.AbstractTimeMatcher;
import com.raytheon.uf.viz.core.IDisplayPane;
import com.raytheon.uf.viz.core.IDisplayPaneContainer;
import com.raytheon.uf.viz.core.VizConstants;
import com.raytheon.uf.viz.core.comm.PerspectiveSpecificLoadProperties;
@ -192,8 +193,10 @@ public class D2DTimeMatcher extends AbstractTimeMatcher {
@Override
public void redoTimeMatching(IDescriptor descriptor) throws VizException {
synchronized (this) {
if (timeMatchBasis != null && ! validateTimeMatchBasis(descriptor.getResourceList()))
timeMatchBasis = null;
if (timeMatchBasis != null && timeMatchBasis.getDescriptor() == descriptor &&
! validateTimeMatchBasis(descriptor)) {
changeTimeMatchBasis(null);
}
if (timeMatchBasis != null) {
IDescriptor tmDescriptor = timeMatchBasis.getDescriptor();
if (tmDescriptor != null && tmDescriptor != descriptor) {
@ -993,6 +996,33 @@ public class D2DTimeMatcher extends AbstractTimeMatcher {
configFactory.resetMultiload();
}
private boolean validateTimeMatchBasis(IDescriptor descriptor ) {
/*
* If a resource is shared by multiple panels (this can be the case with
* tools, at least), then it is necessary to search all of them as
* resource.descriptor() may not contain resource. TODO: Don't allow
* this condition to occur?
*/
IRenderableDisplay display = descriptor.getRenderableDisplay();
IDisplayPaneContainer container = display != null ?
display.getContainer() : null;
if (container != null) {
for (IDisplayPane pane : container.getDisplayPanes()) {
IRenderableDisplay paneDisplay = pane.getRenderableDisplay();
IDescriptor paneDescriptor = paneDisplay != null ?
paneDisplay.getDescriptor() : null;
if (paneDescriptor != null
&& validateTimeMatchBasis(paneDescriptor
.getResourceList())) {
return true;
}
}
} else {
return validateTimeMatchBasis(descriptor.getResourceList());
}
return false;
}
private boolean validateTimeMatchBasis(ResourceList list) {
for (ResourcePair rp : list) {
AbstractVizResource<?, ?> rsc = rp.getResource();

View file

@ -20,7 +20,7 @@
package com.raytheon.viz.warngen.gui;
import com.raytheon.uf.common.dataplugin.warning.AbstractWarningRecord;
import com.raytheon.uf.common.dataplugin.warning.WarningRecord;
import com.raytheon.uf.common.dataplugin.warning.WarningRecord.WarningAction;
import com.raytheon.uf.common.time.SimulatedTime;
import com.raytheon.uf.common.time.util.TimeUtil;
@ -37,13 +37,14 @@ import com.raytheon.uf.common.time.util.TimeUtil;
* May 7, 2013 1973 rferrel Changes to properly display Issue Time.
* Jul 22, 2013 2176 jsanchez Added EMER to the display string in the update list.
* Aug 7, 2013 2243 jsanchez Set all the attributes of an AbstractWarningRecord and added an expiration string. Removed calendar object.
* Aug 15,2013 2243 jsanchez Improved the expiration string off by one minute. Fixed for practice mode.
* Aug 15,2013 2243 jsanchez Improved the expiration string off by one minute.
* </pre>
*
* @author rferrel
* @version 1.0
*/
public class FollowupData extends WarningRecord {
public class FollowupData extends AbstractWarningRecord {
private static final long serialVersionUID = 1L;
@ -64,7 +65,7 @@ public class FollowupData extends WarningRecord {
private String expirationString;
public FollowupData(WarningAction action, AbstractWarningRecord record) {
super((WarningRecord) record);
super(record);
setAct(action.toString());
displayString = createDisplayString(action, record);

View file

@ -1130,7 +1130,7 @@ public class GFEDao extends DefaultPluginDao {
DatabaseQuery query = new DatabaseQuery(this.daoClass);
query.addQueryParam("parmId.dbId.siteId", dbId.getSiteId(),
QueryOperand.EQUALS);
query.addQueryParam("parmId.dbId.format", dbId.getFormat(),
query.addQueryParam("parmId.dbId.dbType", dbId.getDbType(),
QueryOperand.EQUALS);
query.addQueryParam("parmId.dbId.modelName", dbId.getModelName(),
QueryOperand.EQUALS);

View file

@ -34,6 +34,7 @@
# Feb 19, 2013 1636 rferrel Use TimeTools to get file timestamp.
# May 07, 2013 1973 rferrel Adjust Issue and Purge times to be relative to start time.
# Jun 24, 2013 DR 16317 D. Friedman If no storm line, parse storm motion from event text.
# Aug 21, 2013 DR16501 m.gamazaychikov Adjusted calculation of Purge time in NoVTECWarningDecoder.
# </pre>
#
# @author rferrel
@ -986,7 +987,7 @@ class NoVTECWarningDecoder(StdWarningDecoder):
if self._officeFromWMO:
template['officeid'] = self._officeFromWMO
template['purgeTime'] = long(purgeTime * 1000)
template['purgeTime'] = long(self._dtgFromDDHHMM(purgeTime, self._issueTime)*1000)
template['issueTime'] = long(self._issueTime * 1000)
template['state'] = "Decoded"
template['xxxid'] = self._completeProductPil[3:]

View file

@ -688,7 +688,6 @@ public class FFMPBasinData implements ISerializableObject {
* @param times
*/
public void populate(List<Long> times) {
if (mapFactory == null) {
mapFactory = new BasinMapFactory<Date>(Collections.reverseOrder(),
getBasins().size());

View file

@ -61,6 +61,7 @@ import com.raytheon.uf.common.status.UFStatus.Priority;
* Feb 27, 2013 1638 mschenke Cleaned up localization code to fix null pointer
* when no distribution files present
* Mar 19, 2013 1794 djohnson PatternWrapper is immutable, add toString() to it for debugging.
* Aug 19, 2013 2257 bkowal edexBridge to qpid 0.18 upgrade
*
* </pre>
*
@ -73,6 +74,8 @@ public class DistributionSrv {
private static final IUFStatusHandler statusHandler = UFStatus
.getHandler(DistributionSrv.class);
private static final String HEADER_QPID_SUBJECT = "qpid.subject";
private static class PatternWrapper {
private final String plugin;
@ -223,7 +226,15 @@ public class DistributionSrv {
StringBuilder pluginNames = new StringBuilder();
List<String> dest = new ArrayList<String>();
Message in = exchange.getIn();
String header = (String) in.getHeader("header");
// determine if the header is in the qpid subject field?
String header = (String) in.getHeader(HEADER_QPID_SUBJECT);
if (header != null) {
// make the qpid subject the header so that everything downstream
// will be able to read it as the header.
in.setHeader("header", header);
}
header = (String) in.getHeader("header");
Object payload = in.getBody();
String bodyString = null;
if (payload instanceof byte[]) {
@ -277,8 +288,8 @@ public class DistributionSrv {
throws DistributionException {
RequestPatterns patternSet = null;
try {
patternSet = SerializationUtil
.jaxbUnmarshalFromXmlFile(RequestPatterns.class, modelFile.getPath());
patternSet = SerializationUtil.jaxbUnmarshalFromXmlFile(
RequestPatterns.class, modelFile.getPath());
} catch (Exception e) {
throw new DistributionException("File "
+ modelFile.getAbsolutePath()

View file

@ -39,6 +39,7 @@ import com.raytheon.uf.edex.database.cluster.ClusterTask;
* Date Ticket# Engineer Description
* ------------ ---------- ----------- --------------------------
* Feb 19, 2010 njensen Initial creation
* Aug 21, 2013 DR 16521 D. Friedman Ensure endpoint URI is used for cluster entry
*
* </pre>
*
@ -61,7 +62,7 @@ public class ClusteredQuartzEndpoint extends QuartzEndpoint {
@Override
public void onJobExecute(final JobExecutionContext jobExecutionContext)
throws JobExecutionException {
String jName = jobExecutionContext.getJobDetail().getName();
String jName = getEndpointUri();
long period = Math.abs(jobExecutionContext.getFireTime().getTime()
- jobExecutionContext.getNextFireTime().getTime()) / 2;
ClusterTask ct = ClusterLockUtils.lock(TASK, jName, period, false);

View file

@ -351,6 +351,7 @@ if [ "${1}" = "-viz" ]; then
buildRPM "awips2-common-base"
buildRPM "awips2-rcm"
buildRPM "awips2-hydroapps-shared"
buildRPM "awips2-notification"
buildCAVE
if [ $? -ne 0 ]; then
exit 1