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