Merge branch 'collectd-4.7'
authorFlorian Forster <octo@leeloo.lan.home.verplant.org>
Mon, 17 Aug 2009 08:53:07 +0000 (10:53 +0200)
committerFlorian Forster <octo@leeloo.lan.home.verplant.org>
Mon, 17 Aug 2009 08:53:07 +0000 (10:53 +0200)
1  2 
src/java.c

diff --combined src/java.c
@@@ -286,10 -286,6 +286,10 @@@ static jobject ctoj_value_to_number (JN
      return (ctoj_jlong_to_number (jvm_env, (jlong) value.counter));
    else if (ds_type == DS_TYPE_GAUGE)
      return (ctoj_jdouble_to_number (jvm_env, (jdouble) value.gauge));
 +  if (ds_type == DS_TYPE_DERIVE)
 +    return (ctoj_jlong_to_number (jvm_env, (jlong) value.derive));
 +  if (ds_type == DS_TYPE_ABSOLUTE)
 +    return (ctoj_jlong_to_number (jvm_env, (jlong) value.absolute));
    else
      return (NULL);
  } /* }}} jobject ctoj_value_to_number */
@@@ -1048,39 -1044,33 +1048,39 @@@ static int jtoc_value (JNIEnv *jvm_env
  
    class_ptr = (*jvm_env)->GetObjectClass (jvm_env, object_ptr);
  
 -  if (ds_type == DS_TYPE_COUNTER)
 +  if (ds_type == DS_TYPE_GAUGE)
    {
 -    jlong tmp_long;
 +    jdouble tmp_double;
  
 -    status = jtoc_long (jvm_env, &tmp_long,
 -        class_ptr, object_ptr, "longValue");
 +    status = jtoc_double (jvm_env, &tmp_double,
 +        class_ptr, object_ptr, "doubleValue");
      if (status != 0)
      {
        ERROR ("java plugin: jtoc_value: "
 -          "jtoc_long failed.");
 +          "jtoc_double failed.");
        return (-1);
      }
 -    (*ret_value).counter = (counter_t) tmp_long;
 +    (*ret_value).gauge = (gauge_t) tmp_double;
    }
    else
    {
 -    jdouble tmp_double;
 +    jlong tmp_long;
  
 -    status = jtoc_double (jvm_env, &tmp_double,
 -        class_ptr, object_ptr, "doubleValue");
 +    status = jtoc_long (jvm_env, &tmp_long,
 +        class_ptr, object_ptr, "longValue");
      if (status != 0)
      {
        ERROR ("java plugin: jtoc_value: "
 -          "jtoc_double failed.");
 +          "jtoc_long failed.");
        return (-1);
      }
 -    (*ret_value).gauge = (gauge_t) tmp_double;
 +
 +    if (ds_type == DS_TYPE_DERIVE)
 +      (*ret_value).derive = (derive_t) tmp_long;
 +    else if (ds_type == DS_TYPE_ABSOLUTE)
 +      (*ret_value).absolute = (absolute_t) tmp_long;
 +    else
 +      (*ret_value).counter = (counter_t) tmp_long;
    }
  
    return (0);
@@@ -2410,6 -2400,7 +2410,7 @@@ static int cjni_config_callback (oconfi
    memcpy (config_block->children + config_block->children_num,
        ci_copy->children,
        ci_copy->children_num * sizeof (*ci_copy->children));
+   config_block->children_num += ci_copy->children_num;
  
    /* Delete the pointers from the copy, so `oconfig_free' can't free them. */
    memset (ci_copy->children, 0,