[infinispan-commits] Infinispan SVN: r1219 - trunk/jopr-plugin/src/main/java/org/infinispan/jopr.
infinispan-commits at lists.jboss.org
infinispan-commits at lists.jboss.org
Wed Nov 25 04:22:21 EST 2009
Author: galder.zamarreno at jboss.com
Date: 2009-11-25 04:22:21 -0500 (Wed, 25 Nov 2009)
New Revision: 1219
Modified:
trunk/jopr-plugin/src/main/java/org/infinispan/jopr/CacheComponent.java
Log:
[ISPN-289] (NPE on AppClassLoader when calling DistributionManager.locateKey()) Fixed at least so that NPE is not thrown but operation returns are still not send back to jopr.
Modified: trunk/jopr-plugin/src/main/java/org/infinispan/jopr/CacheComponent.java
===================================================================
--- trunk/jopr-plugin/src/main/java/org/infinispan/jopr/CacheComponent.java 2009-11-24 17:26:48 UTC (rev 1218)
+++ trunk/jopr-plugin/src/main/java/org/infinispan/jopr/CacheComponent.java 2009-11-25 09:22:21 UTC (rev 1219)
@@ -29,6 +29,7 @@
import org.mc4j.ems.connection.bean.attribute.EmsAttribute;
import org.mc4j.ems.connection.bean.operation.EmsOperation;
import org.rhq.core.domain.configuration.Configuration;
+import org.rhq.core.domain.configuration.PropertySimple;
import org.rhq.core.domain.measurement.AvailabilityType;
import org.rhq.core.domain.measurement.DataType;
import org.rhq.core.domain.measurement.MeasurementDataNumeric;
@@ -41,6 +42,7 @@
import org.rhq.core.pluginapi.operation.OperationFacet;
import org.rhq.core.pluginapi.operation.OperationResult;
+import java.util.Collection;
import java.util.Set;
/**
@@ -164,21 +166,29 @@
* @return OperationResult object if successful
* @throws Exception If operation was not successful
*/
- public OperationResult invokeOperation(String name,
- Configuration parameters) throws Exception {
+ public OperationResult invokeOperation(String name, Configuration parameters) throws Exception {
+ boolean trace = log.isTraceEnabled();
EmsConnection conn = getConnection();
String abbrev = name.substring(0, name.indexOf("."));
String mbean = myNamePattern + abbrev;
EmsBean bean = conn.getBean(mbean);
String opName = name.substring(name.indexOf(".") + 1);
EmsOperation ops = bean.getOperation(opName);
- if (ops != null)
- ops.invoke(new Object[]{});
- else
+ Collection<PropertySimple> simples = parameters.getSimpleProperties().values();
+ if (trace) log.trace("Parameters, as simple properties, are {0}", simples);
+ Object[] realParams = new Object[simples.size()];
+ int i = 0;
+ for (PropertySimple property : simples) {
+ // Since parameters are typed in UI, passing them as Strings is the only reasonable way of dealing with this
+ realParams[i++] = property.getStringValue();
+ }
+
+ if (ops == null)
throw new Exception("Operation " + name + " can't be found");
-
-
- return new OperationResult();
+
+ Object result = ops.invoke(realParams);
+ if (trace) log.trace("Returning operation result containing {0}", result.toString());
+ return new OperationResult(result.toString());
}
private EmsConnection getConnection() {
More information about the infinispan-commits
mailing list