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

Reinhard Sandtner commented on OPENJPA-2632:
--------------------------------------------

[~rmannibucau] my problem is, that the class for my 'select new' can not be 
found by the CL stored in query impl. {{Strings.toClass(name, _loader)}} blows 
up with a {{ClassNotFoundException}} which is catched away by {{catch 
(Throwable t)}} and wrapped in an {{IllegalArgumentException(t.toString())}}.

missed to write the exact problem in the issue description... 

but of course i think the fallback in the provided patch is in the wrong 
place... maybe it is better to load the result class from TCCL as fallback 
where we try to find the constructor in {{JPQLExpressionBuilder}}? and if that 
fails too, then throw the 'no-constructor' exception.

> select new not working if result class is not in same classloader
> -----------------------------------------------------------------
>
>                 Key: OPENJPA-2632
>                 URL: https://issues.apache.org/jira/browse/OPENJPA-2632
>             Project: OpenJPA
>          Issue Type: Bug
>          Components: jdbc
>    Affects Versions: 2.4.1
>            Reporter: Reinhard Sandtner
>         Attachments: OPENJPA-2632.patch
>
>
> in my case i'm using an ear with multiple war files.
> the entities are located in ear/lib and my select new result class and the 
> service which loads it are located in a war (doesn't matter if in WEB-INF/lib 
> or WEB-INF/classes)
> openJPA uses the CL stored in QueryImpl but this one can not load my class.
> imo if the class can not be loaded with the stored class loader, we can try 
> to use the TCCL to load the class.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to