The feed output is empty because:
java.lang.ClassCastException: java.lang.String cannot be cast to com.sun.syndication.feed.synd.SyndPerson
at com.sun.syndication.feed.synd.impl.ConverterForAtom03.createAtomPersons(ConverterForAtom03.java:350)
at com.sun.syndication.feed.synd.impl.ConverterForAtom10.createAtomEntry(ConverterForAtom10.java:536)
at com.sun.syndication.feed.synd.impl.ConverterForAtom10.createAtomEntries(ConverterForAtom10.java:419)
at com.sun.syndication.feed.synd.impl.ConverterForAtom10.createRealFeed(ConverterForAtom10.java:400)
at com.sun.syndication.feed.synd.SyndFeedImpl.createWireFeed(SyndFeedImpl.java:229)
at com.sun.syndication.feed.synd.SyndFeedImpl.createWireFeed(SyndFeedImpl.java:211)
at com.sun.syndication.io.SyndFeedOutput.output(SyndFeedOutput.java:134)
at com.xpn.xwiki.plugin.feed.FeedPlugin.getFeedOutput(FeedPlugin.java:1098)
at com.xpn.xwiki.plugin.feed.FeedPluginApi.getFeedOutput(FeedPluginApi.java:834)
The Java code that creates the feed based on the query results sets the contributors of each feed entry as a list of Strings (contributor names) rather than a list of SyndPerson. This works for RSS but not for Atom unfortunately, as indicated by the Javadoc of getContributors
For Atom feeds, this returns the contributors as a list of SyndPerson objects
See http://grepcode.com/file/repo1.maven.org/maven2/rome/rome/1.0/com/sun/syndication/feed/synd/SyndEntry.java#SyndEntry.getContributors() . The only workaround I can think of is to clear the list of contributors after creating the feed:
...
#set ($feed = $xwiki.feed.getWebFeed($queryObject.execute()))
#foreach ($entry in $feed.entries)
## Clear the list of contributors. Ideally we should convert the String to a SyndPerson object but we can't do this from Velocity.
#set ($discard = $entry.setContributors([]))
#end
...
Hope this helps,
Marius