[ROME-159] xml:base and xml:lang attribute for the content tag Atom 1.0 Created: 05/Dec/13  Updated: 24/Feb/14

Status: Open
Project: rome
Component/s: None
Affects Version/s: None
Fix Version/s: None

Type: Improvement Priority: Major
Reporter: setty Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Tags: atom10, base, lang, parser, xmlnamespace

 Description   

Right now using the latest version of Rome Atom & RSS library one can not be able to retrieve the xml:base and xml:lang attributes set on the content tag for Atom 1.0. From the Atom 1.0 RFC where ever the xml:base and xml:lang attributes can be specified those should be able to retrieve through the API.



 Comments   
Comment by setty [ 24/Feb/14 ]

Seems like there is no activity on the reported issue. Is there any way i can contribute to this project to fix this issue myself ?





[ROME-158] Rome fails to initialize when bundled with an application deployed to Felix/OSGi Created: 15/Sep/13  Updated: 15/Sep/13

Status: Open
Project: rome
Component/s: None
Affects Version/s: current
Fix Version/s: None

Type: Bug Priority: Major
Reporter: jluehe Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

The Rome library fails to initialize when bundled with an application deployed to Felix. The failure to initialize manifests itself through Rome's com.sun.syndication.io.impl.PropertiesLoader constructor throwing a NullPointerException when asked to load the "com/sun/syndication/rome.properties" resource, which is also embedded in the (same) Rome JAR file:

Caused by: java.lang.NullPointerException
at java.util.Properties$LineReader.readLine(Properties.java:434)
at java.util.Properties.load0(Properties.java:353)
at java.util.Properties.load(Properties.java:341)
at
com.sun.syndication.io.impl.PropertiesLoader.<init>(PropertiesLoader.java:74)
at
com.sun.syndication.io.impl.PropertiesLoader.getPropertiesLoader(PropertiesLoader.java:46)
at com.sun.syndication.io.impl.PluginManager.<init>(PluginManager.java:54)
at com.sun.syndication.io.impl.PluginManager.<init>(PluginManager.java:46)
at com.sun.syndication.feed.synd.impl.Converters.<init>(Converters.java:40)
at
com.sun.syndication.feed.synd.SyndFeedImpl.<clinit>(SyndFeedImpl.java:61)
... 23 more

See below for full stack trace.

The current com.sun.syndication.io.impl.PropertiesLoader constructor code attempts to load the requested "com/sun/syndication/rome.properties" resource from the classloader returned by a call to Thread.currentThread().getContextClassLoader().

This just happens to work if the (web) application that integrates ROME is deployed on Tomcat, where the Tomcat container sets the Thread's ContextClassLoader to be the same as the classloader that loaded the (web) application (instance of org.apache.catalina.loader.WebappClassLoader), before dispatching any requests to it on that Thread.

However, this does not work if the application that bundles ROME is deployed to Felix (and most likely other OSGi implementations), where the Thread's context classloader is not explicitly set. In the case of Felix, the classloader returned by Thread.currentThread().getContextClassLoader() is an instance of sun.misc.Launcher$AppClassLoader, which does not have any visibility into any application specific JAR-files (ROME in this case), causing the call to

java.lang.ClassLoader#getResourceAsStream("com/sun/syndication/rome.properties")

to return NULL, which results in the NullPointerException mentioned above, when NULL is passed to java.util.Properties#load.

The proposed fix (see diffs below) replaces the java.lang.Thread#getContextClassLoader() call with com.sun.syndication.io.impl.PropertiesLoader.class.getClassLoader(), which returns the classloader that loaded the
com/sun/syndication/io/impl/PropertiesLoader.class resource (Java class file). This classloader is able to load any resources embedded in the same JAR file as com/sun/syndication/io/impl/PropertiesLoader.class, including "com/sun/syndication/rome.properties".

The proposed fix works with Tomcat, Felix, or any other platform.

The remaining proposed changes in the diffs are of the same nature (replacing Thread.currentThread().getContextClassLoader() with Class#getClassLoader()), and are required because the Rome code caches artifacts such as PropertiesLoader and FeedGenerators in a Map, using the classloader that loaded them as the lookup key.

---------------------------------------------------------
Full stack trace:

[2013/07/09:20:57:18] (BaseExecute.java:224) INFO
com.yahoo.yql.api.execute.BaseExecute: Execute error
java.lang.ExceptionInInitializerError
at com.sun.syndication.io.SyndFeedInput.build(SyndFeedInput.java:149)
at
com.yahoo.yql.execute.java.tables.impl.FeedNormalizerTable.normalize(FeedNormalizerTable.java:99)
at
com.yahoo.yql.execute.java.tables.impl.FeedNormalizerTable.normalizeXmlWithXslLiteralFunction(FeedNormalizerTable.java:601)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at
com.yahoo.yql.resources.JavaExecuteMethod.invoke(JavaExecuteMethod.java:36)
at
com.yahoo.yql.execute.java.JavaExecuteMethodInvocation.invoke(JavaExecuteMethodInvocation.java:139)
at com.yahoo.yql.execute.java.JavaExecute.execute(JavaExecute.java:74)
at com.yahoo.yql.api.execute.BaseExecute.execute(BaseExecute.java:140)
at
com.yahoo.yql.table.module.operator.ExecuteFilter.nextItem(ExecuteFilter.java:68)
at com.yahoo.yql.api.model.SourceImpl.next(SourceImpl.java:109)
at com.yahoo.yql.compiler.module.Output.nextItem(Output.java:33)
at com.yahoo.yql.api.model.SourceImpl.next(SourceImpl.java:109)
at com.yahoo.yql.core.query.QueryEngine.executePipe(QueryEngine.java:150)
at
com.yahoo.yql.execute.js.JavascriptQuery$2.call(JavascriptQuery.java:279)
at
com.yahoo.yql.execute.js.JavascriptQuery$2.call(JavascriptQuery.java:219)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
at java.util.concurrent.FutureTask.run(FutureTask.java:166)
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:722)
Caused by: java.lang.NullPointerException
at java.util.Properties$LineReader.readLine(Properties.java:434)
at java.util.Properties.load0(Properties.java:353)
at java.util.Properties.load(Properties.java:341)
at
com.sun.syndication.io.impl.PropertiesLoader.<init>(PropertiesLoader.java:74)
at
com.sun.syndication.io.impl.PropertiesLoader.getPropertiesLoader(PropertiesLoader.java:46)
at com.sun.syndication.io.impl.PluginManager.<init>(PluginManager.java:54)
at com.sun.syndication.io.impl.PluginManager.<init>(PluginManager.java:46)
at com.sun.syndication.feed.synd.impl.Converters.<init>(Converters.java:40)
at
com.sun.syndication.feed.synd.SyndFeedImpl.<clinit>(SyndFeedImpl.java:61)
... 23 more

---------------------------------------------------------
Proposed fix (diffs):

