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() );
+ }
+
+
}