You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@commons.apache.org by po...@apache.org on 2006/06/26 13:48:58 UTC

svn commit: r417175 - in /jakarta/commons/proper/jelly/trunk/jelly-tags/ant/src/java/org/apache/commons/jelly: tags/ant/AntTag.java task/AntJellyContext.java

Author: polx
Date: Mon Jun 26 04:48:58 2006
New Revision: 417175

URL: http://svn.apache.org/viewvc?rev=417175&view=rev
Log:
Fixing JELLY-232 with a method to safely invoke toString.
Also fixing the data-type coercion assumption as reported (and patched)
by Hang Sun in JELLY-228.
paul

Modified:
    jakarta/commons/proper/jelly/trunk/jelly-tags/ant/src/java/org/apache/commons/jelly/tags/ant/AntTag.java
    jakarta/commons/proper/jelly/trunk/jelly-tags/ant/src/java/org/apache/commons/jelly/task/AntJellyContext.java

Modified: jakarta/commons/proper/jelly/trunk/jelly-tags/ant/src/java/org/apache/commons/jelly/tags/ant/AntTag.java
URL: http://svn.apache.org/viewvc/jakarta/commons/proper/jelly/trunk/jelly-tags/ant/src/java/org/apache/commons/jelly/tags/ant/AntTag.java?rev=417175&r1=417174&r2=417175&view=diff
==============================================================================
--- jakarta/commons/proper/jelly/trunk/jelly-tags/ant/src/java/org/apache/commons/jelly/tags/ant/AntTag.java (original)
+++ jakarta/commons/proper/jelly/trunk/jelly-tags/ant/src/java/org/apache/commons/jelly/tags/ant/AntTag.java Mon Jun 26 04:48:58 2006
@@ -245,7 +245,7 @@
                     try {
                         if (log.isDebugEnabled()) {
                             log.debug("About to set the: " + tagName
-                                + " property on: " + parentObject + " to value: "
+                                + " property on: " + safeToString(parentObject) + " to value: "
                                 + nested + " with type: " + nested.getClass()
                             );
                         }
@@ -263,7 +263,7 @@
                         BeanUtils.setProperty( parentObject, tagName, nested );
                     }
                     catch (Exception e) {
-                        log.debug("Caught exception trying to set property: " + tagName + " on: " + parentObject);
+                        log.debug("Caught exception trying to set property: " + tagName + " on: " + safeToString(parentObject));
                     }
                 }
             }
@@ -351,7 +351,7 @@
 
     public void setBeanProperty(Object object, String name, Object value) throws JellyTagException {
         if ( log.isDebugEnabled() ) {
-            log.debug( "Setting bean property on: "+  object + " name: " + name + " value: " + value );
+            log.debug( "Setting bean property on: "+  safeToString(object )+ " name: " + name + " value: " + safeToString(value));
         }
 
         IntrospectionHelper ih = IntrospectionHelper.getHelper( object.getClass() );
@@ -394,7 +394,7 @@
         if ( object != null ) {
             IntrospectionHelper ih = IntrospectionHelper.getHelper( object.getClass() );
 
-            if ( ih != null ) {
+            if ( ih != null && ! (object instanceof AntTag)) {
                 try {
                     dataType = ih.createElement( getAntProject(), object, name.toLowerCase() );
                 } catch (BuildException be) {
@@ -450,7 +450,7 @@
             else {
                 dataType = createDataType(ctor, new Object[] { getAntProject() }, name, "an Ant project");
             }
-            if (dataType != null) {
+            if (dataType != null && dataType instanceof DataType) {
                 ((DataType)dataType).setProject( getAntProject() );
             }
         }
@@ -557,6 +557,17 @@
             tag = tag.getParent();
         }
         return null;
+    }
+
+    private String safeToString(Object o) {
+        if(o==null) return "null";
+        String r = null;
+        try {
+            r = o.toString();
+        } catch(Exception ex) {}
+        if(r == null)
+            r = "(object of class " + o.getClass() + ")";
+        return r;
     }
 
 }

Modified: jakarta/commons/proper/jelly/trunk/jelly-tags/ant/src/java/org/apache/commons/jelly/task/AntJellyContext.java
URL: http://svn.apache.org/viewvc/jakarta/commons/proper/jelly/trunk/jelly-tags/ant/src/java/org/apache/commons/jelly/task/AntJellyContext.java?rev=417175&r1=417174&r2=417175&view=diff
==============================================================================
--- jakarta/commons/proper/jelly/trunk/jelly-tags/ant/src/java/org/apache/commons/jelly/task/AntJellyContext.java (original)
+++ jakarta/commons/proper/jelly/trunk/jelly-tags/ant/src/java/org/apache/commons/jelly/task/AntJellyContext.java Mon Jun 26 04:48:58 2006
@@ -53,7 +53,10 @@
         }
 
         if ( log.isDebugEnabled() ) {
-            log.debug( "Looking up variable: " + name + " answer: " + answer );
+            String answerString = null;
+            try { answerString = answer.toString(); } catch(Exception ex) {}
+            if(answerString==null && answer!=null) answerString = " of class " + answer.getClass();
+            log.debug( "Looking up variable: " + name + " answer: " + answerString );
         }
 
         return answer;



---------------------------------------------------------------------
To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-dev-help@jakarta.apache.org