[
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)