You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@groovy.apache.org by su...@apache.org on 2020/07/25 10:00:23 UTC

[groovy] branch master updated (f89d10a -> 7dadce0)

This is an automated email from the ASF dual-hosted git repository.

sunlan pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/groovy.git.


    from f89d10a  Trival refactoring: replace 'for' loop with enhanced 'for' loop
     new b1b0093  GROOVY-9657: JmxMetaMapBuilder.buildOperationMapFrom throw StringIndexOutOfBoundsException
     new 7dadce0  Minor tweak for "GROOVY-9657: JmxMetaMapBuilder.buildOperationMapFrom throw StringIndexOutOfBoundsException" (closes #1323)

The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../main/groovy/groovy/jmx/builder/JmxMetaMapBuilder.groovy |  9 ++++++---
 .../groovy/groovy/jmx/builder/JmxMetaMapBuilderTest.groovy  |  5 ++++-
 .../src/test/java/groovy/jmx/builder/MockManagedObject.java | 13 ++++++++++---
 3 files changed, 20 insertions(+), 7 deletions(-)


[groovy] 02/02: Minor tweak for "GROOVY-9657: JmxMetaMapBuilder.buildOperationMapFrom throw StringIndexOutOfBoundsException" (closes #1323)

Posted by su...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

sunlan pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/groovy.git

commit 7dadce0ac9ddaab381f23e25ff341b33130ed316
Author: Daniel Sun <su...@apache.org>
AuthorDate: Sat Jul 25 17:41:24 2020 +0800

    Minor tweak for "GROOVY-9657: JmxMetaMapBuilder.buildOperationMapFrom throw StringIndexOutOfBoundsException" (closes #1323)
---
 .../src/main/groovy/groovy/jmx/builder/JmxMetaMapBuilder.groovy     | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/subprojects/groovy-jmx/src/main/groovy/groovy/jmx/builder/JmxMetaMapBuilder.groovy b/subprojects/groovy-jmx/src/main/groovy/groovy/jmx/builder/JmxMetaMapBuilder.groovy
index bfbb155..b64d9ba 100644
--- a/subprojects/groovy-jmx/src/main/groovy/groovy/jmx/builder/JmxMetaMapBuilder.groovy
+++ b/subprojects/groovy-jmx/src/main/groovy/groovy/jmx/builder/JmxMetaMapBuilder.groovy
@@ -402,7 +402,11 @@ class JmxMetaMapBuilder {
             // avoid picking up extra methods from parents
             if ((declaredMethods.contains(method.name) && !OPS_EXCEPTION_LIST.contains(method.name)) || (!OPS_EXCEPTION_LIST.contains(method.name))) {
                 String mName = method.name
-                MetaProperty prop = (mName.startsWith("get") || mName.startsWith("set")) ? object.metaClass.getMetaProperty(JmxBuilderTools.uncapitalize(mName.length() == 3 ? mName : mName[3..-1])) : null
+                MetaProperty prop =
+                        (mName.length() > 3 && (mName.startsWith("get") || mName.startsWith("set")) ||
+                                mName.length() > 2 && mName.startsWith("is"))
+                                ? object.metaClass.getMetaProperty(JmxBuilderTools.uncapitalize(mName[(mName.startsWith("is") ? 2 : 3)..-1]))
+                                : null
                 // skip exporting getters/setters to avoid dbl exposure.  They are exported differently.
                 if (!prop) {
                     def map = [:]


[groovy] 01/02: GROOVY-9657: JmxMetaMapBuilder.buildOperationMapFrom throw StringIndexOutOfBoundsException

Posted by su...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

sunlan pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/groovy.git

commit b1b00935a212ba9261694259045f80379759df79
Author: hdfg159 <hd...@126.com>
AuthorDate: Sat Jul 25 17:17:46 2020 +0800

    GROOVY-9657: JmxMetaMapBuilder.buildOperationMapFrom throw StringIndexOutOfBoundsException
---
 .../main/groovy/groovy/jmx/builder/JmxMetaMapBuilder.groovy |  5 ++---
 .../groovy/groovy/jmx/builder/JmxMetaMapBuilderTest.groovy  |  5 ++++-
 .../src/test/java/groovy/jmx/builder/MockManagedObject.java | 13 ++++++++++---
 3 files changed, 16 insertions(+), 7 deletions(-)

diff --git a/subprojects/groovy-jmx/src/main/groovy/groovy/jmx/builder/JmxMetaMapBuilder.groovy b/subprojects/groovy-jmx/src/main/groovy/groovy/jmx/builder/JmxMetaMapBuilder.groovy
index 814f6c0..bfbb155 100644
--- a/subprojects/groovy-jmx/src/main/groovy/groovy/jmx/builder/JmxMetaMapBuilder.groovy
+++ b/subprojects/groovy-jmx/src/main/groovy/groovy/jmx/builder/JmxMetaMapBuilder.groovy
@@ -402,8 +402,7 @@ class JmxMetaMapBuilder {
             // avoid picking up extra methods from parents
             if ((declaredMethods.contains(method.name) && !OPS_EXCEPTION_LIST.contains(method.name)) || (!OPS_EXCEPTION_LIST.contains(method.name))) {
                 String mName = method.name
-                MetaProperty prop = (mName.startsWith("get") || mName.startsWith("set")) ?
-                        object.metaClass.getMetaProperty(JmxBuilderTools.uncapitalize(mName[3..-1])) : null
+                MetaProperty prop = (mName.startsWith("get") || mName.startsWith("set")) ? object.metaClass.getMetaProperty(JmxBuilderTools.uncapitalize(mName.length() == 3 ? mName : mName[3..-1])) : null
                 // skip exporting getters/setters to avoid dbl exposure.  They are exported differently.
                 if (!prop) {
                     def map = [:]
@@ -499,7 +498,7 @@ class JmxMetaMapBuilder {
      * to create a map object of the meta data provided with defaults where necessary.
      * @param method - the method being described
      * @param descriptor - the meta data collected from JmxBuilder.bean()
-     * @return fully-normalized meta map 
+     * @return fully-normalized meta map
      */
     private static Map createOperationMap(object, method, descriptor) {
         def desc = (descriptor && descriptor instanceof Map) ? descriptor : [:]
diff --git a/subprojects/groovy-jmx/src/test/groovy/groovy/jmx/builder/JmxMetaMapBuilderTest.groovy b/subprojects/groovy-jmx/src/test/groovy/groovy/jmx/builder/JmxMetaMapBuilderTest.groovy
index 88f1a5d..16e3fb5 100644
--- a/subprojects/groovy-jmx/src/test/groovy/groovy/jmx/builder/JmxMetaMapBuilderTest.groovy
+++ b/subprojects/groovy-jmx/src/test/groovy/groovy/jmx/builder/JmxMetaMapBuilderTest.groovy
@@ -301,7 +301,7 @@ class JmxMetaMapBuilderTest extends GroovyTestCase {
     void testBuildOperationMapFromObject() {
         def object = new MockManagedObject()
         def map = JmxMetaMapBuilder.buildOperationMapFrom(object)
-
+    
         assert map
         assert map."doSomethingElse".name == "doSomethingElse"
         assert map."doSomethingElse".displayName
@@ -311,6 +311,9 @@ class JmxMetaMapBuilderTest extends GroovyTestCase {
         assert map."doSomethingElse".params."int".displayName
         assert map."doSomethingElse".params."java.lang.String".name == "java.lang.String"
         assert map."doSomethingElse".params."java.lang.String".displayName
+    
+        assert map."get".name == "get"
+        assert map."set".name == "set"
     }
 
     void testBuildOperationFromDescriptorMap() {
diff --git a/subprojects/groovy-jmx/src/test/java/groovy/jmx/builder/MockManagedObject.java b/subprojects/groovy-jmx/src/test/java/groovy/jmx/builder/MockManagedObject.java
index 3109ee6..090e68d 100644
--- a/subprojects/groovy-jmx/src/test/java/groovy/jmx/builder/MockManagedObject.java
+++ b/subprojects/groovy-jmx/src/test/java/groovy/jmx/builder/MockManagedObject.java
@@ -69,13 +69,20 @@ public class MockManagedObject {
     public void dontDoThis(Object param) {
         logger.log(Level.FINER, "Jmx Invoke - method dontDoThis() with param : " + param);
     }
-
+    
     public void setAvailable(boolean flag) {
         avail = flag;
     }
-
+    
     public boolean isAvailable() {
         return avail;
     }
-
+    
+    public String get(String str) {
+        return str;
+    }
+    
+    public String set(String str) {
+        return str;
+    }
 }