Issue #1571 Fix bug in GFE where DbId in ParmId did not match the Database.
Change-Id: I08b5ec1dbbf95d269c9f1ad7fb5e02a8a471b7ec Former-commit-id:fae5283358
[formerly46f00786ed
[formerly c03aacd100a73d84d96bfcd3db447597f478fcb7]] Former-commit-id:46f00786ed
Former-commit-id:a656439fb2
This commit is contained in:
parent
aa0639a878
commit
fe81181bf1
3 changed files with 29 additions and 11 deletions
|
@ -48,6 +48,8 @@ import com.raytheon.uf.common.dataplugin.gfe.weather.WxDefinition;
|
||||||
* 03/14/08 #1030 randerso Initial port
|
* 03/14/08 #1030 randerso Initial port
|
||||||
* 04/8/08 #875 bphillip Added getter for Grid Parm Info dictionary
|
* 04/8/08 #875 bphillip Added getter for Grid Parm Info dictionary
|
||||||
* 08/05/2013 #1571 randerso Made GridParmInfo a field in ParmStorageInfo
|
* 08/05/2013 #1571 randerso Made GridParmInfo a field in ParmStorageInfo
|
||||||
|
* Cloned ParmStorageInfo when requested so we have
|
||||||
|
* a unique instance per database.
|
||||||
*
|
*
|
||||||
* </pre>
|
* </pre>
|
||||||
*
|
*
|
||||||
|
@ -345,12 +347,12 @@ public class GridDbConfig {
|
||||||
*
|
*
|
||||||
* @param parmName
|
* @param parmName
|
||||||
* @param level
|
* @param level
|
||||||
* @return
|
* @return the ParmStorageInfo
|
||||||
*/
|
*/
|
||||||
public ParmStorageInfo getParmStorageInfo(final String parmName,
|
public ParmStorageInfo getParmStorageInfo(final String parmName,
|
||||||
final String level) {
|
final String level) {
|
||||||
String composite = parmName + "_" + level;
|
String composite = parmName + "_" + level;
|
||||||
return _parmInfoDict.get(composite);
|
return _parmInfoDict.get(composite).clone();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -578,7 +578,6 @@ public class IFPGridDatabase extends GridDatabase {
|
||||||
try {
|
try {
|
||||||
// Remove the entire data structure for the parm
|
// Remove the entire data structure for the parm
|
||||||
dao.removeParm(parmStorageInfo.get(item).getParmID());
|
dao.removeParm(parmStorageInfo.get(item).getParmID());
|
||||||
// parmIdMap.remove(item);
|
|
||||||
this.parmStorageInfo.remove(item);
|
this.parmStorageInfo.remove(item);
|
||||||
} catch (DataAccessLayerException e) {
|
} catch (DataAccessLayerException e) {
|
||||||
statusHandler.handle(Priority.PROBLEM, "Error removing: "
|
statusHandler.handle(Priority.PROBLEM, "Error removing: "
|
||||||
|
@ -589,7 +588,6 @@ public class IFPGridDatabase extends GridDatabase {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ServerResponse<List<ParmID>> getParmList() {
|
public ServerResponse<List<ParmID>> getParmList() {
|
||||||
// List<ParmID> parmIds = new ArrayList<ParmID>(parmIdMap.values());
|
|
||||||
List<ParmID> parmIds = new ArrayList<ParmID>(parmStorageInfo.size());
|
List<ParmID> parmIds = new ArrayList<ParmID>(parmStorageInfo.size());
|
||||||
for (ParmStorageInfo psi : parmStorageInfo.values()) {
|
for (ParmStorageInfo psi : parmStorageInfo.values()) {
|
||||||
parmIds.add(psi.getParmID());
|
parmIds.add(psi.getParmID());
|
||||||
|
@ -1273,18 +1271,14 @@ public class IFPGridDatabase extends GridDatabase {
|
||||||
List<ParmStorageInfo> parmInfoList = dao.getParmStorageInfo(dbId);
|
List<ParmStorageInfo> parmInfoList = dao.getParmStorageInfo(dbId);
|
||||||
parmStorageInfo = new HashMap<String, ParmStorageInfo>(
|
parmStorageInfo = new HashMap<String, ParmStorageInfo>(
|
||||||
parmInfoList.size(), 1.0f);
|
parmInfoList.size(), 1.0f);
|
||||||
// parmIdMap = new HashMap<String, ParmID>(parmInfoList.size(),
|
|
||||||
// 1.0f);
|
|
||||||
|
|
||||||
for (ParmStorageInfo psi : parmInfoList) {
|
for (ParmStorageInfo psi : parmInfoList) {
|
||||||
ParmID pid = psi.getParmID();
|
ParmID pid = psi.getParmID();
|
||||||
String compositeName = pid.getCompositeName();
|
String compositeName = pid.getCompositeName();
|
||||||
// parmIdMap.put(compositeName, pid);
|
|
||||||
parmStorageInfo.put(compositeName, psi);
|
parmStorageInfo.put(compositeName, psi);
|
||||||
}
|
}
|
||||||
} catch (DataAccessLayerException e) {
|
} catch (DataAccessLayerException e) {
|
||||||
parmStorageInfo = Collections.emptyMap();
|
parmStorageInfo = Collections.emptyMap();
|
||||||
// parmIdMap = Collections.emptyMap();
|
|
||||||
String msg = "Error retrieving parm info from Database: "
|
String msg = "Error retrieving parm info from Database: "
|
||||||
+ e.getLocalizedMessage();
|
+ e.getLocalizedMessage();
|
||||||
statusHandler.error(msg, e);
|
statusHandler.error(msg, e);
|
||||||
|
@ -2152,7 +2146,6 @@ public class IFPGridDatabase extends GridDatabase {
|
||||||
*/
|
*/
|
||||||
public ParmID getCachedParmID(String parmNameAndLevel)
|
public ParmID getCachedParmID(String parmNameAndLevel)
|
||||||
throws UnknownParmIdException {
|
throws UnknownParmIdException {
|
||||||
// ParmID rval = parmIdMap.get(parmNameAndLevel);
|
|
||||||
ParmID rval = this.parmStorageInfo.get(parmNameAndLevel).getParmID();
|
ParmID rval = this.parmStorageInfo.get(parmNameAndLevel).getParmID();
|
||||||
|
|
||||||
if (rval == null) {
|
if (rval == null) {
|
||||||
|
@ -2165,7 +2158,6 @@ public class IFPGridDatabase extends GridDatabase {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ParmID getCachedParmID(ParmID parmId) throws UnknownParmIdException {
|
public ParmID getCachedParmID(ParmID parmId) throws UnknownParmIdException {
|
||||||
// ParmID rval = parmIdMap.get(parmId.getCompositeName());
|
|
||||||
ParmID rval = this.parmStorageInfo.get(parmId.getCompositeName())
|
ParmID rval = this.parmStorageInfo.get(parmId.getCompositeName())
|
||||||
.getParmID();
|
.getParmID();
|
||||||
|
|
||||||
|
|
|
@ -43,6 +43,7 @@ import javax.persistence.UniqueConstraint;
|
||||||
* Added GridParmInfo as a field.
|
* Added GridParmInfo as a field.
|
||||||
* Added hibernate annotations
|
* Added hibernate annotations
|
||||||
* 10/22/2013 #2361 njensen Remove ISerializableObject
|
* 10/22/2013 #2361 njensen Remove ISerializableObject
|
||||||
|
* 01/15/2014 #1571 randerso Added clone method and copy constructor
|
||||||
*
|
*
|
||||||
* </pre>
|
* </pre>
|
||||||
*
|
*
|
||||||
|
@ -52,7 +53,7 @@ import javax.persistence.UniqueConstraint;
|
||||||
|
|
||||||
@Entity
|
@Entity
|
||||||
@Table(name = "gfe_parminfo", uniqueConstraints = { @UniqueConstraint(columnNames = { "parmId_id" }) })
|
@Table(name = "gfe_parminfo", uniqueConstraints = { @UniqueConstraint(columnNames = { "parmId_id" }) })
|
||||||
public class ParmStorageInfo {
|
public class ParmStorageInfo implements Cloneable {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Auto-generated surrogate key
|
* Auto-generated surrogate key
|
||||||
|
@ -103,6 +104,29 @@ public class ParmStorageInfo {
|
||||||
this.gridParmInfo = gridParmInfo;
|
this.gridParmInfo = gridParmInfo;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Copy constructor
|
||||||
|
*
|
||||||
|
* @param orig
|
||||||
|
*/
|
||||||
|
public ParmStorageInfo(final ParmStorageInfo orig) {
|
||||||
|
this.storageType = orig.storageType;
|
||||||
|
this.dataOffset = orig.dataOffset;
|
||||||
|
this.dataMultiplier = orig.dataMultiplier;
|
||||||
|
this.dataType = orig.dataType;
|
||||||
|
this.gridParmInfo = orig.gridParmInfo.clone();
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* (non-Javadoc)
|
||||||
|
*
|
||||||
|
* @see java.lang.Object#clone()
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public ParmStorageInfo clone() {
|
||||||
|
return new ParmStorageInfo(this);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return the id
|
* @return the id
|
||||||
*/
|
*/
|
||||||
|
|
Loading…
Add table
Reference in a new issue