openjpa-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Michael Dick (JIRA)" <j...@apache.org>
Subject [jira] Commented: (OPENJPA-1025) AbstractResultList.subList throws UnsupportedOperationException
Date Thu, 30 Apr 2009 14:47:30 GMT

    [ https://issues.apache.org/jira/browse/OPENJPA-1025?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12704651#action_12704651
] 

Michael Dick commented on OPENJPA-1025:
---------------------------------------

I'm not sure removing the method from AbstractList is the best solution for released versions
since we could break downstream consumers. Merely overriding the subList method in the appropriate
subclasses seems like a better solution in this case. 

> AbstractResultList.subList throws UnsupportedOperationException
> ---------------------------------------------------------------
>
>                 Key: OPENJPA-1025
>                 URL: https://issues.apache.org/jira/browse/OPENJPA-1025
>             Project: OpenJPA
>          Issue Type: Bug
>          Components: lib
>    Affects Versions: 1.2.1, 1.3.0, 2.0.0
>         Environment: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-lib/src/main/java/org/apache/openjpa/lib/rop/AbstractResultList.java?revision=757278&view=markup,
> Seam 2.0, OpenJPA 1.2.1
>            Reporter: Julien Kronegg
>            Assignee: B.J. Reed
>             Fix For: 1.0.4, 1.2.2, 1.3.0, 2.0.0
>
>         Attachments: OPENJPA-1025-withTest.patch, OPENJPA-1025.patch, OPENJPA-1025b.patch
>
>   Original Estimate: 4h
>  Remaining Estimate: 4h
>
> AbstractResultList implements the basics for readonly result lists. When calling the
subList(int,int) method, the following exception is raised:
>     java.lang.UnsupportedOperationException
>     at org.apache.openjpa.lib.rop.AbstractResultList.subList(AbstractResultList.java:84)
>     at org.apache.openjpa.kernel.DelegatingResultList.subList(DelegatingResultList.java:308)
>     ...
> Since the subList() method contract is to create a new List from the ResultList, this
operation does not modify the original list: it only provides a *view* on the original list
(see http://java.sun.com/docs/books/tutorial/collections/interfaces/list.html ). 
> This problem is also found by other users: http://n2.nabble.com/DelegatingResultList.subList-not-implemented--td210389.html
> They found the (bad) workaround to build a new List (bad because this is not the same
as calling subList()):
>     List mySubList = new ArrayList(openjpaList).subList(from, to);
> The AbstractResultList class should be modified by one of this solution (sorted by decreasing
preference order):
> 1) the AbstractResultList class should extends java.util.AbstractList and the subList()
method should be removed (because implemented by AbstractList)
> 2) the subList() method should be implemented to return a view on the original list.
See java.util.AbstractList for an implementation (http://www.koders.com/java/fidCFCB47A1819AB345234CC04B6A1EA7554C2C17C0.aspx?s=iso+3166
)
> 3) the subList() method should throw the exception with the message "this method is not
yet implemented. Workaround: new ArrayList(openjpaList).subList(from, to)"

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message