diff -ur com/sun/syndication/io/WireFeedInput.java /Users/jluehe/Desktop/ws/v2/thirdparty/rome/trunk/src/main/java/com/sun/syndication/io/WireFeedInput.java
— com/sun/syndication/io/WireFeedInput.java 2008-12-08 14:49:46.000000000 -0800
+++ /Users/jluehe/Desktop/ws/v2/thirdparty/rome/trunk/src/main/java/com/sun/syndication/io/WireFeedInput.java 2013-07-09 15:37:40.000000000 -0700
@@ -59,10 +59,10 @@
private static FeedParsers getFeedParsers() {
synchronized(WireFeedInput.class) {
FeedParsers parsers = (FeedParsers)

  • clMap.get(Thread.currentThread().getContextClassLoader());
    + clMap.get(WireFeedInput.class.getClassLoader());
    if (parsers == null) { parsers = new FeedParsers(); - clMap.put(Thread.currentThread().getContextClassLoader(), parsers); + clMap.put(WireFeedInput.class.getClassLoader(), parsers); }

    return parsers;
    }
    diff -ur com/sun/syndication/io/WireFeedOutput.java /Users/jluehe/Desktop/ws/v2/thirdparty/rome/trunk/src/main/java/com/sun/syndication/io/WireFeedOutput.java

      • com/sun/syndication/io/WireFeedOutput.java 2009-01-08 08:46:12.000000000 -0800
        +++ /Users/jluehe/Desktop/ws/v2/thirdparty/rome/trunk/src/main/java/com/sun/syndication/io/WireFeedOutput.java 2013-07-09 15:49:06.000000000 -0700
        @@ -48,10 +48,10 @@
        private static FeedGenerators getFeedGenerators() {
        synchronized(WireFeedOutput.class) {
        FeedGenerators generators = (FeedGenerators)
  • clMap.get(Thread.currentThread().getContextClassLoader());
    + clMap.get(WireFeedOutput.class.getClassLoader());
    if (generators == null) { generators = new FeedGenerators(); - clMap.put(Thread.currentThread().getContextClassLoader(), generators); + clMap.put(WireFeedOutput.class.getClassLoader(), generators); }

    return generators;
    }
    diff -ur com/sun/syndication/io/impl/PluginManager.java /Users/jluehe/Desktop/ws/v2/thirdparty/rome/trunk/src/main/java/com/sun/syndication/io/impl/PluginManager.java

      • com/sun/syndication/io/impl/PluginManager.java 2009-01-09 15:53:34.000000000 -0800
        +++ /Users/jluehe/Desktop/ws/v2/thirdparty/rome/trunk/src/main/java/com/sun/syndication/io/impl/PluginManager.java 2013-07-23 10:49:59.000000000 -0700
        @@ -129,7 +129,7 @@
        *
        */
        private Class[] getClasses() throws ClassNotFoundException {
  • ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
    + ClassLoader classLoader = PluginManager.class.getClassLoader();
    List classes = new ArrayList();
    boolean useLoadClass = Boolean.valueOf(System.getProperty("rome.pluginmanager.useloadclass", "false")).booleanValue();
    for (int i = 0; i <_propertyValues.length; i++) {
    diff -ur com/sun/syndication/io/impl/PropertiesLoader.java /Users/jluehe/Desktop/ws/v2/thirdparty/rome/trunk/src/main/java/com/sun/syndication/io/impl/PropertiesLoader.java
      • com/sun/syndication/io/impl/PropertiesLoader.java 2007-08-01 02:28:08.000000000 -0700
        +++ /Users/jluehe/Desktop/ws/v2/thirdparty/rome/trunk/src/main/java/com/sun/syndication/io/impl/PropertiesLoader.java 2013-07-23 10:49:59.000000000 -0700
        @@ -40,11 +40,11 @@
        public static PropertiesLoader getPropertiesLoader() {
        synchronized(PropertiesLoader.class) {
        PropertiesLoader loader = (PropertiesLoader)
  • clMap.get(Thread.currentThread().getContextClassLoader());
    + clMap.get(PropertiesLoader.class.getClassLoader());
    if (loader == null) {
    try { loader = new PropertiesLoader(MASTER_PLUGIN_FILE, EXTRA_PLUGIN_FILE); - clMap.put(Thread.currentThread().getContextClassLoader(), loader); + clMap.put(PropertiesLoader.class.getClassLoader(), loader); }

    catch (IOException ex) {
    throw new RuntimeException(ex);
    @@ -66,7 +66,7 @@
    */
    private PropertiesLoader(String masterFileLocation,String extraFileLocation) throws IOException {
    List propertiesList = new ArrayList();

  • ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
    + ClassLoader classLoader = PropertiesLoader.class.getClassLoader();

try {
InputStream is = classLoader.getResourceAsStream(masterFileLocation);






[ROME-157] Fixed locale to parse date Created: 09/Feb/12  Updated: 09/Feb/12

Status: Open
Project: rome
Component/s: None
Affects Version/s: current
Fix Version/s: None

Type: Bug Priority: Major
Reporter: gcouti Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: 1 day
Time Spent: Not Specified
Original Estimate: 1 day
Environment:

Linux/Ubuntu 11.10 and java 1.6


Tags: Locale, Parse, PubDate

 Description   

I'm trying to parse some RSS that are not mine. The pubDate of this is like that <pubDate>09 Fev 2012 14:46</pubDate>.

The person that generated this date used locale BR. I checked Rome code and i see that it fixed to use US to parse dates. It is interesting to use other Locales. It can be passed in rome.properties.






[ROME-156] rome-propono POM in Maven Central needs fixes Created: 26/Jun/11  Updated: 26/Jun/11

Status: Open
Project: rome
Component/s: None
Affects Version/s: None
Fix Version/s: None

Type: Bug Priority: Minor
Reporter: greg.pendlebury Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

Heyo, just thought I'd let you guys know that the POM released on Maven Central: http://search.maven.org/remotecontent?filepath=net/java/dev/rome/rome-propono/1.0.0/rome-propono-1.0.0.pom fails when used as a dependency in isolation.

I noticed that you had commented out the repository for oauth and I had to add that into my own project before propono would resolve along with all dependencies. It appears that there are some oauth artifacts available via Maven Central, but not the versions listed as your dependencies.

Ta,
Greg






[ROME-155] Download section is empty Created: 24/May/11  Updated: 24/May/11

Status: Open
Project: rome
Component/s: www
Affects Version/s: current
Fix Version/s: None

Type: Bug Priority: Blocker
Reporter: shadowcreeper Assignee: Unassigned
Resolution: Unresolved Votes: 2
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Tags: download, jar, missing

 Description   

The downloads section of the web page has nothing to download.

There should be a download link to the latest version of the ROME src-zip/jars (as well as links to past versions).

At the very least, there should be a download link to the latest version of the compiled jar file.

See:
http://java.net/projects/rome/downloads






[ROME-154] Problem parsing xml with rome on android Created: 07/Apr/11  Updated: 07/Apr/11

Status: Open
Project: rome
Component/s: None
Affects Version/s: None
Fix Version/s: None

Type: Bug Priority: Major
Reporter: mmm286 Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

Hi,

I have rome and I'm trying to parse RSS:
http://www.miguiatv.com/rss/tve1.xml
But when I'm trying to get the Description field:
System.out.println("descripcion es ..." + ent.getDescription());

Eclipse gives me an error:
Could not find class '[Ljava.beans.PropertyDescriptor;', referenced from method com.sun.syndication.feed ....

The AVD gives me a FC.

Could you help me please?
Many thanks and sorry for my english!






[ROME-153] <generator> element is ignored in the rss parser? Created: 25/Mar/11  Updated: 25/Mar/11

Status: Open
Project: rome
Component/s: None
Affects Version/s: current
Fix Version/s: None

Type: Bug Priority: Major
Reporter: sbereda Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Tags: element, generator, ignored, parser, rss

 Description   

I try to parse a rss feed with Rome and read out the <generator> subelement of <channel>. Although the element is defined in the RSS feed, Channel#getGenerator() returns always null. I reviewed some parts of the parser source and it seems that the rss parser does not handle the <generator> element (or do i missed this part?). Please correct this.






[ROME-152] Locale dependent parse for YWeather rss Created: 10/Dec/10  Updated: 10/Dec/10

Status: Open
Project: rome
Component/s: www
Affects Version/s: current
Fix Version/s: milestone 1

Type: Bug Priority: Major
Reporter: deleted_user Assignee: rome-issues
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: Windows XP
Platform: All


Issuezilla Id: 152

 Description   

Modules project, yahoo weather client.
When trying to parse rss response the library uses the default locale to build
SimpleDateFormat to parse the date coming in the response. So, if my default
locale is not en-us, I get ParseExceptions for many items in the feed. And it
feels tricky to make SimpleDateFormat instance static field cause date formats
are not synchronized.

Becides, they report info about wind in the following way:
<yweather:wind chill="-8" direction="290" speed="20.92" />
But the library tryes to parse speed as integer and fails.






[ROME-151] rome-fetcher results in "too many open files" Created: 09/Dec/10  Updated: 09/Dec/10

Status: Open
Project: rome
Component/s: www
Affects Version/s: current
Fix Version/s: milestone 1

Type: Task Priority: Major
Reporter: sujitpal Assignee: rome-issues
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: Other


Attachments: Text File patch.txt    
Issuezilla Id: 151

 Description   

I was running a Java batch program (using rome-feedfetcher) from the command
line (call it client), that sends about 10,000 terms to a a RSS producing
service (call it server A), which then proxies to another RSS producing service
(call it server B) for part of its data using rome-feedfetcher.

The client instantiates a single HttpClientFeedFetcher and calls server A with a
fetcher.retrieveFeed(URL). Server A is a Spring app with a single
HttpClientFeedFetcher set into its application context. Server A then sends a
request to server B with its own fetcher.retrieveFeed(URL).

Occasionally, the server A would return a 500 error to the client. The stack
trace indicates that too many sockets are open on server A (too many open
files). If I stop the client and restart few minutes later, it will keep going
and then stop again with a 500 error after a couple of 100 terms. Waiting longer
between restarts increases the number of terms processed.

Looking at the source, I see that HttpClientFeedFetcher instantiates an
HttpClient object for every invocation of retrieveFeed(URL). According to this
page. My theory is that each HttpClient grabs a socket which eventually gets
garbage collected, but my client is asking for sockets faster than the server A
can garbage collect them.

According to this page:
http://hc.apache.org/httpclient-3.x/performance.html

it is advisable to have a single HttpClient reused across multiple invocations.
The attached patch does this. In addition (because it has to work within a
server environment), I am using the MultiThreadedHttpConnectionManager (default
pool size 20), and have added a poolSize member with getPoolSize() and
setPoolSize().

Using the patched JAR allowed me to run through all the terms in one shot
without the need for a restart.



 Comments   
Comment by sujitpal [ 09/Dec/10 ]

Created an attachment (id=47)
patch file (created at root of fetcher project)





[ROME-150] Content Module: Suggested changes to content:encoded tag Created: 03/Dec/10  Updated: 03/Dec/10

Status: Open
Project: rome
Component/s: www
Affects Version/s: current
Fix Version/s: milestone 1

Type: Improvement Priority: Major
Reporter: sujitpal Assignee: rome-issues
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: Other


Issuezilla Id: 150

 Description   

Current ROME version: 1.0
Current ROME Content Module version: 0.4

I am using ROME to generate an RSS 2.0 feed to represent a mashup page. Each
component of the mashup needs to have a title, description, a short snippet and
a long snippet (the last 2 are optional, but both can be specified for a given
component).

I am currently using the following mappings:
title => /rss/channel/item/title
description => /rss/channel/item/description
short_snippet => /rss/channel/item/content:encoded[0]
long_snippet => /rss/channel/item/content:encoded[1]

Currently I am relying on convention, ie, I always build two content:encoded
elements per item (it is empty if either or both short_snippet and long_snippet
are not specified) and during parse time, the client would have to /know/ that
content:encoded[0] is the short snippet and content:element[1] is the long snippet.

Would be nice if content:encoded allowed an attribute (the closest equivalent I
could find was Atom content@type attribute, although I would prefer it not
enforce the valid mime type restriction). The attribute could be optional and
would default to current rendering if not specified.

Would this be something that is feasible? I know it involves changing the spec,
which is frozen/unspecified, depending on how you look at it, so it may not be
"correct" to have ROME support something that is not allowed by the spec. But it
would be nice to have...

Thanks






[ROME-149] Use proper log warning instead of printing to System.err when fetcher.properties is not found Created: 27/Nov/10  Updated: 27/Nov/10

Status: Open
Project: rome
Component/s: www
Affects Version/s: current
Fix Version/s: milestone 1

Type: Improvement Priority: Major
Reporter: deleted_user Assignee: rome-issues
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: All


Issuezilla Id: 149

 Description   

The AbstractFeedFetcher will print the warning directly to System.err. It should
use a proper log instead (especially since the absence of fetcher.properties
does not prevent the feature to work)






[ROME-148] SyndFeedImpl#equals throws ClassCastException if compared to an instance of a different class Created: 13/Oct/10  Updated: 13/Oct/10

Status: Open
Project: rome
Component/s: www
Affects Version/s: current
Fix Version/s: milestone 1

Type: Bug Priority: Major
Reporter: cole_markham Assignee: rome-issues
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: All


Issuezilla Id: 148

 Description   

The equals method of SyndFeedImpl does not check the type of the object being
compared to before casting to SyndFeedImpl. If you compare with an instance of
another class then it throws a class cast. This is in violation of the contract
for equals. See also ROME-81 which was closed.






[ROME-147] Contradictory license terms for ROME Modules Created: 27/Jul/10  Updated: 05/Aug/10

Status: Open
Project: rome
Component/s: www
Affects Version/s: current
Fix Version/s: milestone 1

Type: Bug Priority: Major
Reporter: danrabe Assignee: rome-issues
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: All


Issuezilla Id: 147

 Description   

The main ROME page states that ROME is licensed under Apache 2.0.

However, some of the ROME Modules files contain copyright statements that are
contradictory to Apache 2.0.

The following files appear to be LGPL only:
./com/sun/syndication/feed/module/base/CustomTag.java
./com/sun/syndication/feed/module/base/CustomTagImpl.java
./com/sun/syndication/feed/module/base/CustomTags.java
./com/sun/syndication/feed/module/base/CustomTagsImpl.java
./com/sun/syndication/feed/module/base/io/CustomTagGenerator.java
./com/sun/syndication/feed/module/base/io/CustomTagParser.java
./com/sun/syndication/feed/module/base/ValidationException.java
./com/sun/syndication/feed/module/itunes/io/ITunesParserOldNamespace.java

The following files do not contain a copyright or license statement:
./com/sun/syndication/feed/module/georss/geometries/AbstractCurve.java
./com/sun/syndication/feed/module/georss/geometries/AbstractGeometricPrimitive.java
./com/sun/syndication/feed/module/georss/geometries/AbstractGeometry.java
./com/sun/syndication/feed/module/georss/geometries/AbstractRing.java
./com/sun/syndication/feed/module/georss/geometries/AbstractSurface.java
./com/sun/syndication/feed/module/georss/geometries/Envelope.java
./com/sun/syndication/feed/module/georss/geometries/LinearRing.java
./com/sun/syndication/feed/module/georss/geometries/LineString.java
./com/sun/syndication/feed/module/georss/geometries/Point.java
./com/sun/syndication/feed/module/georss/geometries/Polygon.java
./com/sun/syndication/feed/module/georss/geometries/Position.java
./com/sun/syndication/feed/module/georss/geometries/PositionList.java
./com/sun/syndication/feed/module/mediarss/io/AlternateMediaModuleParser.java
./com/sun/syndication/feed/module/sle/io/LabelNamespaceElement.java
./com/sun/syndication/feed/module/sle/io/ModuleGenerator.java
./com/sun/syndication/feed/module/sse/modules/Conflict.java
./com/sun/syndication/feed/module/sse/modules/Conflicts.java
./com/sun/syndication/feed/module/sse/modules/History.java
./com/sun/syndication/feed/module/sse/modules/Related.java
./com/sun/syndication/feed/module/sse/modules/Sharing.java
./com/sun/syndication/feed/module/sse/modules/SSEModule.java
./com/sun/syndication/feed/module/sse/modules/Sync.java
./com/sun/syndication/feed/module/sse/modules/Update.java
./com/sun/syndication/feed/module/sse/SSE091Generator.java
./com/sun/syndication/feed/module/sse/SSE091Parser.java

We would like to use this library in a commercial product, but our corporate
lawyers require that every source code file be explicit about its licensing
terms. If the intent of the ROME modules project is to release this software
under an Apache 2.0 license, then we would request that this be made explicit in
all of the files.



 Comments   
Comment by tucu [ 05/Aug/10 ]

as a temporary solution, you could use Rome just without those modules.





[ROME-146] Rome 1.0 does not follow the W3C Feed Validator recommendations Created: 27/Apr/10  Updated: 27/Apr/10

Status: Open
Project: rome
Component/s: www
Affects Version/s: current
Fix Version/s: milestone 1

Type: Bug Priority: Major
Reporter: luzifer42 Assignee: rome-issues
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: All


Issuezilla Id: 146

 Description   

Rome 1.0 does not follow the W3C Feed Validator recommendations.

"A channel should not include both category and dc:subject"
"A channel should not include both pubDate and dc:date"
"A channel should not include both language and dc:language"
"A channel should not include both copyright and dc:rights"

input:
================
public class TestPodDate {
public static void main(String[] args) throws Throwable {
SyndFeed feed = new SyndFeedImpl();
feed.setFeedType("rss_2.0");
feed.setTitle("Title");
feed.setLink("http://www.link.com");
feed.setDescription("Description");

feed.setPublishedDate(new Date());
feed.setLanguage("en");
feed.setCopyright("Copyright");
SyndCategory c=new SyndCategoryImpl();
c.setName("Category");
feed.setCategories(Arrays.asList(new SyndCategory[]

{c}

));

new SyndFeedOutput().output(feed,new OutputStreamWriter(System.out));
}
}

output:
================
<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0">
<channel>
<title>Title</title>
<link>http://www.link.com</link>
<description>Description</description>
<language>en</language>
<copyright>Copyright</copyright>
<pubDate>Tue, 27 Apr 2010 15:13:45 GMT</pubDate>
<category>Category</category>
<dc:subject>Category</dc:subject>
<dc:date>2010-04-27T15:13:45Z</dc:date>
<dc:language>en</dc:language>
<dc:rights>Copyright</dc:rights>
</channel>
</rss>






[ROME-145] Classloader fix under Tomcat Created: 23/Apr/10  Updated: 23/Apr/10

Status: Open
Project: rome
Component/s: www
Affects Version/s: current
Fix Version/s: milestone 1

Type: Task Priority: Blocker
Reporter: hovis Assignee: rome-issues
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: All


Attachments: Text File rome-classloader-patch.diff    
Issuezilla Id: 145

 Description   

We use Rome within a webapp on Tomcat6 and the properties failed to be found due
to the use of Thread.currentThread().getContextClassLoader().

In my case the rome.jar is dynamically loaded so
Thread.currentThread().getContextClassLoader() will not contain the
classloader for rome.jar.

The patch included fixes this so it always uses the classloader which the Rome
jar was loaded by regardless of the classloader the current thread is using.

Tested the patch outside of Tomcat in a regular simple app and that is fine.

Also before patching, we tried enabling the fix made for OSGi support, but that
was no good either in this situation.



 Comments   
Comment by hovis [ 23/Apr/10 ]

Created an attachment (id=45)
Classloader fix for Tomcat webapp use





[ROME-144] Propono's AtomPub Service Doc misplaces atom:type Created: 12/Apr/10  Updated: 12/Apr/10  Resolved: 12/Apr/10

Status: Resolved
Project: rome
Component/s: www
Affects Version/s: current
Fix Version/s: milestone 1

Type: Bug Priority: Major
Reporter: snoopdave Assignee: snoopdave
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: All


Issuezilla Id: 144

 Description   

The atom:type attribute should be on the atom:title elements and not on atom:workspace and
atom:collection



 Comments   
Comment by snoopdave [ 12/Apr/10 ]

Fixed in CVS





[ROME-143] Propono sets Location header(s) incorrectly. Created: 03/Apr/10  Updated: 12/Apr/10  Resolved: 12/Apr/10

Status: Resolved
Project: rome
Component/s: www
Affects Version/s: current
Fix Version/s: milestone 1

Type: Bug Priority: Critical
Reporter: snoopdave Assignee: snoopdave
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: All


Issuezilla Id: 143

 Description   

Propono's AtomPub server framework allows an implementation to return only a Location header and so
there is no way to specify both the real URI of a created resource (i.e. an HTML blog page) and the
AtomPub edit URI of the resource. Here's how this should work:

  • Location: the "real" URI of the created resource (e.g. a blog permalink). To set this an implementation
    must return an alternate link with rel="alt" and the URI.
  • Content-Location: the AtomPub edit URI for the resource. To set this an implementation returns an
    other link with rel="edit"


 Comments   
Comment by snoopdave [ 12/Apr/10 ]

Fixed in CVS





[ROME-142] Make ROME 1.0 works in OSGi Created: 19/Mar/10  Updated: 10/Aug/10

Status: Open
Project: rome
Component/s: www
Affects Version/s: current
Fix Version/s: milestone 1

Type: Task Priority: Blocker
Reporter: splatch Assignee: rome-issues
Resolution: Unresolved Votes: 1
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: All


Attachments: Text File osgi.patch    
Issuezilla Id: 142

 Description   

When I tired to run Rome on ServiceMix I found error with class loading. After
short investigate i found blog post:
http://js.jipiju.com/2009/08/04/osgi-jumping-through-classoading-hoops/

I patched Rome PropertiesLoader to use PropertiesLoader.class.getClassLoader()
in place Thread.currentThread().getContextClassLoader(). Patched version is
avaliable on:
http://repository.code-house.org/content/repositories/code-house.public.release/rome/rome/1.0-osgi/

Patched PropertiesLoader are available in rome-1.0-osgi-sources.jar.

Regards,
Luke



 Comments   
Comment by jamesroper [ 10/Aug/10 ]

Created an attachment (id=46)
Patch for OSGI compatibility





[ROME-141] Broken RSS feed sends XML parser off on infinite loop Created: 04/Mar/10  Updated: 04/Mar/10

Status: Open
Project: rome
Component/s: www
Affects Version/s: current
Fix Version/s: milestone 1

Type: Bug Priority: Critical
Reporter: bfancher Assignee: rome-issues
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: Macintosh


Issuezilla Id: 141

 Description   

Fetch a broken XML feed causes ROME to never return. Generating stack traces always shows it stuck somewhere trying to parse the XML
feed. For example:

"Thread-0" prio=5 tid=0x00231320 nid=0xb38a00 runnable [0xb1092000..0xb1092d90]
at sun.nio.cs.UTF_8$Decoder.decodeLoop(UTF_8.java:416)
at java.nio.charset.CharsetDecoder.decode(CharsetDecoder.java:544)
at sun.nio.cs.StreamDecoder$CharsetSD.implRead(StreamDecoder.java:445)
at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:183)

  • locked <0x1595d9d0> (a java.io.InputStreamReader)
    at sun.nio.cs.StreamDecoder.read0(StreamDecoder.java:132)
  • locked <0x1595d9d0> (a java.io.InputStreamReader)
    at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:176)
  • locked <0x1595d9d0> (a java.io.InputStreamReader)
    at java.io.InputStreamReader.read(InputStreamReader.java:167)
    at com.sun.syndication.io.XmlReader.read(XmlReader.java:394)
    at java.io.Reader.read(Reader.java:103)
    at com.sun.syndication.io.impl.XmlFixerReader.read(XmlFixerReader.java:215)
    at com.sun.syndication.io.impl.XmlFixerReader.read(XmlFixerReader.java:294)
    at org.apache.xerces.impl.XMLEntityManager$EntityScanner.load(XMLEntityManager.java:3265)
    at org.apache.xerces.impl.XMLEntityManager$EntityScanner.scanData(XMLEntityManager.java:2707)
    at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanCDATASection(XMLDocumentFragmentScannerImpl.java:901)
    at
    org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(XMLDocumentFragmentScannerImpl.jav
    a:1497)
    at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:329)
    at org.apache.xerces.parsers.DTDConfiguration.parse(DTDConfiguration.java:525)
    at org.apache.xerces.parsers.DTDConfiguration.parse(DTDConfiguration.java:581)
    at org.apache.xerces.parsers.XMLParser.parse(XMLParser.java:152)
    at org.apache.xerces.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1175)
    at org.jdom.input.SAXBuilder.build(SAXBuilder.java:453)
    at org.jdom.input.SAXBuilder.build(SAXBuilder.java:851)
    at com.sun.syndication.io.WireFeedInput.build(WireFeedInput.java:194)
    (my code . . .)

Curling the feed url shows that the feed is broken:

bfancher:~ bruce$ curl http://www.columbiafoursquare.com/breakthrough/podcasts/podcast.xml
<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0">
<channel>
<atom:link rel="self" href="http://breakthrough.columbiafoursquare.com/podcasts/podcast.xml" type="application/rss+xml" />
<lastBuildDate>Thu, 18 Feb 2010 17:29:15 -0800</lastBuildDate>
<title>Breakthrough</title>
<itunes:author>Breakthrough Youth Church</itunes:author>
<link>http://breakthrough.columbiafoursquare.com</link>
<generator>Podcast Maker v1.3.8b - http://www.lemonzdream.com/podcastmaker</generator>
<description />
<itunes:subtitle />
<itunes:summary />
<language>en</language>
<copyright />
<image>
<url>http://breakthrough.columbiafoursquare.com/podcasts/breakthrough_%20logo%20copy_144.jpg</url>
<title>Breakthrough</title>
<link>http://breakthrough.columbiafoursquare.com</link>
<width>144</width>
<height>108</height>
</image>
<itunes:image href="http://breakthrough.columbiafoursquare.com/podcasts/breakthrough_%20logo%20copy.jpg" />
<category>Christianity</category>
<itunes:category text="Religion & Spirituality">
<itunes:category text="Christianity" />
</itunes:category>
<itunes:keywords />
<itunes:explicit>no</itunes:explicit>
<item>
<title>The Above and Beyond God! </title>
<itunes:author>Breakthrough Youth Church</itunes:author>
<description><![CDATA[Audra Thurman || Sermon]bfancher:~ bruce$






[ROME-140] Add support for file:// URLs to ROME Fetcher Created: 11/Feb/10  Updated: 11/Feb/10

Status: Open
Project: rome
Component/s: www
Affects Version/s: current
Fix Version/s: milestone 1

Type: Improvement Priority: Major
Reporter: dwdyer Assignee: rome-issues
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: All


Issuezilla Id: 140

 Description   

Using ROME Fetcher, I would like to read an RSS file from the file system but
it doesn't seem to be possible. I want to write a test that reads a known RSS
file as test data.

The HTTP fetcher complains if the URL is not an HTTP URL. Perhaps there needs
to be another implementation for file URLs?






[ROME-139] Rome propono issue: 'Category' in service document not correctly parsed Created: 29/Jan/10  Updated: 31/Mar/10

Status: Open
Project: rome
Component/s: www
Affects Version/s: current
Fix Version/s: milestone 1

Type: Bug Priority: Major
Reporter: floysand Assignee: rome-issues
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: Windows XP
Platform: PC


Issuezilla Id: 139

 Description   

There is a problem with attributes on "category" elements of a service document.
The rome propono library won't recognize the attribute "term" (or any other
attributes) unless they are prefixed with namespace "atom:".

This prefix on the attributes should not be needed if the namespaces are defined
correctly. An example of this can be seen in the examples provided by the APP
RFC:
http://www.atomenabled.org/developers/protocol/atom-protocol-spec.php#appdocs_example.

If I use the following code to parse the service document given in the example,
the attributes of the "atom:category" elements in the second collection are null.

...
AtomService atomService = ClientAtomService.documentToService(jdom_doc);
(where jdom_doc is a org.jdom.Document of the example atom service document)
....

The term attributes and scheme attributes should both have a value, as the draft
from the example shows:

<categories fixed="yes">
<atom:category
scheme="http://example.org/extra-cats/"
term="joke" />
<atom:category
scheme="http://example.org/extra-cats/"
term="serious" />
</categories>

I also tried to make a call to cateogoriesToElement() on the "Categories"
object, but this throws an exception due to that a null value is not allowed for
the "term" attribute.

If I prefix the attributes of the "atom:cateogory" with "atom:", then all is fine.



 Comments   
Comment by snoopdave [ 31/Mar/10 ]

I suspect this is a JDOM bug and we won't be able to do much about it. Please post the service document
that you are attempting to parse so we can see how your namespaces are defined.





[ROME-138] pom.xml fixes Created: 26/Dec/09  Updated: 26/Dec/09

Status: Open
Project: rome
Component/s: www
Affects Version/s: current
Fix Version/s: milestone 1

Type: Task Priority: Major
Reporter: hboutemy Assignee: rome-issues
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: All


Attachments: Text File rome-138.txt    
Issuezilla Id: 138

 Description   

little fixes I had to do with provided pom.xml to get Rome properly compiling on
my computer



 Comments   
Comment by hboutemy [ 26/Dec/09 ]

Created an attachment (id=44)
pom.xml patch file





[ROME-137] mediarss module : bug in parsing isDefault media:content attribute. Created: 16/Oct/09  Updated: 16/Oct/09

Status: Open
Project: rome
Component/s: www
Affects Version/s: current
Fix Version/s: milestone 1

Type: Bug Priority: Major
Reporter: mably Assignee: rome-issues
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: All


Issuezilla Id: 137

 Description   

In file com.sun.syndication.feed.module.mediarss.io.MediaModuleParser.java at line
192 :

Boolean.getBoolean(...) is used instead of Boolean.parseBoolean(...) or
Boolean.valueOf(...) -> mediacontent.isDefaultContent() always returns false even
when it should return true.






[ROME-136] RSS item description is not complete Created: 06/Oct/09  Updated: 06/Oct/09

Status: Open
Project: rome
Component/s: www
Affects Version/s: current
Fix Version/s: milestone 1

Type: Task Priority: Major
Reporter: kimhuat Assignee: rome-issues
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: All


Attachments: XML File rss.xml    
Issuezilla Id: 136

 Description   

When trying to parse the RSS item below, the description obtained is not
complete.

<item>
<title>Single-Session Primary Schools</title>
<description>
<img
src="http://www.moe.gov.sg/media/spotlight/assets_c/2009/09/spotlight-single-
session-thumb-120x80-282.jpg" alt="Teacher and his students tossing frisbees
into the air" />
<![CDATA[<p>MOE will be <a href
="http://www.moe.gov.sg/media/press/2009/09/moe-to-build-new-primary-
schoo.php">building 11 new primary schools and upgrading another 28 existing
schools from November 2009</a>. This is the first phase of MOE's plans to
enhance primary school infrastructure to facilitate the transition of all
primary schools to a single-session model to support a higher quality primary
education.</p>]]>
</description>
<link>http://feedproxy.google.com/~r/singapore-
education/spotlight/~3/vnNsA4Hdk6U/</link>
<guid isPermaLink="false">http://www.moe.gov.sg/media/spotlight/</guid>
<pubDate>Fri, 25 Sep 2009 10:00:00 +0800</pubDate>
<feedburner:origLink>http://www.moe.gov.sg/media/spotlight/</feedburner:
origLink>
</item>

The description that is obtained does not contain the <img /> element. The
description obtained is:

<p>MOE will be <a href ="http://www.moe.gov.sg/media/press/2009/09/moe-to-build-
new-primary-schoo.php">building 11 new primary schools and upgrading another 28
existing schools from November 2009</a>. This is the first phase of MOE's plans
to enhance primary school infrastructure to facilitate the transition of all
primary schools to a single-session model to support a higher quality primary
education.</p>

Should the parseItemDescription() method be changed to something like the code
fragment below?

protected Description parseItemDescription(Element rssRoot,Element eDesc) {
XMLOutputter output = new XMLOutputter();
String value = "";
List eContent = eDesc.getContent();
Iterator i = eContent.iterator();
while (i.hasNext()) {
org.jdom.Content c = (org.jdom.Content) i.next();
if (c instanceof Element)

{ Element eC = (Element) c; value = value + output.outputString(eC); }

else

{ value = value + c.getValue(); }

}

Description desc = new Description();
desc.setType("text/plain");
desc.setValue(value);
return desc;
}



 Comments   
Comment by kimhuat [ 06/Oct/09 ]

Created an attachment (id=43)
Sample RSS feed where parsed description is not complete

Comment by kimhuat [ 06/Oct/09 ]

I think the contents of the description element which I provided is not
entirely valid. It should be:

<description>
<![CDATA[<img
src="http://www.moe.gov.sg/media/spotlight/assets_c/2009/09/spotlight-single-
session-thumb-120x80-282.jpg" alt="Teacher and his students tossing frisbees
into the air" /><p>MOE will be <a
href="http://www.moe.gov.sg/media/press/2009/09/moe-to-build-new-primary-
schoo.php">building 11 new primary schools and upgrading another 28 existing
schools from November 2009</a>. This is the first phase of MOE's plans to
enhance primary school infrastructure to facilitate the transition of all
primary schools to a single-session model to support a higher quality primary
education.</p>]]>
</description>

However, is it possible to consider the code modifications I have provided so
that this type of scenarios can be handled as well?





[ROME-135] Rome 1.0 not JDK 1.4 compatible Created: 29/Sep/09  Updated: 29/Sep/09

Status: Open
Project: rome
Component/s: www
Affects Version/s: current
Fix Version/s: milestone 1

Type: Bug Priority: Blocker
Reporter: vict0r Assignee: rome-issues
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: All


Issuezilla Id: 135

 Description   

java.lang.NoSuchMethodError: java.lang.Integer.valueOf(I)Ljava/lang/Integer;
at com.sun.syndication.io.impl.NumberParser.parseInt(NumberParser.java:54)
[...]

Error code line 54:
return Integer.valueOf(Integer.parseInt(str.trim()));

Method "Integer.valueOf(int)" came with Java 1.5. In Java 1.4 that line should
be something like:
Integer.valueOf(str.trim(), 10);



 Comments   
Comment by vict0r [ 29/Sep/09 ]

Steps for reproducing:
run your Rome application in pure Java 1.4 environment.

Full stacktrace:
java.lang.NoSuchMethodError: java.lang.Integer.valueOf(I)Ljava/lang/Integer;
at com.sun.syndication.io.impl.NumberParser.parseInt(NumberParser.java:54)
at
com.sun.syndication.io.impl.RSS091UserlandParser.parseImage(RSS091UserlandParser.java:164)
at com.sun.syndication.io.impl.RSS090Parser.parseChannel(RSS090Parser.java:160)
at
com.sun.syndication.io.impl.RSS091UserlandParser.parseChannel(RSS091UserlandParser.java:84)
at com.sun.syndication.io.impl.RSS092Parser.parseChannel(RSS092Parser.java:49)
at com.sun.syndication.io.impl.RSS094Parser.parseChannel(RSS094Parser.java:45)
at com.sun.syndication.io.impl.RSS090Parser.parse(RSS090Parser.java:82)
at com.sun.syndication.io.WireFeedInput.build(WireFeedInput.java:277)
at com.sun.syndication.io.WireFeedInput.build(WireFeedInput.java:195)
at com.sun.syndication.io.SyndFeedInput.build(SyndFeedInput.java:123)
at
com.sun.syndication.fetcher.impl.HttpURLFeedFetcher.readSyndFeedFromStream(HttpURLFeedFetcher.java:272)
at
com.sun.syndication.fetcher.impl.HttpURLFeedFetcher.getSyndFeedFromStream(HttpURLFeedFetcher.java:277)
at
com.sun.syndication.fetcher.impl.HttpURLFeedFetcher.resetFeedInfo(HttpURLFeedFetcher.java:191)
at
com.sun.syndication.fetcher.impl.HttpURLFeedFetcher.retrieveAndCacheFeed(HttpURLFeedFetcher.java:163)
at
com.sun.syndication.fetcher.impl.HttpURLFeedFetcher.retrieveFeed(HttpURLFeedFetcher.java:119)





[ROME-134] class loading problem under OSGi Created: 08/Sep/09  Updated: 08/Sep/09

Status: Open
Project: rome
Component/s: www
Affects Version/s: current
Fix Version/s: milestone 1

Type: Bug Priority: Major
Reporter: seli Assignee: rome-issues
Resolution: Unresolved Votes: 1
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: All
URL: http://js.jipiju.com/2009/08/04/osgi-jumping-through-classoading-hoops/


Issuezilla Id: 134

 Description   

I'm not sure whether to call this a defect or a patch. I'd just like to make you
aware of a blog post (given as URL above) that solved a problem I had when
integrating ROME into Day Communiqué 5, a web content management system based on
Apache Sling (and thus using OSGi bundles to deploy libraries). That blog post
explains that in an OSGi context, using
Thread.currentThread().getContextClassLoader() leads to the wrong class loader.
I followed the advice given there and changed all occurrences of that expression
to this.getClass().getClassLoader() (or

{Classname}

.class.getClassLoader() in
static contexts) in the ROME source, and this solved my problems. I'm not
familiar enough with class loading issues to say whether this is the right
approach both within and outside of OSGi, just wanted to let you developers know
and leave the issue for you to ponder.






[ROME-133] Incorrect hanling of CDATA sections Created: 12/Aug/09  Updated: 11/Nov/13

Status: Open
Project: rome
Component/s: www
Affects Version/s: current
Fix Version/s: milestone 1

Type: Bug Priority: Major
Reporter: teilo Assignee: rome-issues
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: All
URL: http://rtl-now.rtl.de/rss.php


Attachments: GZip Archive romeTest.tar.gz     GZip Archive romeTest.tar.gz    
Issuezilla Id: 133

 Description   

Rome incorrectly handles the CDATA encoded content and escapes the values so
they end up doubly escaped.

e.g.
<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" version="2.0">
<channel>
...
<item>
<link>http://serv/cgi?bob=fred&amp;jane=freddy</link>
</item>
<item>
<link><![CDATAhttp://serv/cgi?bob=fred&jane=freddy]></link>
</item>
</channel>
</rss>

when dumped/retrieved the two entries should be the same however the second
items link has the & escaped whereas the first is correct and as expected (the
escape sequence has been removed)

SyndFeedImpl.entries[0].link=http://serv/cgi?bob=fred&jane=freddy
SyndFeedImpl.entries[1].link=http://serv/cgi?bob=fred&amp;jane=freddy

That is when retreived and no longer inside XML the CDATA section should be
returned as-is without the CDATA section wrapping. Elements without this should
have any escaping removed.

test case attached.



 Comments   
Comment by teilo [ 12/Aug/09 ]

Created an attachment (id=41)
test case

Comment by teilo [ 12/Aug/09 ]

Created an attachment (id=42)
test case (with correct compiler settings)

Comment by teilo [ 13/Aug/09 ]

The bug is actually in the XmlFixerReader class. It blindly attempts to replace
all & that are not followed by a ; with &.

While this is an admirable approach to fixing bad XML it MUST NOT do this for
content inside a CDATA section that doesn't need escaping.

Comment by beafdefx [ 11/Nov/13 ]

Four years later and this is still a problem. Feeds that use CDATA to provide links with ampersands are coming back with & in the string returned by the ROME APIs. Some ESPN feeds are notable examples.

http://search.espn.go.com/len-pasquarelli/

<item>
<title><![CDATA[New starting left tackles in the NFL this season should include youngsters such as Baltimore Ravens' Michael Oher, Dallas Cowboys' Doug Free and Seattle Seahawks' Russell Okung]]></title>
<link><![CDATAhttp://sports.espn.go.com/nfl/trainingcamp10/columns/story?columnist=pasquarelli_len&id=5422693]></link>
<guid isPermaLink="true"><![CDATAhttp://sports.espn.go.com/nfl/trainingcamp10/columns/story?columnist=pasquarelli_len&id=5422693]></guid>
<description><![CDATA[
<a href="http://api.tweetmeme.com/share?url=http://sports.espn.go.com/nfl/trainingcamp10/columns/story?columnist=pasquarelli_len&id=5422693&amp;service=tinyurl.com&amp;source=espn"><img style="padding-left:10px;" align="right" border="0" style="border:none;" src="http://api.tweetmeme.com/imagebutton.gif?url=http://sports.espn.go.com/nfl/trainingcamp10/columns/story?columnist=pasquarelli_len&id=5422693" height="49" width="41" /></a>
Many of the league's right-handed QBs will be trusting their blind sides to a green crop of left tackles, writes Len Pasquarelli.]]></description>
<pubDate>July 30, 2010 04:03:02 PDT</pubDate>
</item>

Is there any intent to fix this?





[ROME-132] NPE for Twitter Atom feed with OpenSearch module Created: 16/Jul/09  Updated: 16/Jul/09

Status: Open
Project: rome
Component/s: www
Affects Version/s: current
Fix Version/s: milestone 1

Type: Bug Priority: Major
Reporter: orpheusx Assignee: rome-issues
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: Macintosh


Issuezilla Id: 132

 Description   

Twitter, like Google's Blog Search feeds, include a subset of OpenSearch tags in
their search based Atom feeds. However, they don't include a <startIndex> tag.
The code in
com.sun.syndication.feed.module.opensearch.impl.OpenSearchModuleParser assumes
that the tag exists and tries to parse it's value into an integer. The
<itemsPerPage> tag is handled the same way. This results in
NullPointerExceptions when parsing one of their feeds.

My reading of
http://www.opensearch.org/Specifications/OpenSearch/1.1#The_.22startIndex.22_element
leads me to believe that the parser should handle missing <startIndex> and
<itemsPerPage> without RuntimeExceptions.

The fix is simply:
80c80,81
< osm.setStartIndex(Integer.parseInt(e.getText()));

> if(e!=null)
> osm.setStartIndex(Integer.parseInt(e.getText()));






[ROME-131] Atom 1.0 Standalone Entry Items are not supported correctly Created: 30/Jun/09  Updated: 30/Jun/09

Status: Open
Project: rome
Component/s: www
Affects Version/s: current
Fix Version/s: milestone 1

Type: Bug Priority: Major
Reporter: justink Assignee: rome-issues
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: All


Issuezilla Id: 131

 Description   

Atom 1.0 Standalone Entry Items are not supported correctly. Right now when
parsing an Feed that contains a root "Entry" element rather than a feed element,
ROME reads it as a feed object (SyndFeedImpl). This is not correct, and some
elements are mapped differently (i.e. Updated field moves to Published date,
etc), and some are completely missed out (for example the <content> element.

To provide further context, I have a feed that has two URIs, one for returning a
list of items, and another for returning discrete items. The first service
returns a list of entry items, and this works fine. The second returns the entry
item, but ROME uses the SyndFeed parser and misses out some information, and
also requires me to write extra code since SyndFeed and SyndEntry are not
super/sub classes or each other (ie. I would like to use the code I have already
written that reads the SyndEntry object in the "List" service implementation).

I noted that in 2007, someone else mentioned this problem, and was told that the
Atom10Parser class would get a public static method to parse the feed, but this
seems to have been removed.

I suggest adding a Atom10Parser.parseEntry() method, the same as parseFeed. Or
enhance parseFeed to check if it is a entry and parse accordingly.






[ROME-130] SyndFeedImpl copyFrom method does not copy Entry Categories Created: 18/May/09  Updated: 19/May/09

Status: Open
Project: rome
Component/s: www
Affects Version/s: current
Fix Version/s: milestone 1

Type: Bug Priority: Major
Reporter: gmonroe Assignee: rome-issues
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: All


Attachments: Text File CategoryCopyFrom.patch     Java Source File CopyFromBugTestCase.java     Java Source File NewCopyFromBugTestCase.java     XML File test.xml     XML File test.xml    
Issuezilla Id: 130

 Description   

The entry objects in a a SyndFeedImpl object (or subclass of this) populated
with the copyFrom method will not have their categories set from the originals.
I.e., "this.copyFrom(original); ((SyndEntry)
(this.getEntries().get(0))).getCategories());" will always return an empty list.



 Comments   
Comment by gmonroe [ 18/May/09 ]

Created an attachment (id=35)
Simple test case code to illustrate bug

Comment by gmonroe [ 18/May/09 ]

Created an attachment (id=36)
Simple RSS Feed XML with Entry Categories to go with Java code

Comment by gmonroe [ 18/May/09 ]

Created an attachment (id=37)
A *WORKING Simple RSS Feed XML with Entry Categories to go with Java code (Sorry, grabbed the wrong file for first attachment) (text/xml)

Comment by martinkurz [ 18/May/09 ]

Created an attachment (id=38)
patch for described problem: SyndCategory now extends CopyFrom, SyndCategoryImpl implements CopyFrom and SyndEntryImpl also copies categories.

Comment by gmonroe [ 19/May/09 ]

The patch as supplied is "almost" correct... one minor problem is the wrong
interface was used in the CopyFromHelper creation line in the SyndCategoryImpl
class. SyndContent.class should be SyndCategory.class

The patch works if line 54 of the patch is changed from:

+ COPY_FROM_HELPER = new
CopyFromHelper(SyndContent.class,basePropInterfaceMap,basePropClassImplMap);

to

+ COPY_FROM_HELPER = new
CopyFromHelper(SyndCategory.class,basePropInterfaceMap,basePropClassImplMap);

FWIW - I'm uploading a "New Improved" test case that doesn't require the
external XML file and tests that both Feed level and Entry level categories are
working. It checks that the original categories read are correct in number,
order, and a couple of expected values. It also checks that categories in both
SyndFeedImpl objects filled with the copyFrom and SyndEntryImpl objects are
handled correctly.

It can easily be converted to a junit test if you are using this.

Comment by gmonroe [ 19/May/09 ]

Created an attachment (id=39)
New Improved test case to check categories - In case it's needed: I grant all rights to this code to this project.





[ROME-129] Failing to load rome.properties Created: 20/Apr/09  Updated: 20/Apr/09

Status: Open
Project: rome
Component/s: www
Affects Version/s: current
Fix Version/s: milestone 1

Type: Bug Priority: Major
Reporter: buckett Assignee: rome-issues
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: Macintosh
URL: http://sakaiproject.org


Attachments: Text File rome-129.patch    
Issuezilla Id: 129

 Description   

Currently we use an old version of rome, rome-fetcher in Sakai
(http://sakaiproject.org) and I was looking as upgrading them to the latest
version to them. Currently Sakai has complicated classloader setup. There is a
description of it here.

https://source.sakaiproject.org/svn/reference/trunk/docs/architecture/sakai_component.doc

Sakai runs ontop of tomcat and each "component" has it's own classloader that
child of the shared classloader. The API for the component goes in shared so
that both the component and any webapp can access. The component then implements
this APi. But the implementation code can't be accessed by the webapp as the
component's classloader isn't a parent of the webapps. This prevents any webapps
accessing anything in a component.

Currently there is an API for getting RSS feeds which is implemented by a
component containing rome. The problem is that when a webapp calls through to
this component the thread classloader is still set to the webapp's so it
attempts to load the master configuration file (rome.properties) from the
webapp. This fails and causes rome to stop working.

It would be useful if PropertiesLoader could use either the thread classloader
or the classloader that loaded PropertiesLoader to load the configuration.



 Comments   
Comment by buckett [ 20/Apr/09 ]

Created an attachment (id=34)
A patch that makes the classloader rome uses configurable

Comment by buckett [ 20/Apr/09 ]

The attached patch fixes rome so it works in Sakai. It allows the classloader to
be configured through the system property:

rome.use.thread.classloader

It defaults to false which is a change in behaviour from the current version of
rome.





[ROME-128] NPE in OpenSearchModuleParser Created: 18/Apr/09  Updated: 22/May/09

Status: Open
Project: rome
Component/s: www
Affects Version/s: current
Fix Version/s: milestone 1

Type: Bug Priority: Major
Reporter: jnadler Assignee: rome-issues
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: Macintosh


Attachments: Text File rome-128.patch    
Issuezilla Id: 128

 Description   

For twitter search feeds, partial implementation of OpenSearch causes an NPE.

Sample Feed URL that demonstrates the problem:
http://search.twitter.com/search.atom?q=Streetofeames

Exception: Caused by: java.lang.NullPointerException
com.sun.syndication.feed.module.opensearch.impl.OpenSearchModuleParser.parse(OpenSearchModuleParser.java:80)

Fix: Wrap itemsPerPage and startIndex in 'if (e != null)' like is done with
totalResults already:

e = dcRoot.getChild("itemsPerPage", OS_NS);

if (e != null) {
foundSomething = true;

try

{ osm.setItemsPerPage(Integer.parseInt(e.getText())); }

catch(NumberFormatException ex)

{ // Ignore setting the field and post a warning System.err.println("Warning: The element itemsPerPage must be an integer value: " + ex.getMessage()); }

}

e = dcRoot.getChild("startIndex", OS_NS);

if (e != null) {
foundSomething = true;

try

{ osm.setStartIndex(Integer.parseInt(e.getText())); }

catch(NumberFormatException ex)

{ // Ignore setting the field and post a warning System.err.println("Warning: The element startIndex must be an integer value: " + ex.getMessage()); }

}



 Comments   
Comment by buckett [ 22/May/09 ]

Created an attachment (id=40)
The changes the reported suggested as a patch.





[ROME-127] Rome 1.0 is not Java 1.4.x compatible Created: 08/Apr/09  Updated: 13/Apr/09  Resolved: 13/Apr/09

Status: Resolved
Project: rome
Component/s: www
Affects Version/s: current
Fix Version/s: milestone 1

Type: Task Priority: Major
Reporter: uggedal Assignee: rome-issues
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: All
URL: http://gist.github.com/91778


Issuezilla Id: 127

 Description   

Java 1.4.x does not implement Integer/Float/Long.valueOf(int/float/long).

Attached patch solves this issue without degrading performance on > Java 1.4
platforms.



 Comments   
Comment by nicklothian [ 13/Apr/09 ]

This issues has been fixed in CVS





[ROME-126] module.mediarss NullPointerException: Scheme and value cannot be null Created: 28/Mar/09  Updated: 26/Feb/12

Status: Open
Project: rome
Component/s: www
Affects Version/s: current
Fix Version/s: milestone 1

Type: Bug Priority: Major
Reporter: bwalsh Assignee: rome-issues
Resolution: Unresolved Votes: 1
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: All


Issuezilla Id: 126

 Description   

Get this error on a regular basis

Mar 28, 2009 12:59:37 AM
com.sun.syndication.feed.module.mediarss.io.MediaModuleParser parseMetadata
WARNING: Exception parsing rating tag.
java.lang.NullPointerException: Scheme and value cannot be null.
at
com.sun.syndication.feed.module.mediarss.types.AbstractSchemeValue.<init>(AbstractSchemeValue.java:40)
at
com.sun.syndication.feed.module.mediarss.types.Rating.<init>(Rating.java:66)
at
com.sun.syndication.feed.module.mediarss.io.MediaModuleParser.parseMetadata(MediaModuleParser.java:331)
at
com.sun.syndication.feed.module.mediarss.io.MediaModuleParser.parse(MediaModuleParser.java:91)
at
com.sun.syndication.io.impl.ModuleParsers.parseModules(ModuleParsers.java:51)
at
com.sun.syndication.io.impl.BaseWireFeedParser.parseFeedModules(BaseWireFeedParser.java:64)
at
com.sun.syndication.io.impl.RSS090Parser.parseChannel(RSS090Parser.java:170)
at
com.sun.syndication.io.impl.RSS091UserlandParser.parseChannel(RSS091UserlandParser.java:84)
at
com.sun.syndication.io.impl.RSS092Parser.parseChannel(RSS092Parser.java:49)
at
com.sun.syndication.io.impl.RSS094Parser.parseChannel(RSS094Parser.java:45)
at com.sun.syndication.io.impl.RSS090Parser.parse(RSS090Parser.java:82)
at com.sun.syndication.io.WireFeedInput.build(WireFeedInput.java:277)
at com.sun.syndication.io.WireFeedInput.build(WireFeedInput.java:195)
at com.sun.syndication.io.SyndFeedInput.build(SyndFeedInput.java:123)



 Comments   
Comment by ollijm [ 24/May/11 ]

Bumb! This NullPointerException seems to happen with all the feeds containing element <media:rating>adult|nonadult</media:rating> and is still present in rome-modules-1.0.jar. Any chance of getting this fixed?

Comment by xnejp03 [ 26/Feb/12 ]

Same here, this bug is breaking parsing many feeds with media namespace.





[ROME-125] Broken download link Created: 26/Mar/09  Updated: 26/Mar/09

Status: Open
Project: rome
Component/s: www
Affects Version/s: current
Fix Version/s: milestone 1

Type: Bug Priority: Major
Reporter: alv131 Assignee: rome-issues
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: All


Issuezilla Id: 125

 Description   

The download link is not ok:

https://rome.dev.java.net/dist/rome-1.0-sources.zip --->
https://rome.dev.java.net/dist/rome-1.0-sources.jar






[ROME-124] SyndEntryImpl can't cope with RSS items that have both <pubDate/> and <dc:date/> Created: 03/Mar/09  Updated: 03/Mar/09

Status: Open
Project: rome
Component/s: www
Affects Version/s: current
Fix Version/s: milestone 1

Type: Bug Priority: Major
Reporter: jabley Assignee: rome-issues
Resolution: Unresolved Votes: 2
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: All


Attachments: Text File 124.diff    
Issuezilla Id: 124

 Description   

As per the mailing list discussion.

https://rome.dev.java.net/servlets/ReadMsg?list=users&msgNo=1724



 Comments   
Comment by jabley [ 03/Mar/09 ]

Created an attachment (id=33)
Basic patch with a test showing the problem and possible solution





[ROME-123] Yahoo MediaRSS <media:content/> can't handle URLs with spaces Created: 25/Feb/09  Updated: 25/Feb/09

Status: Open
Project: rome
Component/s: www
Affects Version/s: current
Fix Version/s: milestone 1

Type: Bug Priority: Critical
Reporter: jabley Assignee: rome-issues
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: All


Issuezilla Id: 123

 Description   

Some feeds contains url attributes that aren't valid URIs. The current code
expects the url attribute to be a URI, even though the spec doesn't mention URIs
in this context.

Test and patch below.

Index:
subprojects/modules/mediarss/src/java/com/sun/syndication/feed/module/mediarss/io/MediaModuleParser.java
===================================================================
RCS file:
/cvs/rome/subprojects/modules/mediarss/src/java/com/sun/syndication/feed/module/mediarss/io/MediaModuleParser.java,v
retrieving revision 1.12
diff -u -r1.12 MediaModuleParser.java

subprojects/modules/mediarss/src/java/com/sun/syndication/feed/module/mediarss/io/MediaModuleParser.java
7 Jan 2009 22:54:47 -0000 1.12
+++
subprojects/modules/mediarss/src/java/com/sun/syndication/feed/module/mediarss/io/MediaModuleParser.java
25 Feb 2009 15:58:34 -0000
@@ -43,6 +43,7 @@
import com.sun.syndication.io.impl.NumberParser;

import java.net.URI;
+import java.net.URL;

import org.jdom.Element;
import org.jdom.Namespace;
@@ -112,7 +113,7 @@
if (content.getAttributeValue("url") != null) {
try

{ mc = new MediaContent(new UrlReference( - new URI(content.getAttributeValue("url")))); + new URL(content.getAttributeValue("url")).toURI())); mc.setPlayer(parsePlayer(content)); }

catch (Exception ex)

{ LOG.log(Level.WARNING, "Exception parsing content tag.", ex); Index: subprojects/modules/mediarss/src/test/com/sun/syndication/feed/module/mediarss/MediaModuleTest.java =================================================================== RCS file: /cvs/rome/subprojects/modules/mediarss/src/test/com/sun/syndication/feed/module/mediarss/MediaModuleTest.java,v retrieving revision 1.6 diff -u -r1.6 MediaModuleTest.java --- subprojects/modules/mediarss/src/test/com/sun/syndication/feed/module/mediarss/MediaModuleTest.java 7 Dec 2006 00:25:40 -0000 1.6 +++ subprojects/modules/mediarss/src/test/com/sun/syndication/feed/module/mediarss/MediaModuleTest.java 25 Feb 2009 15:58:34 -0000 @@ -16,6 +16,7 @@ import java.io.BufferedWriter; import java.io.FileWriter; import java.io.InputStreamReader; +import java.io.StringReader; import java.net.URL; import java.util.Iterator; import java.util.List; @@ -74,6 +75,26 @@ }

}

+ public void testParseMediaContentContainingURLWithSpaces() throws Exception

{ + SyndFeedInput input = new SyndFeedInput(); + SyndFeed feed = input.build(new StringReader( + "<rss version=\"2.0\" xmlns:media=\"http://search.yahoo.com/mrss/\">" + + "<channel>" + + "<title>My Movie Review Site</title>" + + "<link>http://www.foo.com</link>" + + "<description>I review movies.</description>" + + "<item>" + + "<title>Movie Title: Is this a good movie?</title>" + + "<link>http://www.foo.com/item1.htm</link>" + + "<media:content url=\"http://www.foo.com/path/containing spaces/trailer.mov\"" + +"fileSize=\"12216320\" type=\"video/quicktime\" expression=\"sample\"/>" + + "</item>" + + "</channel>" + + "</rss>")); + + SyndEntry entry = (SyndEntry) feed.getEntries().get(0); + MediaEntryModule m = (MediaEntryModule) entry.getModule(MediaEntryModule.URI ); + }

/** This code represents the original MediaModuleTest main class from
openvision.tv
*/






[ROME-122] module.cc.types.License NotSerializableException Created: 24/Jan/09  Updated: 29/Jan/09  Resolved: 29/Jan/09

Status: Resolved
Project: rome
Component/s: www
Affects Version/s: current
Fix Version/s: milestone 1

Type: Bug Priority: Major
Reporter: bwalsh Assignee: rome-issues
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: All


Issuezilla Id: 122

 Description   

similar to https://rome.dev.java.net/issues/show_bug.cgi?id=120

java.io.NotSerializableException: com.sun.syndication.feed.module.cc.types.License

using repository\rome\modules\0.3.1\modules-0.3.1-javadoc.jar

Also spot checking com.sun.syndication.feed.module.base.types ... they seem to
be missing Serializable

Thanks for your time

-Brian



 Comments   
Comment by nicklothian [ 29/Jan/09 ]

Fixed com.sun.syndication.feed.module.cc.types.License and com.sun.syndication.feed.module.base.CustomTag

I think everything else in com.sun.syndication.feed.module.base.* is ok, because
they all extend com.sun.syndication.feed.module.base.GlobalInterface (which is Serializable)

Comment by bwalsh [ 29/Jan/09 ]

Much thanks.





[ROME-121] RSS item category iteration should try to reflect document order Created: 23/Jan/09  Updated: 02/Mar/09  Resolved: 02/Mar/09

Status: Resolved
Project: rome
Component/s: www
Affects Version/s: current
Fix Version/s: milestone 1

Type: Task Priority: Major
Reporter: jabley Assignee: rome-issues
Resolution: Fixed Votes: 1
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: All


Issuezilla Id: 121

 Description   

When parsing RSS feeds which contain categories, iterating the SyndEntry does
not reflect document order. Under normal conditions, this is not important, but
it's nice to have.

Index: src/java/com/sun/syndication/feed/synd/impl/ConverterForRSS092.java
===================================================================
RCS file:
/cvs/rome/src/java/com/sun/syndication/feed/synd/impl/ConverterForRSS092.java,v
retrieving revision 1.6
diff -u -r1.6 ConverterForRSS092.java
— src/java/com/sun/syndication/feed/synd/impl/ConverterForRSS092.java 15 Sep
2005 16:54:45 -0000 1.6
+++ src/java/com/sun/syndication/feed/synd/impl/ConverterForRSS092.java 23 Jan
2009 13:16:21 -0000
@@ -22,9 +22,9 @@
import com.sun.syndication.feed.synd.*;

import java.util.ArrayList;
+import java.util.LinkedHashSet;
import java.util.List;
import java.util.Set;
-import java.util.HashSet;

/**
*/
@@ -42,7 +42,7 @@
SyndEntry syndEntry = super.createSyndEntry(item);
List cats = item.getCategories();
if (cats.size()>0) {

  • Set s = new HashSet(); // using a set to remove
    duplicates
    + Set s = new LinkedHashSet(); // using a set to
    remove duplicates and use a LinkedHashSet to try to retain the document order
    s.addAll(createSyndCategories(cats)); // feed native categories (as
    syndcat)
    s.addAll(syndEntry.getCategories()); // DC subjects (as syndcat)
    syndEntry.setCategories(new ArrayList(s)); //c


 Comments   
Comment by nicklothian [ 01/Mar/09 ]

Looks sensible

Comment by nicklothian [ 01/Mar/09 ]

Patch committed

Comment by jabley [ 02/Mar/09 ]

Thanks for addressing this. One minor point: my bad. I really should have
included a test as well. I'll try to fix that.





[ROME-120] Modules should be serializable to support caching Created: 04/Jan/09  Updated: 06/Jan/09  Resolved: 06/Jan/09

Status: Resolved
Project: rome
Component/s: www
Affects Version/s: current
Fix Version/s: milestone 1

Type: Bug Priority: Major
Reporter: nicklothian Assignee: rome-issues
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: All


Issuezilla Id: 120

 Description   

Some implementations of the ROME feed fetch rely on serialization for caching
support. ROME modules should be serializable where appropriate.



 Comments   
Comment by nicklothian [ 04/Jan/09 ]

GeoRSS, MediaRSS and OpenSearch modules made serializable

Comment by nicklothian [ 06/Jan/09 ]

All modules checked and now appear to be serializable





[ROME-119] Improved FeedFetcher cache handling Created: 04/Jan/09  Updated: 04/Jan/09  Resolved: 04/Jan/09

Status: Resolved
Project: rome
Component/s: www
Affects Version/s: current
Fix Version/s: milestone 1

Type: Bug Priority: Major
Reporter: nicklothian Assignee: rome-issues
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: All


Issuezilla Id: 119

 Description   

Issue from John Madden (jmadden73@gmail.com):

I was playing around a bit with ROME & Rome-Fetcher and there are a couple minor
things that I think need to be added.
1. Add the ability to remove an item from the cache and return the removed item
(e.g. feedInfoCache.remove( url ) )
2. Add the ability to clear the cache of all entries (e.g.
feedInfoCache.clear() )



 Comments   
Comment by nicklothian [ 04/Jan/09 ]

Patch submitted: https://rome.dev.java.net/servlets/ReadMsg?list=dev&msgNo=2615

Comment by nicklothian [ 04/Jan/09 ]

Patch applied





[ROME-118] Replace Class.forName(...) with ClassLoader.loadClass(...) to avoid ClassCastException when running inside an OSGi container Created: 21/Dec/08  Updated: 05/Jan/09  Resolved: 05/Jan/09

Status: Resolved
Project: rome
Component/s: www
Affects Version/s: current
Fix Version/s: milestone 1

Type: Bug Priority: Major
Reporter: ozgwei Assignee: rome-issues
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: All


Attachments: Text File PluginManager.java.patch    
Issuezilla Id: 118

 Description   

Please see
http://blog.bjhargrave.com/2007/09/classforname-caches-defined-class-in.html for
explanation.

The problem I encountered is that the client of my OSGi bundle also uses rome
and has already loaded those classes defined in rome.properties. When the
PluginManager in my bundle tries to load these classes, the typecast fails.

Replacing Class.forName in Pluginmanager with ClassLoader.loadClass fixes the
problem.



 Comments   
Comment by ozgwei [ 21/Dec/08 ]

Created an attachment (id=32)
Patching PluginManager to use ClassLoader.loadClass instead of Class.forName

Comment by nicklothian [ 04/Jan/09 ]

I haven't tested this, and I'm not a classloading expert by any means, but this
patch looks problematic to me.

The big problem I see is that the current code uses the ContextClassloader for
the current thread (ClassLoader classLoader =
Thread.currentThread().getContextClassLoader() while the new code uses the
classloader for the plugin manager. Changing that will cause problems in some
classloading environments.

The second problem is that one of the comments on the referenced post passes
advice from Sun saying "Applications should basically never call
Classloader.loadClass(). It may appear to work but it is often subtly wrong, can
be a source of latent bugs, and is almost never the best choice. They should
instead call Class.forName() using the 3 parameter version that takes a specific
Classloader instance". I think I'd be happy to ignore this advice if we can
resolve the first issue.

Comment by nicklothian [ 05/Jan/09 ]

From Alejandro Abdelnur on the dev list:

What the link explains it kinds of make sense. However, as Nick pointed out, I'm
not sure what would it break out there if we do that change.

Still, if the change of forName() to loadClass() would be done, the patch is not
correct. the patch does:

+ try
+

{ + mClass = PluginManager.class.getClassLoader().loadClass(_propertyValues[i]); + }

+ catch (ClassNotFoundException ex)
+

{ + mClass = classLoader.loadClass(_propertyValues[i]); + }

when, IMO, it should do just:

+ mClass = classLoader.loadClass(_propertyValues[i]);

Because extensions may be overriden in another classloader. Example, rome core
in tomcat/lib and extensions in a web-app.

I would agree to have this behavior added (to work in OSGi containers) if it is
activated by a system property and the default is the current behavior.

Comment by nicklothian [ 05/Jan/09 ]

Will commit based on Alejandro comment.

Comment by nicklothian [ 05/Jan/09 ]

Committed the following change (different to the patch):

ClassLoader classLoader =
Thread.currentThread().getContextClassLoader();
List classes = new ArrayList();
+ boolean useLoadClass =
Boolean.valueOf(System.getProperty("rome.pluginmanager.useloadclass",
"false")).booleanValue();
for (int i = 0; i <_propertyValues.length; i++)

{ - Class mClass = Class.forName(_propertyValues[i], true, classLoader); + Class mClass = (useLoadClass ? classLoader.loadClass(_propertyValues[i]) : Class.forName(_propertyValues[i], true, classLoader)); classes.add(mClass); }

Class[] array = new Class[classes.size()];

The code will now use loadClass if the system property "rome.pluginmanager.useloadclass" is set to "true"





[ROME-117] Add OSGi headers to MANIFEST.MF so that rome.jar can also be used in an OSGi environment Created: 21/Dec/08  Updated: 04/Jan/11  Resolved: 04/Jan/09

Status: Resolved
Project: rome
Component/s: www
Affects Version/s: current
Fix Version/s: milestone 1

Type: Improvement Priority: Major
Reporter: ozgwei Assignee: rome-issues
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: All


Attachments: Text File pom.xml-1.1-to-1.2.patch    
Issue Links:
Dependency
depends on ROME-116 Upgrade project to Maven 2 Resolved
Issuezilla Id: 117

 Description   

Adding the OSGi headers to MANIFEST.MF will make the JAR artifact run in both
the traditional environments as well as OSGi container.

The change is made to the Maven 2 pom.xml; thus, it depends on issue 116.



 Comments   
Comment by ozgwei [ 21/Dec/08 ]

Created an attachment (id=31)
Patch to pom.xml to add OSGi headers to MANIFEST.MF

Comment by ozgwei [ 21/Dec/08 ]

The patch is made against the pom.xml submitted for issue 116, thus the
dependency on that issue.

Comment by nicklothian [ 04/Jan/09 ]

I don't know anything about OSGi, but this looks harmless

Comment by nicklothian [ 04/Jan/09 ]

Patch committed





[ROME-116] Upgrade project to Maven 2 Created: 21/Dec/08  Updated: 04/Jan/11  Resolved: 06/Jan/09

Status: Resolved
Project: rome
Component/s: www
Affects Version/s: current
Fix Version/s: milestone 1

Type: Task Priority: Major
Reporter: ozgwei Assignee: rome-issues
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: All


Attachments: XML File pom.xml    
Issue Links:
Dependency
blocks ROME-117 Add OSGi headers to MANIFEST.MF so th... Resolved
Issuezilla Id: 116

 Description   

Maven 2 has been out for quite a while now.
It would be preferrable for Rome to upgrade to Maven 2 to benefit from new
features in Maven 2 and the diversity of new plugins.



 Comments   
Comment by ozgwei [ 21/Dec/08 ]

Created an attachment (id=30)
Maven 2 pom file

Comment by ozgwei [ 21/Dec/08 ]

The attached pom.xml is created using Maven 2 upgrade command:
mvn one:convert
The original project.xml has to be inserted a new line after
<siteAddress>...</siteAddress> to be a valid project.xml file:
<siteDirectory>/</siteDirectory>

Comment by nicklothian [ 04/Jan/09 ]

I am going to commit this because I can't get Maven 1 (the original build) to
work.

Comment by nicklothian [ 04/Jan/09 ]
      • Issue 83 has been marked as a duplicate of this issue. ***
Comment by nicklothian [ 06/Jan/09 ]

ROME now uses maven 2 to build





[ROME-115] Rome tests fail with ibm-jdk-1.6 Created: 21/Dec/08  Updated: 21/Dec/08

Status: Open
Project: rome
Component/s: www
Affects Version/s: current
Fix Version/s: milestone 1

Type: Bug Priority: Major
Reporter: firari Assignee: rome-issues
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: All
URL: http://bugs.gentoo.org/show_bug.cgi?id=220499


Issuezilla Id: 115

 Description   

As reported in Gentoo bug in URL one of the tests fail with ibm-jdk-1.6. Now
long after that bug report, I tried 1.0RC1 with 1.6.0.3 and still the exact same
test fails.






[ROME-114] select compact output or prettyPrint Created: 13/Dec/08  Updated: 05/Jan/09  Resolved: 05/Jan/09

Status: Resolved
Project: rome
Component/s: www
Affects Version/s: current
Fix Version/s: milestone 1

Type: Improvement Priority: Major
Reporter: martinkurz Assignee: rome-issues
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: All


Attachments: Text File chooseFormat.patch    
Issuezilla Id: 114

 Description   

Hi,

and i've got a last patch for today: i would like to be able to select the
output format when outputting a feed with SyndFeedOutput or WireFeedOutput
between compact format (no formatting whitespaces and newlines) and pretty-print
(better human readablity), so i patched the two output classes and added
additional output methods, allowing to choose between pretty-print (default) or
not. Because the added methods don't influence existing code at all (default ist
still prettyPrint, but you can call ie output(feed, writer, false) to get a
compact feed), this change shouldn't be any problem for existing code.

Greetings,

Martin



 Comments   
Comment by martinkurz [ 13/Dec/08 ]

Created an attachment (id=27)
add methods to choose between pretty-print and compact format in Ouptuters

Comment by nicklothian [ 05/Jan/09 ]

Looks to be a useful feature, and appears harmless so I will commit.

Comment by nicklothian [ 05/Jan/09 ]

Patch committed





[ROME-113] namespace prefixes in modules Created: 13/Dec/08  Updated: 13/Dec/08

Status: Open
Project: rome
Component/s: www
Affects Version/s: current
Fix Version/s: milestone 1

Type: Improvement Priority: Major
Reporter: martinkurz Assignee: rome-issues
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: All


Attachments: Text File namespaces.patch    
Issuezilla Id: 113

 Description   

Hi,

at this time, it isn't possible to have different modules with different
namespaces but the same namespace prefix in rome. The problem is:
RSS090Generator, RSS091UserlandGenerator, Atom03Generator and Atom10Generator
are using generateModuleNamespaceDefs in BaseWireFeedGenerator, which tries to
add all modules namespaces to the DOM and afterwards the not needed namespaces
are removed by purgeUnusedNamespaceDeclarations in the same class.

Now i went into trouble when trying to implement two modules with different
version of a rss-extension that use both the same prefix (they are never used in
the same feed of course but in the same application). This results in a JDOM
exception when trying to add a further namespace with the same prefix that isn't
needed in the feed.

My solution is: Instead of first adding all available module-namespaces to the
feed and afterwards removing those not needed by traversing the dom, I'm adding
all the elements in my modules with namespaces added locally and afterwards
traversing the complete dom, removing the local namespaces an collecting them
for attaching at root level.

A patch will follow soon.

Greetings,

Martin



 Comments   
Comment by martinkurz [ 13/Dec/08 ]

Created an attachment (id=26)
patch for adding just the used namespaces in feed





[ROME-112] corrections in javadocs Created: 13/Dec/08  Updated: 04/Jan/09  Resolved: 04/Jan/09

Status: Resolved
Project: rome
Component/s: www
Affects Version/s: current
Fix Version/s: milestone 1

Type: Task Priority: Trivial
Reporter: martinkurz Assignee: rome-issues
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: All


Attachments: Text File javadocs.patch    
Issuezilla Id: 112

 Description   

Hi,

when building the current cvs-version, some javadoc-warnings appear, so here's a
simple patch to correct these places.

Greetings,

Martin



 Comments   
Comment by martinkurz [ 13/Dec/08 ]

Created an attachment (id=25)
patch to correct some javadoc-comments

Comment by nicklothian [ 04/Jan/09 ]

Patch looks good to me

Comment by nicklothian [ 04/Jan/09 ]

Patch applied





[ROME-111] Atom 1.0 Validation failure with message "Missing feed element: id" Created: 27/Nov/08  Updated: 08/Sep/11

Status: Open
Project: rome
Component/s: www
Affects Version/s: current
Fix Version/s: milestone 1

Type: Bug Priority: Major
Reporter: elmomalmo Assignee: rome-issues
Resolution: Unresolved Votes: 3
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: All


Issuezilla Id: 111

 Description   

Firstly, apologies if this has been reported before. I couldn't find it if it has.

I validated an Atom 1.0 feed that I generated using ROME 1.0RC1 with the
validator at http://validator.w3.org/feed/. It mostly fared well but both the
<feed> element and all the <entry> elements failed wit the message "Missing feed
element: id"

It seems to me that the generated XML should validate at the very least.

Cheers

Elwyn



 Comments   
Comment by jjvalent [ 08/Sep/11 ]

Need to use setUri on the SyndFeed object. This populates the Atom Id.





[ROME-110] Support Atom person extensions Created: 23/Nov/08  Updated: 04/Jan/09  Resolved: 04/Jan/09

Status: Resolved
Project: rome
Component/s: www
Affects Version/s: current
Fix Version/s: milestone 1

Type: Improvement Priority: Major
Reporter: jamesroper Assignee: rome-issues
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: All


Attachments: Text File extendable-person.patch    
Issuezilla Id: 110

 Description   

In RFC4287, an Atom person construct may be extended, from page 35:

  1. Person Construct

atomPersonConstruct =
atomCommonAttributes,
(element atom:name

{ text }

& element atom:uri

{ atomUri }

?
& element atom:email

{ atomEmailAddress }

?
& extensionElement*)

Rome currently does not support this. This could be supported by making
SyndPerson extend Extendable, adding new configuration items to rome.properties,
ie atom_1.0.person.ModuleGenerator.classes etc, and updating the relevant parsers.



 Comments   
Comment by jamesroper [ 23/Nov/08 ]

Created an attachment (id=24)
Proposed patch to implement, implements for Atom 1.0 only (doesn't make sense for any other syndication format).

Comment by jamesroper [ 23/Nov/08 ]

I've attached a patch for this issue, diffed against CVS HEAD on November 24.
Comments/criticisms most welcome.

Comment by nicklothian [ 04/Jan/09 ]

I don't see any problems with this patch (except the lack of test cases), so I
am applying.

Comment by nicklothian [ 04/Jan/09 ]

Patch applied





[ROME-109] Maven repository is missing Rome 1.0RC1 Created: 09/Nov/08  Updated: 11/Jan/09  Resolved: 11/Jan/09

Status: Resolved
Project: rome
Component/s: www
Affects Version/s: current
Fix Version/s: milestone 1

Type: Bug Priority: Major
Reporter: tarjei Assignee: rome-issues
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: All


Issuezilla Id: 109

 Description   

Rome RC1 is now 1 year old. Please release 1.0 or at least upload 1.0RC1 to the
repository.

Regards



 Comments   
Comment by nicklothian [ 11/Jan/09 ]

java.net Maven repository now includes RC2 jars. See
http://wiki.java.net/bin/view/Javawsxml/RomeAndMaven2 for details





[ROME-108] NumberFormatException in FriendFeed Created: 10/Oct/08  Updated: 07/Jan/09  Resolved: 07/Jan/09

Status: Resolved
Project: rome
Component/s: www
Affects Version/s: current
Fix Version/s: milestone 1

Type: Bug Priority: Major
Reporter: syntaxerror Assignee: rome-issues
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: All


Attachments: Text File nfe.patch    
Issuezilla Id: 108

 Description   

I was trying to parse this feed:
http://friendfeed.com/eszpee?auth=D9E8KDvRDZd1wYj6&format=atom

and it resulted in a NumberFormatException in the method parseLink in
Atom10Parser.java

I found the error with rome 0.9, below is a stack trace from my logfile. Later I
confirmed the error with rome 1.0RC1.

In the 1.0RC1 source, changing line 239 of Atom10Parser.java to this:

if ((att!=null)&&(att!="")) {

solved the problem.

-------------------------------------------------------------

NumberFormatException
Class: java.lang.NumberFormatException
For input string: ""
Error in method forInputString of java.lang.NumberFormatException at line -1 in null
Error in method parseLong of java.lang.Long at line -1 in null
Error in method parseLong of java.lang.Long at line -1 in null
Error in method parseLink of com.sun.syndication.io.impl.Atom10Parser at line
220 in Atom10Parser.java
Error in method parseAlternateLinks of com.sun.syndication.io.impl.Atom10Parser
at line 230 in Atom10Parser.java
Error in method parseEntry of com.sun.syndication.io.impl.Atom10Parser at line
341 in Atom10Parser.java
Error in method parseEntries of com.sun.syndication.io.impl.Atom10Parser at line
319 in Atom10Parser.java
Error in method parseFeed of com.sun.syndication.io.impl.Atom10Parser at line
181 in Atom10Parser.java
Error in method parse of com.sun.syndication.io.impl.Atom10Parser at line 75 in
Atom10Parser.java
Error in method build of com.sun.syndication.io.WireFeedInput at line 252 in
WireFeedInput.java
Error in method build of com.sun.syndication.io.WireFeedInput at line 179 in
WireFeedInput.java
Error in method build of com.sun.syndication.io.SyndFeedInput at line 122 in
SyndFeedInput.java



 Comments   
Comment by martinkurz [ 13/Dec/08 ]

Created an attachment (id=29)
same patch as Isuue 92, parseLong surrounded with try-catch

Comment by nicklothian [ 07/Jan/09 ]

Will fix using the approach in issue 104

Comment by nicklothian [ 07/Jan/09 ]

Fixed





[ROME-107] NumberFormatException in method RSS091UserlandParser,parseImage Created: 02/Oct/08  Updated: 07/Jan/09

Status: Open
Project: rome
Component/s: www
Affects Version/s: current
Fix Version/s: milestone 1

Type: Task Priority: Major
Reporter: savo Assignee: rome-issues
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: All


Issuezilla Id: 107

 Description   

Hi,
I changed the method in subject, because if the tags "width" and "height" are
empty cause an NumberFormatException, follows the change:

protected Image parseImage(Element rssRoot) {
Image image = super.parseImage(rssRoot);
if (image!=null) {
Element eImage = getImage(rssRoot);
Element e = eImage.getChild("width",getRSSNamespace());
//Hlix 2/10/2008
//Bug fix: if tag "width" is empty
if (e!=null && !e.getText().equals(""))

{ image.setWidth(Integer.parseInt(e.getText().trim())); }

e = eImage.getChild("height",getRSSNamespace());
//Hlix 2/10/2008
//Bug fix: if tag "height" is empty
if (e!=null && !e.getText().equals(""))

{ image.setHeight(Integer.parseInt(e.getText().trim())); }

e = eImage.getChild("description",getRSSNamespace());
if (e!=null)

{ image.setDescription(e.getText()); }

}
return image;
}

Note: You can test with this rss feed http://www.lastampa.it/redazione/rss_home.xml

Regards
Savo



 Comments   
Comment by nicklothian [ 07/Jan/09 ]

Will fix using the approach in issue 104

Comment by nicklothian [ 07/Jan/09 ]

Fixed





[ROME-106] Automate publishing artifacts into java.net maven repo Created: 02/Oct/08  Updated: 02/Oct/08

Status: Open
Project: rome
Component/s: www
Affects Version/s: current
Fix Version/s: milestone 1

Type: Improvement Priority: Critical
Reporter: antonystubbs Assignee: rome-issues
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: All


Issuezilla Id: 106

 Description   

This will be made easier with fixing:
https://rome.dev.java.net/issues/show_bug.cgi?id=83

I would also volunteer to make a pom.xml for rome-fetcher if you can't quickly
do it yourselves.






[ROME-105] "samplingrate" is mispelled in MediaModuleParser.java Created: 12/Sep/08  Updated: 07/Jan/09  Resolved: 07/Jan/09

Status: Resolved
Project: rome
Component/s: www
Affects Version/s: current
Fix Version/s: milestone 1

Type: Bug Priority: Major
Reporter: gershman Assignee: rome-issues
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: All
URL: https://rome.dev.java.net/source/browse/rome/subprojects/modules/mediarss/src/java/com/sun/syndication/feed/module/mediarss/io/MediaModuleParser.java?rev=1.11&view=markup


Issuezilla Id: 105

 Description   

Parsing in MediaModuleParser is broken; the attribute "samplingrate" is
mispelled, the parser is looking for "ramplingrate," which causes a
NumberFormatException when trying to create the Float.



 Comments   
Comment by nicklothian [ 07/Jan/09 ]

Will fix

Comment by nicklothian [ 07/Jan/09 ]

Fixed. Also improved the robustness of the number parsing.





[ROME-104] Improve leniency in Number parsing (enclosure length) Created: 09/Sep/08  Updated: 07/Jan/09  Resolved: 07/Jan/09

Status: Resolved
Project: rome
Component/s: www
Affects Version/s: current
Fix Version/s: milestone 1

Type: Task Priority: Major
Reporter: hossman Assignee: rome-issues
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: All


Attachments: Text File number.parsing.patch    
Issuezilla Id: 104

 Description   

Number parsing in ROME is currently fairly brittle in many places. While it's
frequently acceptable for numeric properties to be absent, if they are
unparsable a NUmberFormatException is thrown.

It seems like it would be more prudent to treat the situations equivilently.

A specific example seen in the wild (http://feeds.wired.com/GearFactor) is
RSS feeds where some <enclosure> tags have length attributes of "unknown".

patch to follow



 Comments   
Comment by hossman [ 09/Sep/08 ]

Created an attachment (id=23)
adds NumberParser that does lenient Long parsing (Integer, Float, Double can be added as needed)

Comment by hossman [ 09/Sep/08 ]

Note that attached patch creates new files, generated with...

diff -u -N -x CVS -r clean/src work/src > number.parsing.patch

Assuming the approach is considered appropriate, there are lots of other places
in the code that could get similar treatment.

One issue that should be payed careful attention is that many properties use
primitives (int,long,etc...) but have getters and setters that are documented as
taking/returning null (i suppose this is left over from an old version of the
API?) so it's not always obvious what the "default" value is suppose to be ...
in some cases the private members are left to the Java default (0) and in other
cases they have a specific but undocumented default (-1). See
Enclosure.setLength and Image.setWidth for example.

Comment by nicklothian [ 07/Jan/09 ]

Seems like the best approach to what is a common problem

Comment by nicklothian [ 07/Jan/09 ]

Fixed





[ROME-103] Round trip ATOM failures because of SyModuleGenerator and missing updateBase Created: 02/Sep/08  Updated: 03/Sep/08  Resolved: 03/Sep/08

Status: Resolved
Project: rome
Component/s: www
Affects Version/s: current
Fix Version/s: milestone 1

Type: Bug Priority: Major
Reporter: hossman Assignee: rome-issues
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: All


Attachments: XML File firstAtom.xml     Java Source File RomeRoundTripTest.java    
Issuezilla Id: 103

 Description   

I've been doing some basic testing of ROME 1.0RC1 to parse feeds from the wild
and then normalize them as ATOM 1.0 to stream into other systems (which will
also use ROME.

I've discovered an interesting use case where ROME can do the following:
1) fetch a URL for an RSS feed and parse it to produce a SyndFeed.
2) output that SyndFeed to a file as ATOM 1.0
3) parse that ATOM 1.0 file as a new SyndFeed object.
But what ROME cannot do (in some cases) is:
4) re-output the current SyndFeed object back to a new file. *FAIL*

The problem seems to stem from SyModule and the "updateBase" property.

In the feed I found which contains the problem, updatedBase is not present.
this doesn't cause any problems for steps #1-3 above, but does cause a problem
for step#4.

It seems like either:
a) the parsing code for SyModule is too forgiving and should fail in step#1
b) the generating code for SyModule is too forgiving and should fail in step#2
c) the generating code for SyModule isn;t forgiving enough and should succeed
in step#4

...either way, it seems like the parsing and generating code are out of sink
with each other.

Feed URL where problem was found...
http://feeds.feedburner.com/Passionemobile

Output from test code (will attach)...

firstAtom.xml exists, skiping fetch
Round trip from firstAtom.xml to secondAtom.xml
Exception in thread "main" java.lang.NullPointerException
at java.util.Calendar.setTime(Calendar.java:1032)
at java.text.SimpleDateFormat.format(SimpleDateFormat.java:785)
at java.text.SimpleDateFormat.format(SimpleDateFormat.java:778)
at java.text.DateFormat.format(DateFormat.java:314)
at com.sun.syndication.io.impl.DateParser.formatW3CDateTime(DateParser.java:280)
at
com.sun.syndication.io.impl.SyModuleGenerator.generate(SyModuleGenerator.java:80)
at
com.sun.syndication.io.impl.ModuleGenerators.generateModules(ModuleGenerators.java:56)
at
com.sun.syndication.io.impl.BaseWireFeedGenerator.generateFeedModules(BaseWireFeedGenerator.java:62)
at com.sun.syndication.io.impl.Atom10Generator.addFeed(Atom10Generator.java:110)
at
com.sun.syndication.io.impl.Atom10Generator.populateFeed(Atom10Generator.java:101)
at com.sun.syndication.io.impl.Atom10Generator.generate(Atom10Generator.java:79)
at com.sun.syndication.io.WireFeedOutput.outputJDom(WireFeedOutput.java:207)
at com.sun.syndication.io.WireFeedOutput.output(WireFeedOutput.java:147)
at com.sun.syndication.io.WireFeedOutput.output(WireFeedOutput.java:126)
at com.sun.syndication.io.SyndFeedOutput.output(SyndFeedOutput.java:79)
at RomeRoundTripTest.main(RomeRoundTripTest.java:36)



 Comments   
Comment by hossman [ 02/Sep/08 ]

Created an attachment (id=21)
test code, run as "java RomeRoundTripTest http://feeds.feedburner.com/Passionemobile firstAtom.xml secondAtom.xml" ... url will not be hit if firstAtom.xml already exists.

Comment by hossman [ 02/Sep/08 ]

Created an attachment (id=22)
cached copy of firstAtom.xml from my test run, can be used to recreate problem even if source URL is offline (or changed)

Comment by tucu [ 03/Sep/08 ]

post 1.0 RC1

4. Fix. Syndication Module Generator was failing if some of its values were null.

Checks for nulll have been added it to the generator to prevent
NullPointerExceptions





[ROME-102] Contributors not present in Atom 1.0 and RSS 2.0 output xml Created: 19/Aug/08  Updated: 03/Sep/08  Resolved: 03/Sep/08

Status: Resolved
Project: rome
Component/s: www
Affects Version/s: current
Fix Version/s: milestone 1

Type: Bug Priority: Major
Reporter: igonzalez Assignee: rome-issues
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: All


Issuezilla Id: 102

 Description   

Setting the list of contributors via SyndEntry.setContributors() has no effect
in the output xml for feed types "atom_1.0" and "rss_2.0".



 Comments   
Comment by tucu [ 03/Sep/08 ]

Post 1.0 RC1 release

2. Fix. Contributors properties in SyndEntry were not implementing the semantics
of list properties.

They were returning NULL instead, now they return an empty list if not values
are set.

3. Fix. Contributors properties in SyndEntry and SyndFeed were not being
converted to/from WireFeed





[ROME-101] Get "White spaces are required" when trying to get an Atom service using Propono Created: 13/Aug/08  Updated: 31/Mar/10

Status: Open
Project: rome
Component/s: www
Affects Version/s: current
Fix Version/s: milestone 1

Type: Bug Priority: Blocker
Reporter: davidvc Assignee: rome-issues
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: Macintosh


Issuezilla Id: 101

 Description   

If I try to connect to

http://webflavors.com/brent/wp-app.php/service

through the Propono AtomPub client I get

org.jdom.input.JDOMParseException: Error on line 1: White spaces are required
between publicId and systemId.

If I just go to the URI directly I get a nicely formed XML response displaying
the workspaces (see below).

Marking this a P1 because I am completely stuck with this bug.

<?xml version="1.0" encoding="utf-8"?>
<service xmlns="http://www.w3.org/2007/app"
xmlns:atom="http://www.w3.org/2005/Atom">
<workspace>
<atom:title> Workspace</atom:title>
<collection href="http://webflavors.com/brent/wp-app.php/posts">
<atom:title> Posts</atom:title>
<accept>application/atom+xml;type=entry</accept>

<categories href="http://webflavors.com/brent/wp-app.php/categories" />
</collection>
<collection href="http://webflavors.com/brent/wp-app.php/attachments">
<atom:title> Media</atom:title>
<accept>image/</accept><accept>audio/</accept><accept>video/*</accept>
</collection>

</workspace>
</service>



 Comments   
Comment by davidvc [ 13/Aug/08 ]

Here is the full stack trace:

Exception in thread "main" com.sun.syndication.propono.utils.ProponoException:
ERROR retrieving Atom Service Document, code: -1
at
com.sun.syndication.propono.atom.client.ClientAtomService.<init>(ClientAtomService.java:93)
at
com.sun.syndication.propono.atom.client.AtomClientFactory.getAtomService(AtomClientFactory.java:33)
at com.webflavors.hogwash.CreateBlogs.run(CreateBlogs.java:38)
at com.webflavors.hogwash.CreateBlogs.main(CreateBlogs.java:29)
— ROOT CAUSE —
org.jdom.input.JDOMParseException: Error on line 1: White spaces are required
between publicId and systemId.
at org.jdom.input.SAXBuilder.build(SAXBuilder.java:468)
at org.jdom.input.SAXBuilder.build(SAXBuilder.java:770)
at
com.sun.syndication.propono.atom.client.ClientAtomService.<init>(ClientAtomService.java:88)
at
com.sun.syndication.propono.atom.client.AtomClientFactory.getAtomService(AtomClientFactory.java:33)
at com.webflavors.hogwash.CreateBlogs.run(CreateBlogs.java:38)
at com.webflavors.hogwash.CreateBlogs.main(CreateBlogs.java:29)
Caused by: org.xml.sax.SAXParseException: White spaces are required between
publicId and systemId.
at
com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:195)
at
com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.fatalError(ErrorHandlerWrapper.java:174)
at
com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:388)
at
com.sun.org.apache.xerces.internal.impl.XMLScanner.reportFatalError(XMLScanner.java:1411)
at
com.sun.org.apache.xerces.internal.impl.XMLScanner.scanExternalID(XMLScanner.java:1026)
at
com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.scanDoctypeDecl(XMLDocumentScannerImpl.java:687)
at
com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$PrologDriver.next(XMLDocumentScannerImpl.java:963)
at
com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:647)
at
com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:140)
at
com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:508)
at
com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:807)
at
com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:737)
at
com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:107)
at
com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1205)
at
com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:522)
at org.jdom.input.SAXBuilder.build(SAXBuilder.java:453)
... 5 more
Caused by: org.xml.sax.SAXParseException: White spaces are required between
publicId and systemId.
at
com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:195)
at
com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.fatalError(ErrorHandlerWrapper.java:174)
at
com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:388)
at
com.sun.org.apache.xerces.internal.impl.XMLScanner.reportFatalError(XMLScanner.java:1411)
at
com.sun.org.apache.xerces.internal.impl.XMLScanner.scanExternalID(XMLScanner.java:1026)
at
com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.scanDoctypeDecl(XMLDocumentScannerImpl.java:687)
at
com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$PrologDriver.next(XMLDocumentScannerImpl.java:963)
at
com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:647)
at
com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:140)
at
com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:508)
at
com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:807)
at
com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:737)
at
com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:107)
at
com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1205)
at
com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:522)
at org.jdom.input.SAXBuilder.build(SAXBuilder.java:453)
at org.jdom.input.SAXBuilder.build(SAXBuilder.java:770)
at
com.sun.syndication.propono.atom.client.ClientAtomService.<init>(ClientAtomService.java:88)
at
com.sun.syndication.propono.atom.client.AtomClientFactory.getAtomService(AtomClientFactory.java:33)
at com.webflavors.hogwash.CreateBlogs.run(CreateBlogs.java:38)
at com.webflavors.hogwash.CreateBlogs.main(CreateBlogs.java:29)

Comment by snoopdave [ 31/Mar/10 ]

I suspect this is a either a JDOM bug or the service doc is actually malformed XML (whitespace before the
<?xml version="1.0" encoding="utf-8"> line. Hard to tell because the service no longer appears to be
online.





[ROME-100] Add w3c date mask, use different method for atom date parsing Created: 22/Jul/08  Updated: 30/Jul/08  Resolved: 30/Jul/08

Status: Resolved
Project: rome
Component/s: www
Affects Version/s: current
Fix Version/s: milestone 1

Type: Task Priority: Major
Reporter: jashaj Assignee: rome-issues
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: All


Attachments: Text File rome-atom-dateparse.diff    
Issuezilla Id: 100

 Description   

Added new date mask to handle explicit time zones (e.g. -02:00). Changed the
DateParser method in the Atom10Parser for entry updated and published date so
custom date masks can be handled.



 Comments   
Comment by jashaj [ 22/Jul/08 ]

Created an attachment (id=18)
Patch for date parsing of Atom 1.0 feeds

Comment by tucu [ 30/Jul/08 ]

integrating patch.

Thanks Jashaj!





[ROME-99] Propono 0.6 MetaWeblogEntry.getAuthor() consistently returns null Created: 21/Jul/08  Updated: 12/Apr/10  Resolved: 12/Apr/10

Status: Resolved
Project: rome
Component/s: www
Affects Version/s: current
Fix Version/s: milestone 1

Type: Bug Priority: Major
Reporter: Alexis MP Assignee: rome-issues
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: All


Attachments: Java Source File BaseBlogEntry.java     Java Source File MetaWeblogEntry.java    
Issuezilla Id: 99

 Description   

I'm using propono 0.6 against blogs.sun.com and it seems that MetaWeblogEntry.getAuthor() consistently
returns null rather than the entry author.



 Comments   
Comment by Alexis MP [ 29/Jul/08 ]

AtomEntry.java seems to populate the "Person" correctly. MetaWeblogEntry.java doesn't.
Suggested fix:

BaseBlogEntry.java, line 27:
> protected Person author = null;

< protected Person author = new Person();

MetaWeblogEntry.java, line 48:
> permalink = (String)entryMap.get("permaLink");
> categories = new ArrayList();

< permalink = (String)entryMap.get("permaLink");
< author.setName( (String)entryMap.get("userid") );
< author.setEmail( (String)entryMap.get("author") );
< categories = new ArrayList();

The fix does the work for what I'm trying to do, but I'm not familiar enough with either Rome or Roller to understand how
definitive it is (I'm not setting the author's Url property for instance).

Comment by Alexis MP [ 29/Jul/08 ]

Created an attachment (id=19)
Proposed fix

Comment by Alexis MP [ 29/Jul/08 ]

Created an attachment (id=20)
Proposed fix

Comment by snoopdave [ 12/Apr/10 ]

Fixed in CVS





[ROME-98] improved XmlFixerReader so that '&' with no matching ';' are fixed. Created: 16/Jun/08  Updated: 17/Jun/08  Resolved: 17/Jun/08

Status: Resolved
Project: rome
Component/s: www
Affects Version/s: current
Fix Version/s: milestone 1

Type: Task Priority: Major
Reporter: patmoore Assignee: rome-issues
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: All


Attachments: Java Source File XmlFixerReader.java    
Issuezilla Id: 98

 Description   

I am seeing a lot of feeds with links that have '&' rather than '&' as
required. This change fixes '&' with no matching ';' to be '&'



 Comments   
Comment by patmoore [ 16/Jun/08 ]

Created an attachment (id=17)
replacement XmlFixerReader

Comment by tucu [ 17/Jun/08 ]

Thanks for the fix.

I've removed the @override as ROME must compile with JDK 1.4

I've modified the testcase to test this change.





[ROME-97] Content Module has inadvertent System.out.println call. Created: 22/May/08  Updated: 22/May/08

Status: Open
Project: rome
Component/s: www
Affects Version/s: current
Fix Version/s: milestone 1

Type: Improvement Priority: Major
Reporter: bcollison Assignee: rome-issues
Resolution: Unresolved Votes: 1
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: All


Attachments: Text File issue97_patch.txt    
Issuezilla Id: 97

 Description   

The Content Module (subprojects/modules/content/...) has a System.out.println
call in it that can be annoying

(btw-- adding a logging library would probably be pretty useful for rome, I was
a bit shocked when I found there was absolutely no logging)

patch will be attached.



 Comments   
Comment by bcollison [ 22/May/08 ]

Created an attachment (id=16)
Patch removing the offending System.out.println call





[ROME-96] getAtmosphere() not available in YWeatherFeedModule Created: 27/Mar/08  Updated: 27/Mar/08

Status: Open
Project: rome
Component/s: www
Affects Version/s: current
Fix Version/s: milestone 1

Type: Bug Priority: Major
Reporter: jramv Assignee: rome-issues
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: All


Issuezilla Id: 96

 Description   

I'm trying to use the Rome+YahooWeather API and found that the Atmosphere
infomation is not available from the YWeatherFeedModule. I browsed thru web-CVS
and found that the setter and getter methods for Atmosphere are not
incorporated in YWeatherFeedModule interface but have the code for the same
setters and getters in YWeatherModuleImpl.

For now I'm hacking by typecasting the YWeatherFeedModule to YWeatherModuleImpl
which I shouldn't be doing. Will it be possible to make these modifications and
make an another release?






[ROME-95] Encountering NoSuchMethodError for com.sun.syndication.io.SAXBuilder Created: 18/Mar/08  Updated: 07/Jan/09  Resolved: 07/Jan/09

Status: Resolved
Project: rome
Component/s: www
Affects Version/s: current
Fix Version/s: milestone 1

Type: Bug Priority: Blocker
Reporter: aupmann Assignee: rome-issues
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: Windows XP
Platform: Other


Issuezilla Id: 95

 Description   

I am reading a RSS 2.0 xml file into a XmlReader with the following code:
SyndFeed feed = input.build( feedReader ) where feedReader is a object of type
URL. I am encountering the following error after processing the previous line
of code:

[3/18/08 2:19:24:362 CDT] 00000024 SystemErr R java.lang.NoSuchMethodError:
com.sun.syndication.io.SAXBuilder: method setFeature(Ljava/lang/String;Z)V not
found
at com.sun.syndication.io.WireFeedInput.createSAXBuilder
(WireFeedInput.java:277)
at com.sun.syndication.io.WireFeedInput.build(WireFeedInput.java:173)

According to the javadoc, com.sun.syndication.io.SAXBuilder is extended from
org.jdom.input.SAXBuilder which does have a setFeature method for SAXBuilder.
I am using Rome 0.9 and JDOM 1.1 and this code is being executed in a servlet
built with RAD 7.0.



 Comments   
Comment by tucu [ 01/Apr/08 ]

JDOM 1.1 has not been tested with ROME 0.9.

Comment by tucu [ 02/Apr/08 ]

I'm changed the project.xml to use jdom 1.1 (I had to install it manually in
~/.maven ).

All test cases pass successful.

Using the FeedReader sample to fetch a URL it works fine as well.

Please verify and or clarify steps or provide code/URL that recreates the problem.

Comment by nicklothian [ 07/Jan/09 ]

Partial fix committed

Comment by nicklothian [ 07/Jan/09 ]

Err - my previous comment was for another issue, sorry. Please ignore.





[ROME-94] <content:encoded> appended on every read and write to rss 20 xml Created: 18/Dec/07  Updated: 09/Apr/08  Resolved: 09/Apr/08

Status: Resolved
Project: rome
Component/s: www
Affects Version/s: current
Fix Version/s: milestone 1

Type: Bug Priority: Major
Reporter: jiteshm Assignee: rome-issues
Resolution: Fixed Votes: 3
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: All


Issuezilla Id: 94

 Description   

I am using WireFeedInput and WireFeedOutput to read and write rss20 feed to file.

The feed has a <content:encoded> element.

I made wirefeed using WireFeedInput.build(reader); Then I am writing back the
obtained wirefeed using WireFeedOutput.output(wirefeed, writer) to another file.

This new file contains duplicate entries of same <content:encoded> element,
while the original feed has only one <content:encoded> element

Here is the replication code:

package rss;

import java.io.*;

import com.sun.syndication.feed.WireFeed;
import com.sun.syndication.feed.rss.Channel;
import com.sun.syndication.feed.rss.Content;
import com.sun.syndication.feed.rss.Item;
import com.sun.syndication.io.FeedException;
import com.sun.syndication.io.WireFeedInput;
import com.sun.syndication.io.WireFeedOutput;

public class TestItemContentDuplication
{
public static final String RSS_2_0 = "rss_2.0";

public static void main(String[] args) throws FeedException, IOException

{ testContentDuplication(); }

private static void testContentDuplication() throws FeedException, IOException

{ File test = new File("C:\\test\\test.xml"); File test1 = new File("C:\\test\\test1.xml"); test.delete(); test1.delete(); Channel channel = createEmptyChannel(); //System.out.println(channel.getForeignMarkup()); // creating a new item with Content Item item = new Item(); Content content = new Content(); content.setType("text/plain"); content.setValue("hello"); item.setContent(content); channel.getItems().add(item); // write the channel to test file writeWireFeed(channel, test); // read back the just now written file Channel wireFeed = (Channel) buildWireFeed(test); //write the obtained feed back to test1 file writeWireFeed(wireFeed, test1); ///Notice that test1 contains duplicate value of <content:encoded> element with value hello }

private static void writeWireFeed(WireFeed wirefeed, File file) throws
IOException, FeedException
{
WireFeedOutput output = new WireFeedOutput();
//wirefeed.setEncoding(FEED_ENCODING);
Writer writer = getWriter(file);
try

{ output.output(wirefeed, writer); }

finally {
try

{ writer.close(); }

catch (IOException ioe) {
}
}
}

public static WireFeed buildWireFeed(File file)
throws FeedException, IOException
{
WireFeed wireFeed = null;
Reader reader = null;
try

{ reader = new InputStreamReader(new FileInputStream(file)); //reader = new InputStreamReader(new FileInputStream(file), FEED_ENCODING); wireFeed = new WireFeedInput().build(reader); }

finally {
if (reader != null) {
try

{ reader.close(); }

catch (IOException e) {
}
}
}
return wireFeed;
}

private static Writer getWriter(File file) throws IOException
{
Writer writer;
try

{ return new FileWriter(file, true); //return new OutputStreamWriter(new FileOutputStream(file), FEED_ENCODING); }

catch (FileNotFoundException fileDoesNotExist)

{ throw fileDoesNotExist; }

catch (IOException e)

{ throw e; }

}

private static Channel createEmptyChannel()

{ Channel channel = new Channel(); channel.setLink(""); channel.setTitle(""); channel.setFeedType(RSS_2_0); channel.setDescription(""); return channel; }

}

This duplication is problematic for my use case where repeated such operation
increases the size of the xml, which would also mean unnecessary performance
overhead in parsing these large xmls.

Any help/workaround would be useful.



 Comments   
Comment by jiteshm [ 18/Dec/07 ]

The change i see between the original feed and the feed build using
wirefeedInput was that the build feed has foreignMarkup element with value
<content:encoded [Namespace: http://purl.org/rss/1.0/modules/content/]/>, while
the original feed has none.

So if after building the xml, I iterate though items and do
item.setForeignMarkup(null), and then write this back the new file does not have
duplicate entires..
However this looks expensive and I am not sure what could be its other side effects

Comment by tucu [ 01/Apr/08 ]

I've found the problem to this one:

When adding support for content:encoded this has been wrongfully done
in the RSS parsers and generators, it should have been done in a
module parser/generator.

Because there is not module registered for that namespace it is
treated as foreign markup as well as as the content:encoded property
of the item thus the ocurrences increment on every read/write.

I personally don't like how the bean model has evolved, is to convoluted.

A simple fix for this is to make the RSS090Parser parseItem() to
discard content:encoded elements when computing foreign markup for the
item.

Is not the cleanest fix but it will work.

Comment by jiteshm [ 01/Apr/08 ]

Thanks a lot tucu!!
So as suggested for now I am filtering out content encoded namespace from
extracted foreign markup.. A little better solution would have been if I had
made extractForeignMarkup method take list of NameSpaces to be excluded.
However I wanted to get it work with minimum change. The change made to
RSS090Parser looks something like this.

protected Item parseItem(Element rssRoot, Element eItem)
{
Item item = new Item();
Element e = eItem.getChild("title", getRSSNamespace());
if (e != null)

{ item.setTitle(e.getText()); }

e = eItem.getChild("link", getRSSNamespace());
if (e != null)

{ item.setLink(e.getText()); }

item.setModules(parseItemModules(eItem));

List foreignMarkup =
extractForeignMarkup(eItem, item, getRSSNamespace());
removeContentEncodedFromForeignMarkUp(foreignMarkup);
if (foreignMarkup.size() > 0)

{ item.setForeignMarkup(foreignMarkup); }

return item;
}

private void removeContentEncodedFromForeignMarkUp(List foreignMarkup)
{
for (Iterator it = foreignMarkup.iterator(); it.hasNext() {
Object o = (Object) it.next();
Element element = (Element) o;
if (CONTENT_NS.equals(element.getNamespace()))

{ it.remove(); }

}
}

Comment by tucu [ 09/Apr/08 ]

content:encoded elements are treated special, without a module, they have to be
removed from the foreign markup to avoid duplication in case of read/write. Note
that this fix will break if a content module is used.





[ROME-93] Atom output uses incorrect values for type Created: 11/Dec/07  Updated: 11/Dec/07  Resolved: 11/Dec/07

Status: Resolved
Project: rome
Component/s: www
Affects Version/s: current
Fix Version/s: milestone 1

Type: Bug Priority: Major
Reporter: laz Assignee: rome-issues
Resolution: Incomplete Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: All
URL: http://feedvalidator.org/check.cgi?url=http%3A%2F%2Fwww.boomi.com%2Fapplication%2Fatom.xml


Issuezilla Id: 93

 Description   

The example document being passed through Feed Validator uses Rome 0.9 to output
a feed containing entries with the content type sent to "text/html" though the
use of the setContentType(String) method on SyndContent. The type attribute of
the summary elements in the Atom output is incorrectly set to HTML instead of
html, causing the feed to fail validation. It seems that Rome has the correct
type but in capital letters for text/plain, text/html, and application/xhtml+xml
as defined in Atom10Generator.java. According to http://atompub.org/rfc4287.html
the should be lowercased.



 Comments   
Comment by tucu [ 11/Dec/07 ]

It has been already fixed on the HEAD of CVS, Atom10Generator.java CSV version 1.9





[ROME-92] ParsingFeedException Invalid XML on invalid <itunes:duration> Created: 10/Dec/07  Updated: 07/Jan/09  Resolved: 07/Jan/09

Status: Resolved
Project: rome
Component/s: www
Affects Version/s: current
Fix Version/s: milestone 1

Type: Bug Priority: Critical
Reporter: eproulx Assignee: rome-issues
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: All


Attachments: Text File nfe.patch    
Issuezilla Id: 92

 Description   

ROME craps out when encountering a bad value in <itunes:duration>. It should be
resilient and just ignore the tag. Maybe log a warning.

This is the URL that causes the problem right now:
http://www.discovery.com/radio/xml/news.xml

Example RSS item (note the invalid value in <itunes:duration>):
<item>
<title>Discovery News Update: October 23, 2007</title>
<itunes:duration>hh:mm:ss</itunes:duration>
<pubDate>Tue, 23 Oct 2007 01:00:00 EDT</pubDate>
<enclosure
url="http://netstorage.discovery.com/dsc/podcasts/2007/10/NewsOct22.mp3"
length="6969378" type="audio/mpeg" />
<guid>http://netstorage.discovery.com/dsc/podcasts/2007/10/NewsOct22.mp3</guid>
<itunes:author>Discovery News</itunes:author>
<description>Comparing organic lawn care to chemical care on the National Mall
in Washignton DC</description>
<itunes:subtitle>Comparing organic lawn care to chemical care on the National
Mall in Washignton DC</itunes:subtitle>
<itunes:summary>Comparing organic lawn care to chemical care on the National
Mall in Washignton DC</itunes:summary>
<itunes:image href="http://www.discovery.com/radio/gallery/dsc.news300.jpg" />
<itunes:explicit>no</itunes:explicit>
<itunes:keywords>news, Discovery,Discovery Channel,
science,space,technology,history,nature,dinosaur, global warming</itunes:keywords>
</item>

The code is :
-------------
URL url = new URL("http://www.discovery.com/radio/xml/news.xml")
//Load the feed, regardless of RSS or Atom type
SyndFeed syndFeed = input.build(new XmlReader(url));
--------------
Exception in thread "main" com.sun.syndication.io.ParsingFeedException: Invalid XML
at com.sun.syndication.io.WireFeedInput.build(WireFeedInput.java:185)
at com.sun.syndication.io.SyndFeedInput.build(SyndFeedInput.java:122)
at [TRUNCATED]
Caused by: java.lang.NumberFormatException: For input string: "hh"
at
java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
at java.lang.Long.parseLong(Long.java:403)
at java.lang.Long.parseLong(Long.java:461)
at
com.sun.syndication.feed.module.itunes.types.Duration.<init>(Duration.java:95)
at
com.sun.syndication.feed.module.itunes.io.ITunesParser.parse(ITunesParser.java:149)
at
com.sun.syndication.io.impl.ModuleParsers.parseModules(ModuleParsers.java:51)
at
com.sun.syndication.io.impl.BaseWireFeedParser.parseItemModules(BaseWireFeedParser.java:57)
at com.sun.syndication.io.impl.RSS090Parser.parseItem(RSS090Parser.java:289)
at
com.sun.syndication.io.impl.RSS091UserlandParser.parseItem(RSS091UserlandParser.java:222)
at com.sun.syndication.io.impl.RSS092Parser.parseItem(RSS092Parser.java:81)
at com.sun.syndication.io.impl.RSS093Parser.parseItem(RSS093Parser.java:39)
at com.sun.syndication.io.impl.RSS094Parser.parseItem(RSS094Parser.java:68)
at com.sun.syndication.io.impl.RSS090Parser.parseItems(RSS090Parser.java:263)
at
com.sun.syndication.io.impl.RSS090Parser.parseChannel(RSS090Parser.java:178)
at
com.sun.syndication.io.impl.RSS091UserlandParser.parseChannel(RSS091UserlandParser.java:84)
at com.sun.syndication.io.impl.RSS092Parser.parseChannel(RSS092Parser.java:49)
at com.sun.syndication.io.impl.RSS094Parser.parseChannel(RSS094Parser.java:45)
at com.sun.syndication.io.impl.RSS090Parser.parse(RSS090Parser.java:82)
at com.sun.syndication.io.WireFeedInput.build(WireFeedInput.java:252)
at com.sun.syndication.io.WireFeedInput.build(WireFeedInput.java:179)
... 3 more



 Comments   
Comment by martinkurz [ 13/Dec/08 ]

Created an attachment (id=28)
surround Long.parseLong with try-catch

Comment by nicklothian [ 07/Jan/09 ]

I can improve the handling here slightly, but the problem remains that the
producer is producing an invalid feed. I'd note that the feed used as an example
here (http://www.discovery.com/radio/xml/news.xml) has been fixed and is now
producing correct data.

Comment by nicklothian [ 07/Jan/09 ]

Partial fix committed





[ROME-91] IllegalArgumentException is never thrown Created: 04/Oct/07  Updated: 01/Apr/08  Resolved: 01/Apr/08

Status: Resolved
Project: rome
Component/s: www
Affects Version/s: current
Fix Version/s: milestone 1

Type: Bug Priority: Trivial
Reporter: bartswen Assignee: rome-issues
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: All


Issuezilla Id: 91

 Description   

When I expect an IllegalArgumentException from WireFeedInput.build(Reader), I
get a ParsingFeedException. This means that it is difficult to detect an
unsupported feed type.

The catch(Exception ex) catches the IAEx, and the build method will never throw
the IAEx declared in the interface. The same in other build methods.



 Comments   
Comment by tucu [ 01/Apr/08 ]

now throwing IllegalArgumentException





[ROME-90] Error on one Test-Feed Created: 13/Sep/07  Updated: 01/Apr/08  Resolved: 01/Apr/08

Status: Resolved
Project: rome
Component/s: www
Affects Version/s: current
Fix Version/s: milestone 1

Type: Bug Priority: Blocker
Reporter: 12know Assignee: rome-issues
Resolution: Incomplete Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: Windows XP
Platform: PC


Issuezilla Id: 90

 Description   

URL feedUrl = new
URL(docFeedConfig.getItemValueString("http://www.tagesschau.de/xml/rss2"));
SyndFeedInput input = new SyndFeedInput();
SyndFeed feed = input.build(new XmlReader(feedUrl));

caused following error:

sun.io.MalformedInputException
at sun.io.ByteToCharUTF8.convert(ByteToCharUTF8.java:270)
at sun.nio.cs.StreamDecoder$ConverterSD.convertInto(StreamDecoder.java:287)
at sun.nio.cs.StreamDecoder$ConverterSD.implRead(StreamDecoder.java:337)
at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:223)
at java.io.InputStreamReader.read(InputStreamReader.java:208)
at java.io.BufferedReader.fill(BufferedReader.java:153)
at java.io.BufferedReader.readLine(BufferedReader.java:316)
at java.io.BufferedReader.readLine(BufferedReader.java:379)
at com.sun.syndication.io.XmlReader.getXmlProlog(XmlReader.java:531)
at com.sun.syndication.io.XmlReader.doHttpStream(XmlReader.java:325)
at com.sun.syndication.io.XmlReader.<init>(XmlReader.java:174)
at com.sun.syndication.io.XmlReader.<init>(XmlReader.java:151)
at JavaAgent.ProcessConfig(JavaAgent.java:68)
at JavaAgent.ProcessAllConfigs(JavaAgent.java:46)
at JavaAgent.NotesMain(JavaAgent.java:27)
at lotus.domino.AgentBase.runNotes(Unknown Source)
at lotus.domino.NotesThread.run(Unknown Source)



 Comments   
Comment by tucu [ 01/Apr/08 ]

feed is read properly by FeedReader sample





[ROME-89] conurrent update/read of feed.xml results in org.xml.sax.SAXParseException: Premature end of file Created: 22/Aug/07  Updated: 01/Apr/08  Resolved: 01/Apr/08

Status: Resolved
Project: rome
Component/s: www
Affects Version/s: current
Fix Version/s: milestone 1

Type: Bug Priority: Major
Reporter: monika7 Assignee: rome-issues
Resolution: Incomplete Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: Macintosh


Issuezilla Id: 89

 Description   

I am using rome propono 0.5 (with rome 0.9) example code for implementing
simplified version of feed server, publisher and consumer.
To test how fast I can publish and read the feed entires, I am using atom server
from the propono example code deployed on Tomcat. Publisher is running in
continuous loop and adds new entry to the collection on the server (sample code
below). Consumer also runs in a continuous loop and gets entries from the
collection on the server.

Sooner or later I get a server side exception (by looking at the source code, it
seems like the problems is with reading from feed.xml file):

com.sun.syndication.io.ParsingFeedException: Invalid XML: Error on line -1:
Premature end of file.
at com.sun.syndication.io.WireFeedInput.build(WireFeedInput.java:182)
at
com.sun.syndication.propono.atom.server.impl.FileBasedCollection.getFeedDocument(FileBasedCollection.java:118)
at
com.sun.syndication.propono.atom.server.impl.FileBasedAtomHandler.getCollection(FileBasedAtomHandler.java:135)
at com.sun.syndication.propono.atom.server.AtomServlet.doGet(AtomServlet.java:109)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:263)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
at
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:584)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Thread.java:613)
Caused by: org.jdom.input.JDOMParseException: Error on line -1: Premature end of
file.
at org.jdom.input.SAXBuilder.build(SAXBuilder.java:468)
at org.jdom.input.SAXBuilder.build(SAXBuilder.java:851)
at com.sun.syndication.io.WireFeedInput.build(WireFeedInput.java:178)
... 17 more
Caused by: org.xml.sax.SAXParseException: Premature end of file.
at
com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:236)
at
com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.fatalError(ErrorHandlerWrapper.java:215)
at
com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:386)
at
com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:316)
at
com.sun.org.apache.xerces.internal.impl.XMLVersionDetector.determineDocVersion(XMLVersionDetector.java:230)
at
com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:798)
at
com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:764)
at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:148)
at
com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1242)
at org.jdom.input.SAXBuilder.build(SAXBuilder.java:453)
... 19 more

------ CODE ----------
Sample feed consumer
----------------------
//... get uri, username, password from command line arguments ...

ClientAtomService service = AtomClientFactory.getAtomService(uri, username,
password);

// Find the workspace that we want
ClientWorkspace clientWorkspace = (ClientWorkspace)service.findWorkspace("admin");

// Find first collection in workspace that will accept entries
ClientCollection collection = (ClientCollection)
clientWorkspace.findCollection("Entries", "entry");

// Get entries
while(true){
Thread.sleep(10);

Iterator entryIterator = collection.getEntries();

while(entryIterator.hasNext()){
ClientEntry entry = (ClientEntry)entryIterator.next();
System.out.println("entry_id: "entry.getId()" Title:
"entry.getTitle()" Updated: "+entry.getUpdated());

List entries = entry.getContents();
if(entries!=null){
Iterator contentIterator = entries.iterator();
while(contentIterator.hasNext())

{ Content content = (Content)contentIterator.next(); System.out.println(content.getValue()); }


}

List categories = entry.getCategories();
if(categories!=null){
Iterator categoryIterator = categories.iterator();
while (categoryIterator.hasNext())

{ Category cat = (Category)categoryIterator.next(); System.out.println("\t" + cat.getTerm()); }


}
}//end while
}// forever

------ CODE ----------
Sample feed publisher
----------------------
//... get uri, username, password from command line arguments ...

// Connect to service, GET Service Doc.
ClientAtomService service = AtomClientFactory.getAtomService(uri, username,
password);

// Find the workspace that we want
ClientWorkspace clientWorkspace = (ClientWorkspace)service.findWorkspace("admin");

// Find first collection in workspace that will accept entries
ClientCollection collection = (ClientCollection)
clientWorkspace.findCollection("Entries", "entry");

while(true)

{ Thread.sleep(1000); // sleep for one second // Create entry, set title and content but don't POST it yet ClientEntry entry = collection.createEntry(); entry.setTitle(title); // ATOM spec required field entry.setId("id_1234"); // ATOM spec required field entry.setUpdated(date); // ATOM spec required field // tested with snippet of xml code an also with simple text entry.setContent(xmltext,Content.XML); // ATOM spec recommended field // POST entry to collection on server collection.addEntry(entry); System.out.println("entryadded := "+entry.toString()); }

-----------------------



 Comments   
Comment by monika7 [ 22/Aug/07 ]

I fixed it as follows locally:
In FileBasedCollection.getFeedDocument(), part of the code that creates WireFeed
is not within the synchronized block. Fix code:

public Feed getFeedDocument() throws AtomException {
InputStream in = null;

synchronized(FileStore.getFileStore()) {

in = FileStore.getFileStore().getFileInputStream(getFeedPath());

if (in == null)

{ in = createDefaultFeedDocument(getHref()); }

// original code has the try section outside of synchronized block

try

{ WireFeedInput input = new WireFeedInput(); WireFeed wireFeed = input.build(new InputStreamReader(in)); return (Feed)wireFeed; }

catch (FeedException ex)

{ ex.printStackTrace(); throw new AtomException(ex); }

}
}

Comment by tucu [ 01/Apr/08 ]

It seem this was a synchronization issue on the code using ROME.





[ROME-88] RSS090Parser does not set the URI property - behaviour contrary to the documentation Created: 21/Aug/07  Updated: 16/Jul/08  Resolved: 16/Jul/08

Status: Resolved
Project: rome
Component/s: www
Affects Version/s: current
Fix Version/s: milestone 1

Type: Bug Priority: Major
Reporter: zznate Assignee: rome-issues
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: All


Attachments: Text File issue88_patch.txt    
Issuezilla Id: 88

 Description   

As detailed on the page:
http://wiki.java.net/bin/view/Javawsxml/Rome05URIMapping

"For RSS 0.91, RSS 0.92, RSS 0.93 & RSS 1.0 ... the SyndEntry uri property will
be set with the value of the link element..."

This is in fact, not the case. Line # 286 from HEAD has only the link property
set. Perhaps on the next line, we should see:
item.setUri(e.getText());

It is not until the 1.0 RSS parser that we see a call to setUri from within
parseItem (and related call stack).

Apologies ahead of time if I have somehow misunderstood the intention here.
Otherwise, thanks for an extremely useful API.



 Comments   
Comment by bcollison [ 22/May/08 ]

Created an attachment (id=15)
Implementation and Tests for setting Uri in Rss versions 0.9x, 1.0

Comment by tucu [ 16/Jul/08 ]

Fix. RSS090Parser does not set the URI property.

The fix honors the documentation "For RSS 0.91, RSS 0.92, RSS 0.93 & RSS 1.0 ...
the SyndEntry uri property will be set with the value of the link element..."





[ROME-87] SyndFeed should give access to xsl stylesheet in incoming xml so I can run a transform on output Created: 13/Jul/07  Updated: 13/Jul/07

Status: Open
Project: rome
Component/s: www
Affects Version/s: current
Fix Version/s: milestone 1

Type: Improvement Priority: Major
Reporter: garpinc Assignee: rome-issues
Resolution: Unresolved Votes: 2
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: All


Issuezilla Id: 87

 Description   

SyndFeed should give access to xsl stylesheet in incoming xml so I can run a
transform on output






[ROME-86] Fetcher: Encoding problem Created: 05/Jul/07  Updated: 12/Jan/09  Resolved: 12/Jan/09

Status: Resolved
Project: rome
Component/s: www
Affects Version/s: current
Fix Version/s: milestone 1

Type: Bug Priority: Major
Reporter: ejain Assignee: rome-issues
Resolution: Incomplete Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: All
URL: http://proteinspotlight.org/atom.xml


Issuezilla Id: 86

 Description   

If I get this feed [see URL] which uses ISO-8859-1 encoding with the
FeedFetcher, the contents are not converted to normal Java UTF-16 strings, this
needs to be done manually!

FeedFetcher fetcher = new HttpURLFeedFetcher(cache);
SyndFeed feed = fetcher.retrieveFeed(url);
...
String desc = entry.getDescription().getValue(); // desc is not UTF-16!
desc = new String(desc.getBytes(Charset.forName("ISO-8859-1"))); // now OK



 Comments   
Comment by snoopdave [ 13/Aug/07 ]

Indicating that this is (probably) a Fetcher bug.

Comment by nicklothian [ 11/Jan/09 ]

Not a fetcher bug. Here is some code to replicate it (run against
http://www.expasy.org/spotlight/atom.xml):

public static void main(String[] args) {
boolean ok = false;
if (args.length==1) {
try {
URL feedUrl = new URL(args[0]);
SyndFeedInput input = new SyndFeedInput();

SyndFeed feed = input.build(new XmlReader(feedUrl.openStream(),
"text/html; charset=ISO-8859-1", true));

List entries = feed.getEntries();
for (Iterator iterator = entries.iterator(); iterator.hasNext()

{ SyndEntry entry = (SyndEntry) iterator.next(); String desc = entry.getDescription().getValue(); String encodedDesc = new String(desc.getBytes(Charset.forName("ISO-8859-1"))); System.out.println(desc); System.out.println(encodedDesc); }

ok = true;
}
catch (Exception ex)

{ ex.printStackTrace(); System.out.println("ERROR: "+ex.getMessage()); }

}

if (!ok)

{ System.out.println(); System.out.println("FeedReader reads and prints any RSS/Atom feed type."); System.out.println("The first parameter must be the URL of the feed to read."); System.out.println(); }

}

XmlReader seems to correctly detect that it is ISO-8859-1, but
entry.getDescription().getValue() and
desc.getBytes(Charset.forName("ISO-8859-1")) get different things (I'm not
entirely sure what should happen here..)

Comment by nicklothian [ 12/Jan/09 ]

Thanks to Martin Kurz for taking a look at this.

It appears that the RSS feed referenced isn't ISO-8859-1 encoded - it's probably WINDOWS-1252.

ROME can't detect or correct that kind of problem - it needs to be fixed on the
server side.





[ROME-85] Change W3C date parser to accept TZ in RFC 822 format Created: 04/Jul/07  Updated: 13/Aug/07  Resolved: 13/Aug/07

Status: Resolved
Project: rome
Component/s: www
Affects Version/s: current
Fix Version/s: milestone 1

Type: Bug Priority: Major
Reporter: calbot Assignee: rome-issues
Resolution: Won't Fix Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: All


Issuezilla Id: 85

 Description   

I made the following change to DateParser in my local code to fix a problem I
experienced where some feeds use RFC 822 TZ offset format in dc:date fields
instead of W3CDT. It may be useful to add this to the official version.

I noticed this problem in craigslist.org feeds.

public static Date parseW3CDateTime(String sDate) {
// if sDate has time on it, it injects 'GTM' before de TZ displacement to
// allow the SimpleDateFormat parser to parse it properly
int tIndex = sDate.indexOf("T");
if (tIndex>-1) {
if (sDate.endsWith("Z"))

{ sDate = sDate.substring(0,sDate.length()-1)+"+00:00"; }

int tzdIndex = sDate.indexOf("+",tIndex);
if (tzdIndex==-1)

{ tzdIndex = sDate.indexOf("-",tIndex); }

if (tzdIndex>-1) {
String pre = sDate.substring(0,tzdIndex);
int secFraction = pre.indexOf(",");
if (secFraction>-1)

{ pre = pre.substring(0,secFraction); }

String post = sDate.substring(tzdIndex);

//MY FIX: Fix TZ offset if formated as RFC 822 date.
//Change it to correct W3CDT
if(post.indexOf(":") == -1)

{ int colonSplitPos = post.length() - 2; post = post.substring(0, colonSplitPos) + ":" + post.substring(colonSplitPos, post.length()); }

sDate = pre + "GMT" + post;
}
}
else

{ sDate += "T00:00GMT"; }

return parseUsingMask(W3CDATETIME_MASKS,sDate);
}



 Comments   
Comment by snoopdave [ 13/Aug/07 ]

You can plugin your own parser if you need to handle feeds that do not following
the specification.





[ROME-84] [PATCH] add support for EBCDIC encoding Created: 03/Jul/07  Updated: 03/Jul/07

Status: Open
Project: rome
Component/s: www
Affects Version/s: current
Fix Version/s: milestone 1

Type: Task Priority: Major
Reporter: hboutemy Assignee: rome-issues
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: All


Attachments: Text File rome-84.diff    
Issuezilla Id: 84

 Description   

everything is in the summary



 Comments   
Comment by hboutemy [ 03/Jul/07 ]

Created an attachment (id=13)
EBCDIC support

Comment by hboutemy [ 03/Jul/07 ]

warning: with this patch, some unit tests fail:
_testRawBomInvalid("UTF-16BE-bom","UTF-16BE","UTF-16LE");
_testRawBomInvalid("UTF-16LE-bom","UTF-16LE","UTF-16BE");
_testRawBomInvalid("UTF-16LE-bom","UTF-16LE","UTF-8");
I don't really understand why...





[ROME-83] add Maven2 support Created: 03/Jul/07  Updated: 04/Jan/09  Resolved: 04/Jan/09

Status: Resolved
Project: rome
Component/s: www
Affects Version/s: current
Fix Version/s: milestone 1

Type: Improvement Priority: Major
Reporter: hboutemy Assignee: rome-issues
Resolution: Duplicate Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: All


Attachments: XML File pom.xml     XML File pom.xml    
Issuezilla Id: 83

 Description   

add pom.xml for Maven2



 Comments   
Comment by hboutemy [ 03/Jul/07 ]

Created an attachment (id=12)
pom.xml

Comment by hboutemy [ 10/Nov/07 ]

Created an attachment (id=14)
pom.xml

Comment by nicklothian [ 04/Jan/09 ]

See also https://rome.dev.java.net/issues/show_bug.cgi?id=116

Comment by nicklothian [ 04/Jan/09 ]

This is the same as issue 116 (and the pom.xml is essentially the same)

      • This issue has been marked as a duplicate of 116 ***




[ROME-82] Update Propono for APP draft #15 Created: 01/Jul/07  Updated: 13/Aug/07  Resolved: 13/Aug/07

Status: Resolved
Project: rome
Component/s: www
Affects Version/s: current
Fix Version/s: milestone 1

Type: Improvement Priority: Major
Reporter: snoopdave Assignee: rome-issues
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: Macintosh


Issuezilla Id: 82

 Description   

And make sure Atom server impl. passes Ape tests.



 Comments   
Comment by snoopdave [ 13/Aug/07 ]

Propono has been updated for APP final (draft #17).





[ROME-81] SyndFeedImpl.equals() does not obey equals contract Created: 20/Jun/07  Updated: 20/Jun/07  Resolved: 20/Jun/07

Status: Resolved
Project: rome
Component/s: www
Affects Version/s: current
Fix Version/s: milestone 1

Type: Bug Priority: Critical
Reporter: rodgling Assignee: rome-issues
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: All


Issuezilla Id: 81

 Description   

SyndFeedImpl.equals(null) throws NPE instead of returning false.



 Comments   
Comment by tucu [ 20/Jun/07 ]

Making the EqualsBean to follow equals contract.

Added testcase for it.

Made changes to WireFeed, atom Entry, rss Item, SyndFeedImpl and SyndEntryImpl
equals() methods to check for null as they add special handling due to foreign
markup.





[ROME-80] APP test case Created: 04/Jun/07  Updated: 13/Aug/07  Resolved: 13/Aug/07

Status: Resolved
Project: rome
Component/s: www
Affects Version/s: current
Fix Version/s: milestone 1

Type: Bug Priority: Major
Reporter: treydrake Assignee: rome-issues
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: Macintosh


Issuezilla Id: 80

 Description   

AtomEntryPoster setContent specifies content title and type in reverse order

entry.setContent(Content.HTML,htmltext); >> entry.setContent(htmltext,Content.HTML);



 Comments   
Comment by snoopdave [ 13/Aug/07 ]

Fixed in r1.2 by Trey





[ROME-79] Feed.setIcon()/setLogo() ignored by Atom10Generator Created: 26/May/07  Updated: 18/Jun/07  Resolved: 18/Jun/07

Status: Resolved
Project: rome
Component/s: www
Affects Version/s: current
Fix Version/s: milestone 1

Type: Bug Priority: Critical
Reporter: jeffsuttor Assignee: rome-issues
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: All


Issuezilla Id: 79

 Description   

Feed.setIcon()/setLogo have no impact on the resulting Feed. they appear to be
ignored in Atom10Generator. this reduces the appeal of the resulting feed.



 Comments   
Comment by treydrake [ 18/Jun/07 ]

Fixed in AtomGenerator rev 1.12. Added feed icon and logo rendering.





[ROME-78] Exception parsing http://sfbay.craigslist.org/sci/index.rss RSS feed Created: 15/May/07  Updated: 01/Apr/08  Resolved: 01/Apr/08

Status: Resolved
Project: rome
Component/s: www
Affects Version/s: current
Fix Version/s: milestone 1

Type: Bug Priority: Major
Reporter: dandreas Assignee: rome-issues
Resolution: Incomplete Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: All
URL: http://sfbay.craigslist.org/sci/index.rss


Issuezilla Id: 78

 Description   

Parsing RSS URL http://sfbay.craigslist.org/sci/ produces the exception below.

com.sun.syndication.io.ParsingFeedException: Invalid XML: Error on line 1: White
spaces are required between publicId and systemId.
at com.sun.syndication.io.WireFeedInput.build(WireFeedInput.java:182)
at com.sun.syndication.io.SyndFeedInput.build(SyndFeedInput.java:122)

The RSS feed works fine when viewed through Web browsers.



 Comments   
Comment by dandreas [ 15/May/07 ]

RSS feed address causing the issue is http://sfbay.craigslist.org/sci/index.rss

Comment by tucu [ 01/Apr/08 ]

using FeedReader example the feed (http://sfbay.craigslist.org/sci/index.rss) is
parsed successfully





[ROME-77] File-based Atom handler stores media files at wrong path Created: 30/Apr/07  Updated: 13/Aug/07  Resolved: 13/Aug/07

Status: Resolved
Project: rome
Component/s: www
Affects Version/s: current
Fix Version/s: milestone 1

Type: Bug Priority: Critical
Reporter: snoopdave Assignee: rome-issues
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: Macintosh


Issuezilla Id: 77

 Description   

View URI returned by server is incorrect



 Comments   
Comment by snoopdave [ 30/Apr/07 ]

Fixed in CVS

Comment by snoopdave [ 13/Aug/07 ]

And checked via Ape circa August 2007





[ROME-76] SampleAtomServer: propono.properties not included in build process Created: 30/Apr/07  Updated: 13/Aug/07  Resolved: 13/Aug/07

Status: Resolved
Project: rome
Component/s: www
Affects Version/s: current
Fix Version/s: milestone 1

Type: Bug Priority: Major
Reporter: snoopdave Assignee: rome-issues
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: Macintosh


Issuezilla Id: 76

 Description   

And contents should be:

com.sun.syndication.propono.atom.server.AtomHandlerFactory=\
com.sun.syndication.propono.samples.SampleAtomHandlerFactory



 Comments   
Comment by snoopdave [ 30/Apr/07 ]

Fixed in CVS

Comment by snoopdave [ 13/Aug/07 ]

Tested during prep for Propono 0.6





[ROME-75] AtomHandlerFactory uses wrong fallback classes Created: 30/Apr/07  Updated: 13/Aug/07  Resolved: 13/Aug/07

Status: Resolved
Project: rome
Component/s: www
Affects Version/s: current
Fix Version/s: milestone 1

Type: Bug Priority: Critical
Reporter: snoopdave Assignee: rome-issues
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: Macintosh


Issuezilla Id: 75

 Description   

If no AtomHandler is configured, Propono's AtomServlet will fallback to a class
that does not exist.



 Comments   
Comment by snoopdave [ 30/Apr/07 ]

Fixed in CVS

Comment by snoopdave [ 13/Aug/07 ]

Tested during Propono 0.6 prep





[ROME-74] Propono's AtomHandlerFactory.FALLBACK_IMPL_NAME is set to non-existent class Created: 28/Apr/07  Updated: 13/Aug/07  Resolved: 13/Aug/07

Status: Resolved
Project: rome
Component/s: www
Affects Version/s: current
Fix Version/s: milestone 1

Type: Bug Priority: Critical
Reporter: Ian Evans Assignee: rome-issues
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: All


Issuezilla Id: 74

 Description   

When trying to run an Atom server with rome-propono, you get the following
exception, thrown from AtomServlet:
javax.servlet.ServletException: PWC1244: Servlet execution threw an exception
root cause
com.sun.syndication.propono.atom.server.FactoryConfigurationError: Provider
com.sun.syndication.propono.atom.server.impl.GenericAtomHandlerFactory not found

It looks like this should FileBasedAtomHandlerFactory. GenericAtomHandlerFactory
was removed.



 Comments   
Comment by snoopdave [ 13/Aug/07 ]

Fixed for Propono 0.6 release





[ROME-73] Expose xml:lang field in Atom parser Created: 27/Apr/07  Updated: 13/Aug/07

Status: Open
Project: rome
Component/s: www
Affects Version/s: current
Fix Version/s: milestone 1

Type: Improvement Priority: Critical
Reporter: rjbodkin Assignee: rome-issues
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: All


Issuezilla Id: 73

 Description   

We want to find the language of postings in Atom feeds, but this information
isn't retained by the Atom1.0 parser. It would be nice to have SyndEntry store
this metadata. E.g., in

<content type="html" xml:lang="en-US"
xml:base="http://cpdweblog.typepad.com/chicago_police_department/">
...
</content>

We'd like to have the "en-US" value available.



 Comments   
Comment by tucu [ 02/May/07 ]

xml:lang and other namespaces attributes cannot be retrieved from ROME Beans.

I would defer this for next rev.

Comment by snoopdave [ 13/Aug/07 ]

This is an enhancement request, not a bug.





[ROME-72] Feed fetcher need to support HTTP Proxy Created: 26/Apr/07  Updated: 27/Apr/07

Status: Reopened
Project: rome
Component/s: www
Affects Version/s: current
Fix Version/s: milestone 1

Type: New Feature Priority: Major
Reporter: denverdino Assignee: rome-issues
Resolution: Unresolved Votes: 2
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: All


Issuezilla Id: 72

 Description   

Feed fetcher need to support the HTTP proxy.
It is better to be consistent with Java Networking Properties.
http.proxyHost
http.proxyPort
http.nonProxyHosts



 Comments   
Comment by nicklothian [ 26/Apr/07 ]

FeedFetcher uses the URLConenction class, which will use the proxy properties
requested below.

Comment by denverdino [ 27/Apr/07 ]

I think the problem is due to the commons-httpclient-3.0.1.jar in the classpath.
It use the HttpClientFeedFetcher. The different fetcher implementation should
keep the similar behaviors. Do you think so?





[ROME-71] encoding problem in XmlReader.getXmlProlog() Created: 26/Apr/07  Updated: 01/Jun/07  Resolved: 01/Jun/07

Status: Resolved
Project: rome
Component/s: www
Affects Version/s: current
Fix Version/s: milestone 1

Type: Bug Priority: Major
Reporter: denverdino Assignee: rome-issues
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: All


Attachments: Java Archive File rome-0.9.1-dev.jar     Java Source File XmlReader.java    
Issuezilla Id: 71

 Description   

The com.sun.syndication.io.XmlReader.getXmlProlog() has some encoding problem.
It use the buffer (size PUSHBACK_MAX_SIZE) to guesse the XML encoding, it may
truncate the char wrong, then br.readLine() will have the problem.

The problem will occurs very commonly in the non-western feeds. E.g.
http://muwayne.spaces.live.com/feed.rss



 Comments   
Comment by tucu [ 26/Apr/07 ]

The provided feed is parsed successfully (using the FeedReader example)

Comment by denverdino [ 14/May/07 ]

When the buffer (size PUSHBACK_MAX_SIZE) just pass the char (part of char in the
buffer, part of it is not in the buffer), the exception will be thrown. Pls try
http://hi.baidu.com/huisemumuxi/rss

sun.io.MalformedInputException
at sun.io.ByteToCharUTF8.convert(ByteToCharUTF8.java:262)
at sun.nio.cs.StreamDecoder$ConverterSD.convertInto(StreamDecoder.java:314)
at sun.nio.cs.StreamDecoder$ConverterSD.implRead(StreamDecoder.java:364)
at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:250)
at java.io.InputStreamReader.read(InputStreamReader.java:212)

Comment by tucu [ 15/May/07 ]

I'm not seeing the problem in Mac OS X but I think I understood the issue
(multibyte char being split on buffer boundary).

I've think I have a fix for it but I cannot test it.

Attached is the XmlReader source with the changes. I've also attached a ROME jar
with the compiled changes, please test and let me know.

Comment by tucu [ 15/May/07 ]

Created an attachment (id=10)
ROME JAR with the proppose fix

Comment by tucu [ 15/May/07 ]

Created an attachment (id=11)
XmlReader with fix

Comment by tucu [ 01/Jun/07 ]

Changed logic of xml prolog read ahead, to avoid this case





[ROME-70] Propono File-based impl. improvements Created: 25/Apr/07  Updated: 13/Aug/07  Resolved: 13/Aug/07

Status: Resolved
Project: rome
Component/s: www
Affects Version/s: current
Fix Version/s: milestone 1

Type: Improvement Priority: Major
Reporter: snoopdave Assignee: rome-issues
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: Macintosh


Issuezilla Id: 70

 Description   

As I've been poking and prodding at
the FileBased impl I noticed that in the FileBasedAtomService class
there might be a couple threading/scoping problems.

  • boolean firstTime looks like it wants to be static as it's a check
    for the static cacheProps variable.
  • Properties cacheProps should probably be final, although this
    doesn't seem like it will be a problem in your current impl, as it's
    never assigned a new object and is private.
  • I think the synchronized block should be outside the check on
    firstTime to avoid two threads entering that block at the same time.
  • firstTime should be set to "true" by default.

From Dan B.



 Comments   
Comment by snoopdave [ 13/Aug/07 ]

Fixed for Propono 0.6 release





[ROME-69] APP interop: Propono: use pluggable authentication scheme Created: 22/Apr/07  Updated: 31/Mar/10  Resolved: 31/Mar/10

Status: Resolved
Project: rome
Component/s: www
Affects Version/s: current
Fix Version/s: milestone 1

Type: Improvement Priority: Major
Reporter: snoopdave Assignee: rome-issues
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: Macintosh


Issuezilla Id: 69

 Description   

HTTPClient allows us to plugin authentication handlers. We should provide
handlers for Google Auth and WSSE so user doesn't have to.

  • HTTPClient AuthScheme / RFC2617 plugins
  • Google auth
  • WSSE

Take a look at what Abdera is doing for this one.



 Comments   
Comment by snoopdave [ 31/Mar/10 ]

This was added to Propono in January 2009





[ROME-68] APP interop: Propono: must handle out-of-line categories Created: 22/Apr/07  Updated: 13/Aug/07  Resolved: 13/Aug/07

Status: Resolved
Project: rome
Component/s: www
Affects Version/s: current
Fix Version/s: milestone 1

Type: Bug Priority: Major
Reporter: snoopdave Assignee: snoopdave
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: Macintosh


Issuezilla Id: 68

 Description   

Propono doesn't fetch and parse a remote Service Doc categories document, but it
should.



 Comments   
Comment by snoopdave [ 13/Aug/07 ]

Implemented for Propono 0.6 release

  • APP server and client now support out-of-line categories
  • File based implementation can use out-of-line categories
  • Atomserver example defaults to out-of-lines categories




[ROME-67] APP interop: Propono: must handle relative URIs in Service Doc Created: 22/Apr/07  Updated: 13/Aug/07  Resolved: 13/Aug/07

Status: Resolved
Project: rome
Component/s: www
Affects Version/s: current
Fix Version/s: milestone 1

Type: Bug Priority: Major
Reporter: snoopdave Assignee: snoopdave
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: Macintosh


Issuezilla Id: 67

 Description   

Need to support relative URIs in Service Doc. Oracle's APP server uses them. Joe
Gregorio's APP servers use them.



 Comments   
Comment by snoopdave [ 13/Aug/07 ]

Implemented for Propono 0.6 release

  • APP client and server code both support relative URIs in Service doc and feeds
  • File based implemenation supports them too
  • Atomserver defaults to relative URIs




[ROME-66] APP interop: Propono: don't expect entry to be returned from update Created: 22/Apr/07  Updated: 22/Apr/07  Resolved: 22/Apr/07

Status: Resolved
Project: rome
Component/s: www
Affects Version/s: current
Fix Version/s: milestone 1

Type: Bug Priority: Major
Reporter: snoopdave Assignee: snoopdave
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: Macintosh


Issuezilla Id: 66

 Description   

APP doesn't require servers to return entry XML on update, neither should Propono.



 Comments   
Comment by snoopdave [ 22/Apr/07 ]

Fixed in CVS, will be in Propono 0.5





[ROME-65] Atom feeds not including logo image Created: 03/Apr/07  Updated: 18/Jun/07  Resolved: 18/Jun/07

Status: Resolved
Project: rome
Component/s: www
Affects Version/s: current
Fix Version/s: milestone 1

Type: Bug Priority: Major
Reporter: snoopdave Assignee: rome-issues
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: Macintosh


Issuezilla Id: 65

 Description   

I cant get the SyndImage to work and print out the <image> element
Here is my java code:

<code>
// create an rss feed that can be used in the tests
SyndFeed feed = new SyndFeedImpl();
feed.setFeedType("atom_1.0");
feed.setTitle("Test Channel");
feed.setDescription("Test Channel description");
feed.setAuthor("RssUtilTest");

// Add an image icon
SyndImage image = new SyndImageImpl();
image.setTitle("Vinfolio - Fine wine. Finer service");
image.setUrl("http://www.vinfolio.com/favicon.ico");
image.setLink("http://www.vinfolio.com");
image.setDescription("Vinfolio - Fine wine. Finer service");
feed.setImage(image);
</code>

Here is my xml output:

<code>

<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom"
xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" xmlns:rdf="
http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:sy="http://purl.org/rss/1.0/modules/syndication/ "
xmlns:dc="http://purl.org/dc/elements/1.1/">
<title>Test Channel</title>
<subtitle>Test Channel description</subtitle>
<dc:creator>RssUtilTest</dc:creator>
<entry>
<title>Test title</title>
<link rel="alternate" href="http://testsiteurl.com "/>
<author>
<name>Vinfolio - Fine wine. Finer service</name>
</author>
<summary>Test description</summary>
<dc:creator>Vinfolio - Fine wine. Finer service</dc:creator>
</entry>
</feed>

</code>

I would like to get something with an element like this:

<code>

<image>
<title>Vinfolio - Fine wine. Finer service</title>
<url>http://www.vinfolio.com/favicon.ico</url>
<link>http://www.vinfolio.com</link>
</image>

</code>

Any ideas?
Thanks



 Comments   
Comment by treydrake [ 18/Jun/07 ]

Added support for logo rendering in AtomGenerator rev 1.12





[ROME-64] ROME's Atom parser doesn't pick up multiple alt links Created: 03/Apr/07  Updated: 13/Aug/07  Resolved: 13/Aug/07

Status: Resolved
Project: rome
Component/s: www
Affects Version/s: current
Fix Version/s: milestone 1

Type: Bug Priority: Major
Reporter: snoopdave Assignee: rome-issues
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: Macintosh


Issuezilla Id: 64

 Description   

I use rome 0.9. I took Atom_1.0.xml example from source distribution of rome and
changed the begining as this:

<?xml version="1.0" encoding="utf-8"?>
<feed xmlns=' http://www.w3.org/2005/Atom'
xmlns:rometest='http://rome.dev.java.net/namespacetest'
xml:lang='en-us'>
<title type="html">atom_1.0.feed.title</title>
<link rel="self" type="text/html" href="http://example.com/blog/atom_1.0.xml"/>
<link rel="alternate" type="text/html" href=" http://example.com/blog"/>
<link rel="alternate" type="text/plain" href="http://example.com/blogg"/>
<rometest:test>rometest</rometest:test>

The point is, that if there are two links, that has rel attribute with value
alternate, then the rome doesn't work correctly.

I just use the clasical creation of the SyndFeed
// read feed
SyndFeedInput input = new SyndFeedInput();
SyndFeed nativeFeed = input.build(new XmlReader(inMess));

At this point, when I call nativeFeed.getLink () or nativeFeed.getLinks(), both
return null.



 Comments   
Comment by snoopdave [ 13/Aug/07 ]

Fixed in CVS. Added tests at feed and entry level.





[ROME-63] Missing link attribute when generating Atom 1.0 Created: 11/Mar/07  Updated: 23/Jul/07  Resolved: 23/Jul/07

Status: Closed
Project: rome
Component/s: www
Affects Version/s: current
Fix Version/s: milestone 1

Type: Bug Priority: Major
Reporter: mhug Assignee: rome-issues
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: Macintosh


Issuezilla Id: 63

 Description   

Atom10Generator does not generate the "title" attribute of a link.



 Comments   
Comment by snoopdave [ 23/Jul/07 ]

"Please close issue #63 (https://rome.dev.java.net/issues/show_bug.cgi?id=63) as
it was fixed in Atom10Generator rev 1.10." - Trey Drake

Comment by mhug [ 23/Jul/07 ]

Checked in rev 1.10 source file.





[ROME-62] sun.io.MalformedInputException parsing the feed http://politiken.dk/rss/indland.rss Created: 08/Mar/07  Updated: 01/Apr/08  Resolved: 01/Apr/08

Status: Resolved
Project: rome
Component/s: www
Affects Version/s: current
Fix Version/s: milestone 1

Type: Bug Priority: Major
Reporter: g9adm Assignee: rome-issues
Resolution: Incomplete Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: Windows XP
Platform: PC
URL: http://politiken.dk/rss/indland.rss


Issuezilla Id: 62

 Description   

Hi ..

I get the following stacktrace when trying to parse the rss feed :
http://politiken.dk/rss/indland.rss
I have also seen this on several other (Danish) feeds

The encoding is set to UTF-8 by the getXMLGuessEncoding( ) method. (
getBOMEncoding returns null ) When the getXmlProlog is called it therefore tries
to read the prolog using UTF-8, which causes the error below. If I remove the
guessedEnc from the line :
Reader reader = new InputStreamReader(new
ByteArrayInputStream(bytes,0,bytesRead), guessedEnc); (line 558)
it works.

sun.io.MalformedInputException
at sun.io.ByteToCharUTF8.convert(ByteToCharUTF8.java:278)
at sun.nio.cs.StreamDecoder$ConverterSD.convertInto(StreamDecoder.java:314)
at sun.nio.cs.StreamDecoder$ConverterSD.implRead(StreamDecoder.java:364)
at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:250)
at java.io.InputStreamReader.read(InputStreamReader.java:212)
at java.io.BufferedReader.fill(BufferedReader.java:157)
at java.io.BufferedReader.readLine(BufferedReader.java:320)
at java.io.BufferedReader.readLine(BufferedReader.java:383)
at com.sun.syndication.io.XmlReader.getXmlProlog(XmlReader.java:561)
at com.sun.syndication.io.XmlReader.doHttpStream(XmlReader.java:355)
at com.sun.syndication.io.XmlReader.<init>(XmlReader.java:204)
at com.sun.syndication.io.XmlReader.<init>(XmlReader.java:181)
at com.sun.syndication.samples.FeedReader.main(FeedReader.java:45)



 Comments   
Comment by tucu [ 08/Mar/07 ]

Using the sample FeedReader it works fine.

BTW, the encoding is declared in the XML prolog as ISO-8859-1, the reader is
create with that encoding and it works ok.

Comment by g9adm [ 08/Mar/07 ]

I am also using the Sample feedreader :

public static void main(String[] args) {
String feedUrlStr ="http://politiken.dk/rss/indland.rss";
try {
URL feedUrl = new URL(feedUrlStr);
SyndFeedInput input = new SyndFeedInput();

SyndFeed feed = input.build(new XmlReader(feedUrl));
for (Iterator iter = feed.getEntries().iterator(); iter.hasNext()

{ SyndEntryImpl e = (SyndEntryImpl ) iter.next(); System.out.println(e.getTitle()); }

System.out.println();
}
catch (Exception ex)

{ ex.printStackTrace(); System.out.println("ERROR: "+ex.getMessage()); }

}

Which version works for you ? I tried 0.9 and latest from head. Which JDK are
you on?

Comment by tucu [ 08/Mar/07 ]

I'm testing on Mac OS X 10.4.8 with JDK 1.5.0_07 using the head of CVS.

Please send an email with your exact OS/JDK/Rome version to the
users@rome.dev.java.net and the URL and ask for somebody to check if they see
the same error.

Comment by tucu [ 01/Apr/08 ]

using FeedReader example the feed is parsed successfully





[ROME-61] The Javadocs link on http://wiki.java.net/bin/view/Javawsxml/Rome does not work. Created: 06/Mar/07  Updated: 06/Mar/07  Resolved: 06/Mar/07

Status: Resolved
Project: rome
Component/s: www
Affects Version/s: current
Fix Version/s: milestone 1

Type: Bug Priority: Major
Reporter: yan Assignee: rome-issues
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: Linux
Platform: Other
URL: http://wiki.java.net/bin/view/Javawsxml/Rome


Issuezilla Id: 61

 Description   

The Javadocs link on http://wiki.java.net/bin/view/Javawsxml/Rome does not work.
It goes to a page that says,

Sorry, this page not found on java.net.

Please recheck the url you entered or clicked on to get to
this page. You can also go to the java.net project list to find
the project by name.

Hint: The first part of the url (before the .dev) is the project name.



 Comments   
Comment by tucu [ 06/Mar/07 ]

There is a redirection to SSL problem in java.net, updated the wiki to go to
HTTPS directly and it is working. also filed a bug on java.net
(https://java-net.dev.java.net/issues/show_bug.cgi?id=324)





[ROME-60] 'run' script doesn't allow passing proxyHost or proxyPort Created: 28/Feb/07  Updated: 05/Mar/07  Resolved: 05/Mar/07

Status: Resolved
Project: rome
Component/s: www
Affects Version/s: current
Fix Version/s: milestone 1

Type: Bug Priority: Minor
Reporter: aditya_dada Assignee: rome-issues
Resolution: Incomplete Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: All


Issuezilla Id: 60

 Description   

C:\sun\SDK\samples\swdp\blogapps\romeexamples\dist\rome-examples>run.bat -DhttpP
roxy.host="<proxyname>.<proxydomain>" -DhttpProxy.port="<proxyport>"
org.blogapps.romeexamples.fetcher.ParseFeedFetcher
http://blogs.sun.com/main/feed/entries/rss
Exception in thread "main" java.lang.NoClassDefFoundError: <proxyname>/<proxydomain>

Its a good to have feature for the sample app.



 Comments   
Comment by snoopdave [ 05/Mar/07 ]

Please DO NOT submit Blogapps bugs to the ROME project.





[ROME-59] org.blogapps.romeexamples.GenerateFeed doesn't have a proper usage. Created: 28/Feb/07  Updated: 05/Mar/07  Resolved: 05/Mar/07

Status: Resolved
Project: rome
Component/s: www
Affects Version/s: current
Fix Version/s: milestone 1

Type: Bug Priority: Major
Reporter: aditya_dada Assignee: rome-issues
Resolution: Incomplete Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: All


Issuezilla Id: 59

 Description   

Example org.blogapps.romeexamples.GenerateFeed doesn't have a proper usage.
i.e. passing the argument "atom_1.0" worked, but I had to go through the source
to find that out. passing 'atom', 'rss' throws exception.

Usage should let the user know what 'feed-type' to input. i.e. usage should be like:
USAGE: GenerateFeed <feed-type>
Where: <feed-type> is one of [RSS|atom_1.0|Funky]

Documentation should also reflect this change.



 Comments   
Comment by snoopdave [ 05/Mar/07 ]

Please DO NOT report Blogapps bugs to the ROME project, they belong in the
Blogapps project





[ROME-58] org.blogapps.romeexamples.GenerateFeedRSS doesn't have proper usage. Created: 28/Feb/07  Updated: 05/Mar/07  Resolved: 05/Mar/07

Status: Resolved
Project: rome
Component/s: www
Affects Version/s: current
Fix Version/s: milestone 1

Type: Bug Priority: Major
Reporter: aditya_dada Assignee: rome-issues
Resolution: Incomplete Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: All


Issuezilla Id: 58

 Description   

Example org.blogapps.romeexamples.GenerateFeedRSS doesn't have proper usage.

C:\sun\SDK\samples\swdp\blogapps\romeexamples\dist\rome-examples>run.bat
org.blogapps.romeexamples.GenerateFeedRSS
USAGE: GenerateRSS <feed-type>

C:\sun\SDK\samples\swdp\blogapps\romeexamples\dist\rome-examples>run.bat
org.blogapps.romeexamples.GenerateFeedRSS RSS
Exception in thread "main" java.lang.IllegalArgumentException: Invalid feed type
[RSS]
at com.sun.syndication.io.WireFeedOutput.outputJDom(WireFeedOutput.java:186)
at com.sun.syndication.io.WireFeedOutput.output(WireFeedOutput.java:133)
at org.blogapps.romeexamples.GenerateFeedRSS.main(GenerateFeedRSS.java:46)

Usage should let the user know what 'feed-type' to input. i.e. usage should be like:
USAGE: GenerateRSS <feed-type>
Where: <feed-type> is one of [RSS|Atom|Funky]



 Comments   
Comment by snoopdave [ 05/Mar/07 ]

Please DO NOT report Blogapps bugs here, use the Blogapps project instead.





[ROME-57] building samples through 'ant' doesn't copy rome-0.9.jar to proper lib directory. Created: 28/Feb/07  Updated: 05/Mar/07  Resolved: 05/Mar/07

Status: Resolved
Project: rome
Component/s: www
Affects Version/s: current
Fix Version/s: milestone 1

Type: Bug Priority: Major
Reporter: aditya_dada Assignee: rome-issues
Resolution: Incomplete Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: All


Issuezilla Id: 57

 Description   

While building ROME samples using the 'ant' command, the rome-0.9.jar file is
not copied under dist/rome-examples/lib directory.
As a result, the samples throw Class Not Found errors for SyndFeedInput.

I'm using latest promoted SDK (build 8) on Windows XP.



 Comments   
Comment by snoopdave [ 05/Mar/07 ]

Please DO NOT submit Blogapps bugs here, they belong at
http://blogapps.dev.java.net.





[ROME-56] fix of bug #39 leads to invalid atom feeds Created: 30/Jan/07  Updated: 31/Jan/07  Resolved: 31/Jan/07

Status: Resolved
Project: rome
Component/s: www
Affects Version/s: current
Fix Version/s: milestone 1

Type: Bug Priority: Major
Reporter: applebanana8 Assignee: rome-issues
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: All


Issuezilla Id: 56

 Description   

the fix for ROME-39 (https://rome.dev.java.net/issues/show_bug.cgi?id=39, in
Atom10Generator.fillContentElement, lines 352-254) sets uppercase values, which
leads to invalid xml/atom feeds!



 Comments   
Comment by snoopdave [ 31/Jan/07 ]

Thanks for the bug report. I have fixed that in CVS and it will be in the next
ROME release.

The bug will only effect folks who set content type to "text/plain", "text/html"
or "applicaton/xhtml+xml". The work around is to set the values correctly when
you create an entry i.e. if you want "text/plain" use "text". If you want
"text/html" use "html". If you want "application/xhtml+xml" use "xhtml".





[ROME-55] TestDateParser fails extra date format test Created: 27/Dec/06  Updated: 07/Jan/09  Resolved: 07/Jan/09

Status: Resolved
Project: rome
Component/s: www
Affects Version/s: current
Fix Version/s: milestone 1

Type: Task Priority: Trivial
Reporter: rovin Assignee: rome-issues
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: All


Issuezilla Id: 55

 Description   

manually running "ant -f build.xml test" fails on the TestDateParser unit test,
line 121 ("extra" date format mask).

Apparently, the file src/test/rome.properties doesn't get copied to
target/test-classes (or doesn't get included in the classpath).

My own quick and dirty build.xml patch:

— build.xml.orig 2006-12-27 13:06:44.000000000 +0100
+++ build.xml 2006-12-27 13:36:14.000000000 +0100
@@ -127,6 +127,7 @@
</target>

<target name="copy-data" if="data.present">
+ <copy file="src/test/rome.properties" todir="$

{testclassesdir}" />
<copy todir="${testclassesdir}

">
<fileset dir="src/data">
<include name="*/.xml" />



 Comments   
Comment by nicklothian [ 02/Jan/07 ]

Thanks for the report.

Can we just confirm you are using the 0.9 ROME release and not CVS?

I believe this should be fixed in CVS
(https://rome.dev.java.net/source/browse/rome/build.xml?r1=1.14&r2=1.15)

Comment by rovin [ 06/Jan/07 ]

Indeed, I was using the zipped 0.9 release, not the CVS tree.

Comment by nicklothian [ 07/Jan/09 ]

Fixed in previous release





[ROME-54] RSS .91 Feed pubDates are null even though feed contains pubDates Created: 15/Dec/06  Updated: 16/Dec/06  Resolved: 16/Dec/06

Status: Resolved
Project: rome
Component/s: www
Affects Version/s: current
Fix Version/s: milestone 1

Type: Bug Priority: Major
Reporter: calbot Assignee: rome-issues
Resolution: Incomplete Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: All


Issuezilla Id: 54

 Description   

I'm looking at this feed:
http://www.newratings.com/feeds/nr_ticker.xml

All items in the xml have pubDates but the parsed java entries for pubDate are null.

I actually think this is the websites fault.
It doesn't look like the dates are is in the proper format.
Please comment if possible.

Thanks.



 Comments   
Comment by markwoodman [ 16/Dec/06 ]

The feed doesn't validate because dates are in the wrong format. (See
http://tinyurl.com/ydvtl5) ROME behavior is correct.

If you have to use the feed and can't get them to fix it, you can use a custom
date format in your props file. (See
http://wiki.java.net/bin/view/Javawsxml/Rome07DateParsing)





[ROME-53] Content.setType not working with subtitles atom 1.0 Created: 14/Dec/06  Updated: 13/Aug/07  Resolved: 13/Aug/07

Status: Resolved
Project: rome
Component/s: www
Affects Version/s: current
Fix Version/s: milestone 1

Type: Bug Priority: Major
Reporter: oznek Assignee: rome-issues
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: All


Attachments: Text File kenzo.patch    
Issuezilla Id: 53

 Description   

Changing content (com.sun.syndication.feed.atom.Content) type with
setType("html") doesn't work on a Feed.setSubtitle(Content).

On the output xml, there is no type=html in the subtitle tag.



 Comments   
Comment by oznek [ 14/Dec/06 ]

Created an attachment (id=9)
correction for type, icon and logo

Comment by snoopdave [ 13/Aug/07 ]

Fixed in CVS.





[ROME-52] mediarss: less verbose handling of bad thumbnail tags Created: 08/Dec/06  Updated: 08/Dec/06

Status: Open
Project: rome
Component/s: www
Affects Version/s: current
Fix Version/s: milestone 1

Type: Task Priority: Major
Reporter: otaylor Assignee: rome-issues
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: All


Attachments: Text File null-url-attribute-20061208.patch    
Issuezilla Id: 52

 Description   

http://www.woot.com/blog/rss.aspx has tags of the form:

<media:thumbnail xmlns="media">
http://www.woot.com/Images/Sale/Littermaid_LM920_Self-Cleaning_Litterbox838-thumbnail.jpg</media:thumbnail>

This doesn't seem to belegitimate according to the MediaRSS spec - the url
is supposed to be an attribute, not the contents of the element. But logging
an entire backtrace for this is annoying and unnecessary. This patch reduces
the logging to a single line.

(I turned the enclosing catch (Exception e) to a catch (RuntimeException e)
in case there were other problems that it was intended to catch. In my
own code, I'd probably have removed it entirely.)



 Comments   
Comment by otaylor [ 08/Dec/06 ]

Created an attachment (id=8)
Patch reducing logging

Comment by otaylor [ 08/Dec/06 ]

(Changed issue type to "PATCH")





[ROME-51] mediarss: rating tags without scheme Created: 08/Dec/06  Updated: 08/Dec/06

Status: Open
Project: rome
Component/s: www
Affects Version/s: current
Fix Version/s: milestone 1

Type: Task Priority: Major
Reporter: otaylor Assignee: rome-issues
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: All


Attachments: Text File default-rating-scheme-20061208.patch    
Issuezilla Id: 51

 Description   

I'm not sure if this is the right place to report things for the MediaRSS module,
but I don't see a better place.

According to the MediaRSS spec, the scheme element on the rating tag is optional
and has the default value urn:simple. The attached patch implements this.

(An example feed without the scheme: http://www.defcon.org/defconrss.xml)



 Comments   
Comment by otaylor [ 08/Dec/06 ]

Created an attachment (id=7)
Patch adding default value





[ROME-50] Feed security and XSS filtering Created: 10/Nov/06  Updated: 10/Nov/06

Status: Open
Project: rome
Component/s: www
Affects Version/s: current
Fix Version/s: milestone 1

Type: Improvement Priority: Blocker
Reporter: snoopdave Assignee: rome-issues
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: All


Issuezilla Id: 50

 Description   

ROME should provide an option to filter all Javascript from all URIs and all
content fields (title, subtitle, description, summary, etc. and more)






[ROME-49] Better content/summary mapping Created: 09/Nov/06  Updated: 03/Mar/07  Resolved: 03/Mar/07

Status: Resolved
Project: rome
Component/s: www
Affects Version/s: current
Fix Version/s: milestone 1

Type: Improvement Priority: Major
Reporter: snoopdave Assignee: rome-issues
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: All


Issuezilla Id: 49

 Description   

https://rome.dev.java.net/servlets/ReadMsg?list=dev&msgNo=1680



 Comments   
Comment by snoopdave [ 09/Nov/06 ]

Implement algorithm outlined by Sam Ruby.

Comment by snoopdave [ 11/Nov/06 ]
      • Plan for RSS/Atom summary/content mapping

I believe the consensus for summary/content mapping to/from
RSS/Atom was the plan that I proposed plus suggestions from Sam Ruby.

Here's the plan w/Sam's suggestions:
https://rome.dev.java.net/servlets/ReadMsg?list=dev&msgNo=1679

Basically, it boils down to this:
When converting RSS to Atom, we want to map
rss.item.description -> atom.entry.summary
rss.item.content:encoded -> atom.entry.content
When converting Atom to RSS, we want to map
atom.entry.summary -> rss.item.description
atom.entry.content -> rss.item.content:encoded

I say "we want to map" because we're not mapping directly
from RSS to Atom and vice versa. We map from RSS to/from
Synd model and likewise for Atom. We're already handling
the Atom to/from Synd feed side correctly as described
above – we need to fix RSS to/from Synd.

To implement the plan, we have to add built-in support for
the <content:encoded> part of the Content Module into ROME.
I propose that we do that, but we ensure that we do not
interfere with the any existing Content Module implementations.
So, we'll parse <content:encoded>, but we'll only generate it
when the Content Module is not in play.

      • Work to be done

— com/sun/syndication/feed/rss/Content.java
Add a new RSS Content class to model <content:encoded>

— com/sun/syndication/feed/rss/Item.java
Add new item.content property in RSS item object

— RSS10Parser.java
In parseItem() method, add parsing for <content:encoded>

— RSS091UserlandParser.java
In parseItem() method, add parsing for <content:encoded>

— ConverterForRSS091Userland.java
Implement the conversion rules we agreed upon

createRSSItem()
synd.content -> rss.content
synd.summary -> rss.description

createSyndEntry()
rss.content -> synd.content
rss.description -> synd.summary

— ConverterForRSS091Userland.java
Implement the conversion rules we agreed upon
Same as above

— RSS10Generator.java
In populateItem(), generate <content:encoded> if needed,
but only when any Content module is not in play*

— RSS091UserlandGenerator.java
In populateItem(), generate <content:encoded> if needed,
but only when Content module is not in play*

  • If there is a generator registered to handle the
    Conent Module URI, then we consider it to be in play.
Comment by snoopdave [ 11/Nov/06 ]
      • Issue 40 has been marked as a duplicate of this issue. ***
Comment by snoopdave [ 03/Mar/07 ]

This was fixed in 0.9





[ROME-48] Support Atom feed.title, feed.subtitle and entry.title Created: 09/Nov/06  Updated: 10/Nov/06  Resolved: 10/Nov/06

Status: Resolved
Project: rome
Component/s: www
Affects Version/s: current
Fix Version/s: milestone 1

Type: Improvement Priority: Critical
Reporter: snoopdave Assignee: rome-issues
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: All


Issuezilla Id: 48

 Description   

Treating feed.title, feed.description and entry.title as strings is not
sufficient to model Atom 1.0 format feeds. We need to model those things text
constructs with a value and a type (text, html, xhtml or content-type).

But we can't eliminate the existing title and description fields because we
don't want to break the API. So instead, add these methods to SyndFeed:

public SyndContent getTitleEx();
public void getTitleEx(SyndContent title);
public SyndContent getDescriptionEx();
public void getDescriptioneEx(SyndContent title);

And add these methods to SyndEntry:

public SyndContent getTitleEx();
public void getTitleEx(SyndContent title);

And modify Atom10Parser and ConverterForAtom10 to parse and convert the text
constructs properly.



 Comments   
Comment by snoopdave [ 10/Nov/06 ]

Fixed in CVS, should be included in next release (0.9 or 1.0)





[ROME-47] Modules 0.2 jar is built with the wrong Java version! Created: 29/Sep/06  Updated: 16/Aug/07  Resolved: 16/Aug/07

Status: Resolved
Project: rome
Component/s: www
Affects Version/s: current
Fix Version/s: milestone 1

Type: Bug Priority: Major
Reporter: eiki Assignee: rome-issues
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: Macintosh


Issuezilla Id: 47

 Description   

Hi it seems the bundle distibution jar file for all rome modules is built with java 1.5 when the project
clearly states you only need Java 1.4. Please rebuild the distribution with java 1.4.



 Comments   
Comment by kebernet [ 16/Aug/07 ]

Just to resolve, this should be fixed in the point release.





[ROME-46] Security issue Created: 29/Aug/06  Updated: 29/Aug/06  Resolved: 29/Aug/06

Status: Resolved
Project: rome
Component/s: www
Affects Version/s: current
Fix Version/s: milestone 1

Type: Bug Priority: Blocker
Reporter: nicklothian Assignee: nicklothian
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: All


Issuezilla Id: 46

 Description   

ROME is vulnerable to the security issue outlined in
http://www.somebits.com/weblog/tech/bad/xmlCode.html and
http://www.securiteam.com/securitynews/6D0100A5PU.html



 Comments   
Comment by nicklothian [ 29/Aug/06 ]

Turned off entity processing in ROME. Thanks to Nelson Minar for bring this to
our attention.





[ROME-45] mediarss.io.MediaModuleParser NumberFormatException Created: 27/Jul/06  Updated: 29/Aug/06  Resolved: 29/Aug/06

Status: Resolved
Project: rome
Component/s: www
Affects Version/s: current
Fix Version/s: milestone 1

Type: Bug Priority: Major
Reporter: stephensmith Assignee: rome-issues
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: All


Issuezilla Id: 45

 Description   

A feed containing the following entry:

<media:content
url="http://www.podtrac.com/pts/redirect.mp3?http://media.mugglenet.com/mugglecast/podcastawardpromo.mp3"
fileSize="2.1" type="audio/mp3">

threw the following exception:

Jul 27, 2006 2:35:36 PM
com.sun.syndication.feed.module.mediarss.io.MediaModuleParser parseContent
WARNING: Exception parsing content tag.
java.lang.NumberFormatException: For input string: "2.1"
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
at java.lang.Long.parseLong(Long.java:403)
at java.lang.Long.<init>(Long.java:630)
at
com.sun.syndication.feed.module.mediarss.io.MediaModuleParser.parseContent(MediaModuleParser.java:137)
at
com.sun.syndication.feed.module.mediarss.io.MediaModuleParser.parse(MediaModuleParser.java:94)
at com.sun.syndication.io.impl.ModuleParsers.parseModules(ModuleParsers.java:51)
at
com.sun.syndication.io.impl.BaseWireFeedParser.parseItemModules(BaseWireFeedParser.java:54)
at com.sun.syndication.io.impl.RSS090Parser.parseItem(RSS090Parser.java:258)
at
com.sun.syndication.io.impl.RSS091UserlandParser.parseItem(RSS091UserlandParser.java:221)
at com.sun.syndication.io.impl.RSS092Parser.parseItem(RSS092Parser.java:81)
at com.sun.syndication.io.impl.RSS093Parser.parseItem(RSS093Parser.java:39)
at com.sun.syndication.io.impl.RSS094Parser.parseItem(RSS094Parser.java:63)
at com.sun.syndication.io.impl.RSS090Parser.parseItems(RSS090Parser.java:232)
at com.sun.syndication.io.impl.RSS090Parser.parseChannel(RSS090Parser.java:150)
at
com.sun.syndication.io.impl.RSS091UserlandParser.parseChannel(RSS091UserlandParser.java:83)
at com.sun.syndication.io.impl.RSS092Parser.parseChannel(RSS092Parser.java:49)
at com.sun.syndication.io.impl.RSS094Parser.parseChannel(RSS094Parser.java:45)
at com.sun.syndication.io.impl.RSS090Parser.parse(RSS090Parser.java:80)
at com.sun.syndication.io.WireFeedInput.build(WireFeedInput.java:245)
at com.sun.syndication.io.WireFeedInput.build(WireFeedInput.java:171)
at com.sun.syndication.io.SyndFeedInput.build(SyndFeedInput.java:122)



 Comments   
Comment by kebernet [ 29/Aug/06 ]

I changed the exception handling so invalid values on the content tag no longer
fail the whole tag, just the invidual values.





[ROME-44] Slash module not serializable for FeedFetcher Created: 27/Jul/06  Updated: 29/Aug/06  Resolved: 29/Aug/06

Status: Resolved
Project: rome
Component/s: www
Affects Version/s: current
Fix Version/s: milestone 1

Type: Bug Priority: Major
Reporter: stephensmith Assignee: rome-issues
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: All


Issuezilla Id: 44

 Description   

Using FeedFetcher I'm caching SyndFeedInfo's so that they don't have to be
retrieved again. (I implemented a new cache class with ehcache)

When the SyndFeedInfo's are serialized I get this error:

NotSerializableException: com.sun.syndication.feed.module.slash.SlashImpl



 Comments   
Comment by kebernet [ 29/Aug/06 ]

This should automatically not be a problem with ROME 0.9 as Module extends
Serializable, but I added it to the interface declarations.





[ROME-43] lastBuildDate does not populate publishedDate Created: 11/Jul/06  Updated: 10/Nov/06  Resolved: 10/Nov/06

Status: Resolved
Project: rome
Component/s: www
Affects Version/s: current
Fix Version/s: milestone 1

Type: Bug Priority: Blocker
Reporter: jrduncans Assignee: rome-issues
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: All
URL: http://xml.weather.yahoo.com/forecastrss?p=23517


Issuezilla Id: 43

 Description   

In RSS feeds, such as the Yahoo weather feed:
http://xml.weather.yahoo.com/forecastrss?p=23517 or Roller produced feeds:
http://rollerweblogger.org/rss/roller that only specify <lastBuildDate>, the
value of syndFeed.getPublishedDate() is null.



 Comments   
Comment by snoopdave [ 09/Nov/06 ]

Fixed in CVS

Comment by snoopdave [ 09/Nov/06 ]

Oops. Not fixed yet, but I do have a proposed fix ready.

Comment by snoopdave [ 10/Nov/06 ]

If there's no rssfeed.pubDate, then we use rssfeed.lastBuildDate to populate
syndfeed.publishedDate.

Fixed in CVS, should be in next release (0.9 or 1.0).





[ROME-42] Atom 1.0 Date (Updated or Published) Not Set Created: 12/Jun/06  Updated: 06/Aug/06  Resolved: 06/Aug/06

Status: Resolved
Project: rome
Component/s: www
Affects Version/s: current
Fix Version/s: milestone 1

Type: Bug Priority: Major
Reporter: jrduncans Assignee: rome-issues
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: All
URL: http://xml.weather.yahoo.com/forecastrss?p=23517


Issuezilla Id: 42

 Description   

On the Yahoo weather feed, <lastBuildDate> is provided on the channel, but is
not used. <pubDate> on the entry is also provided, but neither updated nor
published is set on the entries in the Atom 1.0 output.



 Comments   
Comment by snoopdave [ 06/Aug/06 ]

Fixed in CVS. Atom requires <updated>, so if updatedDate is null we use
publishedDate.





[ROME-41] Use updated instead of published Created: 12/Jun/06  Updated: 06/Aug/06  Resolved: 06/Aug/06

Status: Resolved
Project: rome
Component/s: www
Affects Version/s: current
Fix Version/s: milestone 1

Type: Bug Priority: Major
Reporter: jrduncans Assignee: rome-issues
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: All
URL: http://rss.slashdot.org/Slashdot/slashdot


Issuezilla Id: 41

 Description   

The updated element is required for Atom 1.0, & the published element is
optional, but currently published is set & updated is not.



 Comments   
Comment by snoopdave [ 06/Aug/06 ]

Fixed in CVS. Atom requires <updated>, so if updatedDate is null we use
publishedDate.





[ROME-40] Summary Set Unnecessarily Created: 12/Jun/06  Updated: 11/Nov/06  Resolved: 11/Nov/06

Status: Resolved
Project: rome
Component/s: www
Affects Version/s: current
Fix Version/s: milestone 1

Type: Improvement Priority: Major
Reporter: jrduncans Assignee: rome-issues
Resolution: Duplicate Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: All
URL: http://rss.slashdot.org/Slashdot/slashdot


Issuezilla Id: 40

 Description   

If the summary & content are exactly the same, the summary should not be
set/output. The spec states that "It is not advisable for the
atom:summary element to duplicate atom:title or atom:content".



 Comments   
Comment by jrduncans [ 12/Jun/06 ]

This issue is regarding output of a feed as Atom 1.0

Comment by snoopdave [ 06/Aug/06 ]

I'm not sure we should mandate content and summary be different. The spec does
not say MUST or even SHOULD, so why not leave this decision up to the user of
the API?

Changing this from issue type DEFECT to ENHANCEMENT.

Comment by jrduncans [ 06/Aug/06 ]

I believe my intent with this issue was that the Slashdot feed only has a
description set, and yet the content is duplicated as both summary in content
when output at Atom 1.0. For feeds created directly using the API, I don't
really care whether you leave up to the user. So maybe the issue should more be
about what's getting set when reading from RSS 1.0? I haven't investigated to
see the extent of the issue...

Comment by snoopdave [ 11/Nov/06 ]

The summary/content fixes outlined in issue #49 will resolve this, so I'm
closing it as a dupicate.

      • This issue has been marked as a duplicate of 49 ***




[ROME-39] Atom 1.0 Text Types Not Set Correctly Created: 12/Jun/06  Updated: 06/Aug/06  Resolved: 06/Aug/06

Status: Resolved
Project: rome
Component/s: www
Affects Version/s: current
Fix Version/s: milestone 1

Type: Bug Priority: Major
Reporter: jrduncans Assignee: rome-issues
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: All
URL: http://rss.slashdot.org/Slashdot/slashdot


Issuezilla Id: 39

 Description   

When converting some feeds to Atom 1.0, the type of the text constructs (such as
the content element) are sometimes set to "text/plain", "text/html", or
"application/xhtml+xml". These should instead be "text", "html", or "xhtml",
respectively.



 Comments   
Comment by snoopdave [ 06/Aug/06 ]

Fixed in CVS. We now check for and correct text/plain, text/html and
application/xhtml+xml at output time.

Comment by snoopdave [ 06/Aug/06 ]

Fixed in CVS.





[ROME-38] ATOM 1.0 Entry links parsing Created: 31/May/06  Updated: 15/Jun/06  Resolved: 15/Jun/06

Status: Resolved
Project: rome
Component/s: www
Affects Version/s: current
Fix Version/s: milestone 1

Type: Bug Priority: Major
Reporter: ccann Assignee: rome-issues
Resolution: