You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by ol...@apache.org on 2013/03/27 10:54:52 UTC

svn commit: r1461487 - in /maven/doxia/doxia/trunk/doxia-core/src: main/java/org/apache/maven/doxia/macro/SwfMacro.java test/java/org/apache/maven/doxia/macro/SwfMacroTest.java

Author: olamy
Date: Wed Mar 27 09:54:52 2013
New Revision: 1461487

URL: http://svn.apache.org/r1461487
Log:
[DOXIA-483] (SwfMacro) org.apache.maven.plugins:maven-site-plugin:3.2:site: org.apache.maven.doxia.module.apt.AptParser cannot be cast to java.lang.String

Submitted by Manuel Blechschmidt.


Modified:
    maven/doxia/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/macro/SwfMacro.java
    maven/doxia/doxia/trunk/doxia-core/src/test/java/org/apache/maven/doxia/macro/SwfMacroTest.java

Modified: maven/doxia/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/macro/SwfMacro.java
URL: http://svn.apache.org/viewvc/maven/doxia/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/macro/SwfMacro.java?rev=1461487&r1=1461486&r2=1461487&view=diff
==============================================================================
--- maven/doxia/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/macro/SwfMacro.java (original)
+++ maven/doxia/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/macro/SwfMacro.java Wed Mar 27 09:54:52 2013
@@ -53,7 +53,12 @@ public class SwfMacro
         // assign parameters
         for ( String key : request.getParameters().keySet() )
         {
-            String str = (String) request.getParameter( key );
+            Object parameterObject = request.getParameter( key );
+            if(!(parameterObject instanceof String))
+            {
+                continue;
+            }
+            String str = (String) parameterObject;
             if ( key.equals( "src" ) )
             {
                 if ( StringUtils.isNotEmpty( str ) )
@@ -166,4 +171,4 @@ public class SwfMacro
 
         sink.rawText( content.toString() );
     }
-}
\ No newline at end of file
+}

Modified: maven/doxia/doxia/trunk/doxia-core/src/test/java/org/apache/maven/doxia/macro/SwfMacroTest.java
URL: http://svn.apache.org/viewvc/maven/doxia/doxia/trunk/doxia-core/src/test/java/org/apache/maven/doxia/macro/SwfMacroTest.java?rev=1461487&r1=1461486&r2=1461487&view=diff
==============================================================================
--- maven/doxia/doxia/trunk/doxia-core/src/test/java/org/apache/maven/doxia/macro/SwfMacroTest.java (original)
+++ maven/doxia/doxia/trunk/doxia-core/src/test/java/org/apache/maven/doxia/macro/SwfMacroTest.java Wed Mar 27 09:54:52 2013
@@ -106,4 +106,53 @@ public class SwfMacroTest
         assertFalse( it.hasNext() );
     }
 
+    /**
+     * Test that SwfMacro does not crash if other things then Strings are provided.
+     *
+     * @throws MacroExecutionException if a macro fails during testing.
+     */
+    public void testOthersThenStringParameters()
+            throws MacroExecutionException
+    {
+
+        Map<String, Object> macroParameters = new HashMap<String, Object>();
+        macroParameters.put( "src", "src.swf" );
+        macroParameters.put( "id", "Movie" );
+        macroParameters.put( "width", "50" );
+        macroParameters.put( "height", "60" );
+        macroParameters.put( "quality", "best" );
+        macroParameters.put( "menu", "true" );
+        macroParameters.put( "loop", "3" );
+        macroParameters.put( "play", "false" );
+        macroParameters.put( "version", "6" );
+        macroParameters.put( "allowScript", "always" );
+        macroParameters.put( "notAString", new Integer(0) );
+
+
+        SinkEventTestingSink sink = new SinkEventTestingSink();
+        MacroRequest request = new MacroRequest( macroParameters, new File( "." ) );
+        SwfMacro macro = new SwfMacro();
+        macro.required( "src", "value" );
+
+        macro.execute( sink, request );
+
+        Iterator<SinkEventElement> it = sink.getEventList().iterator();
+        SinkEventElement event = it.next();
+
+        assertEquals( "rawText", event.getName() );
+        assertFalse( it.hasNext() );
+
+        request = new MacroRequest( new HashMap<String, Object>(), new File( "." ) );
+        sink.reset();
+
+        macro.execute( sink, request );
+
+        it = sink.getEventList().iterator();
+        event = it.next();
+
+        assertEquals( "rawText", event.getName() );
+        assertFalse( it.hasNext() );
+    }
+
+
 }