|
From: <isp...@rh...> - 2009-01-31 00:39:08
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head><style type="text/css"><!-- #msg DL { border : 1px #006 solid; background-color : #369; padding : 6px; color : #fff; } #msg DT { float : left; width : 6em; font-weight : bold; } #msg DL, #msg DT, #msg UL, #msg LI { font-family : arial,helvetica,sans-serif; font-size : 10pt; } h3 { font-family : arial,helvetica,sans-serif; font-size : 10pt; font-weight : bold; } #msg PRE { overflow : auto; white-space : normal; background-color : #ffc; border : 1px #fc0 solid; padding : 6px; } #msg UL, PRE, .diff { overflow : auto; } #patch h4 { font-family : arial,helvetica,sans-serif; font-size : 10pt; } #patch h4 { padding: 8px; background : #369; color : #fff; margin : 0; } #patch .propset h4, #patch .binary h4 {margin: 0;} #patch pre {padding:0;line-height:1.2em;margin:0;} #patch .diff {background:#eeeeee;padding: 0 0 10px 0;} #patch .propset .diff, #patch .binary .diff {padding: 10px 0;} #patch span {display:block;padding:0 10px;} #patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;} #patch .add {background:#ddffdd;} #patch .rem {background:#ffdddd;} #patch .lines, .info {color:#888888;background:#ffffff;} .diff { width : 100%; } #msg DL { border : 1px #006 solid; background-color : #369; padding : 6px; color : #fff; } #msg DT { float : left; width : 6em; font-weight : bold; } #msg DL, #msg DT, #msg UL, #msg LI { font-family : arial,helvetica,sans-serif; font-size : 10pt; } h3 { font-family : arial,helvetica,sans-serif; font-size : 10pt; font-weight : bold; } #msg PRE { overflow : auto; white-space : normal; background-color : #ffc; border : 1px #fc0 solid; padding : 6px; } #msg UL, PRE, .diff { overflow : auto; } #patch h4 { font-family : arial,helvetica,sans-serif; font-size : 10pt; } #patch h4 { padding: 8px; background : #369; color : #fff; margin : 0; } #patch .propset h4, #patch .binary h4 {margin: 0;} #patch pre {padding:0;line-height:1.2em;margin:0;} #patch .diff {background:#eeeeee;padding: 0 0 10px 0;} #patch .propset .diff, #patch .binary .diff {padding: 10px 0;} #patch span {display:block;padding:0 10px;} #patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;} #patch .add {background:#ddffdd;} #patch .rem {background:#ffdddd;} #patch .lines, .info {color:#888888;background:#ffffff;} .diff { width : 100%; } --></style> <title>[rhq-project.org rhq] [2856] fix for http://jira.rhq-project.org/browse/RHQ-1442</title> </head> <body> <div id="msg"> <dl> <dt>Revision</dt> <dd>2856</dd> <dt>Author</dt> <dd>ispringer</dd> <dt>Date</dt> <dd>2009-01-30 18:39:02 -0600 (Fri, 30 Jan 2009)</dd> </dl> <h3>Log Message</h3> <pre>fix for http://jira.rhq-project.org/browse/RHQ-1442</pre> <h3>Modified Paths</h3> <ul> <li><a href="#rhqtrunkmodulesenterpriseserverjarsrcmainjavaorgrhqenterpriseserverconfigurationConfigurationManagerBeanjava">rhq/trunk/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/configuration/ConfigurationManagerBean.java</a></li> </ul> </div> <div id="patch"> <h3>Diff</h3> <a id="rhqtrunkmodulesenterpriseserverjarsrcmainjavaorgrhqenterpriseserverconfigurationConfigurationManagerBeanjava"></a> <div class="modfile"><h4>Modified: rhq/trunk/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/configuration/ConfigurationManagerBean.java (2855 => 2856)</h4> <pre class="diff"> <span class="info">--- rhq/trunk/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/configuration/ConfigurationManagerBean.java 2009-01-31 00:38:24 UTC (rev 2855) +++ rhq/trunk/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/configuration/ConfigurationManagerBean.java 2009-01-31 00:39:02 UTC (rev 2856) </span><span class="lines">@@ -55,6 +55,7 @@ </span><span class="cx"> import org.rhq.core.domain.configuration.ResourceConfigurationUpdate; import org.rhq.core.domain.configuration.composite.ConfigurationUpdateComposite; import org.rhq.core.domain.configuration.definition.ConfigurationDefinition; </span><span class="add">+import org.rhq.core.domain.configuration.definition.PropertyDefinition; </span><span class="cx"> import org.rhq.core.domain.configuration.group.AbstractAggregateConfigurationUpdate; import org.rhq.core.domain.configuration.group.AggregatePluginConfigurationUpdate; import org.rhq.core.domain.resource.Agent; </span><span class="lines">@@ -968,7 +969,7 @@ </span><span class="cx"> boolean hasOneOverride = false; for (PropertySimple property : properties) { </span><span class="rem">- if (property.getOverride()) { </span><span class="add">+ if (property.getOverride() != null && property.getOverride()) { </span><span class="cx"> hasOneOverride = true; break; } </span><span class="lines">@@ -1134,27 +1135,32 @@ </span><span class="cx"> @SuppressWarnings("unchecked") private Configuration calculateAggregateConfiguration(ConfigurationDefinition configurationDefinition, ResourceGroup compatibleGroup) { </span><span class="rem">- Configuration resultConfiguration = configurationDefinition.getDefaultTemplate().getConfiguration(); </span><span class="add">+ Configuration resultConfiguration = new Configuration(); </span><span class="cx"> </span><span class="rem">- int groupSize = resourceGroupManager.getImplicitGroupMemberCount(compatibleGroup.getId()); - </span><span class="cx"> Query query = entityManager .createNamedQuery(Configuration.QUERY_GET_PLUGIN_CONFIG_UNIQUE_COUNT_BY_GROUP_AND_PROP_NAME); query.setParameter("resourceGroupId", compatibleGroup.getId()); </span><span class="add">+ int groupSize = resourceGroupManager.getImplicitGroupMemberCount(compatibleGroup.getId()); </span><span class="cx"> </span><span class="rem">- for (PropertySimple nextSimple : resultConfiguration.getSimpleProperties().values()) { - query.setParameter("propertyName", nextSimple.getName()); </span><span class="add">+ for (String propertyName : configurationDefinition.getPropertyDefinitions().keySet()) { + // Skip properties that are not simples. + if (configurationDefinition.getPropertyDefinitionSimple(propertyName) == null) + continue; + query.setParameter("propertyName", propertyName); </span><span class="cx"> List<Object[]> results = query.getResultList(); </span><span class="add">+ Object propertyValue; </span><span class="cx"> if (results.size() == 1) { Object[] identicalPropertyValueTuple = results.get(0); </span><span class="rem">- if (groupSize == ((Long) identicalPropertyValueTuple[1]).intValue()) { - nextSimple.setValue(identicalPropertyValueTuple[0]); </span><span class="add">+ if (((Long)identicalPropertyValueTuple[1]).intValue() == groupSize) { + propertyValue = identicalPropertyValueTuple[0]; </span><span class="cx"> } else { </span><span class="rem">- nextSimple.setValue(AbstractAggregateConfigurationUpdate.MIXED_VALUES_MARKER); </span><span class="add">+ propertyValue = AbstractAggregateConfigurationUpdate.MIXED_VALUES_MARKER; </span><span class="cx"> } } else { </span><span class="rem">- nextSimple.setValue(AbstractAggregateConfigurationUpdate.MIXED_VALUES_MARKER); </span><span class="add">+ propertyValue = AbstractAggregateConfigurationUpdate.MIXED_VALUES_MARKER; </span><span class="cx"> } </span><span class="add">+ PropertySimple property = new PropertySimple(propertyName, propertyValue); + resultConfiguration.put(property); </span><span class="cx"> } return resultConfiguration; </span> </pre> </div> </div> </body> </html> |