Return-Path: X-Original-To: apmail-openjpa-dev-archive@www.apache.org Delivered-To: apmail-openjpa-dev-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 43E9DD53B for ; Wed, 19 Sep 2012 20:47:09 +0000 (UTC) Received: (qmail 71876 invoked by uid 500); 19 Sep 2012 20:47:09 -0000 Delivered-To: apmail-openjpa-dev-archive@openjpa.apache.org Received: (qmail 71749 invoked by uid 500); 19 Sep 2012 20:47:08 -0000 Mailing-List: contact dev-help@openjpa.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@openjpa.apache.org Delivered-To: mailing list dev@openjpa.apache.org Received: (qmail 71450 invoked by uid 99); 19 Sep 2012 20:47:08 -0000 Received: from arcas.apache.org (HELO arcas.apache.org) (140.211.11.28) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 19 Sep 2012 20:47:08 +0000 Date: Thu, 20 Sep 2012 07:47:08 +1100 (NCT) From: "Helen Xu (JIRA)" To: dev@openjpa.apache.org Message-ID: <1384509904.99381.1348087628112.JavaMail.jiratomcat@arcas> In-Reply-To: <636714264.2402.1343857442921.JavaMail.jiratomcat@issues-vm> Subject: [jira] [Commented] (OPENJPA-2244) Nested classpath ignored in mapping tool ant task MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-JIRA-FingerPrint: 30527f35849b9dde25b450d4833f0394 [ https://issues.apache.org/jira/browse/OPENJPA-2244?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13459075#comment-13459075 ] Helen Xu commented on OPENJPA-2244: ----------------------------------- When user specifies the properties attribute inside the config element to point to a specific persistence config file and persistent unit, the persistence config file or unit cannot be loaded from the nested classpath as well. here is an example: user will get the following exception Caused by: java.util.MissingResourceException: persistence.xml#mappingtool-pu at org.apache.openjpa.lib.conf.ProductDerivations.load(ProductDerivations.java:286) at org.apache.openjpa.lib.conf.ConfigurationImpl.setProperties(ConfigurationImpl.java:858) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:60) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37) at java.lang.reflect.Method.invoke(Method.java:611) at org.apache.tools.ant.IntrospectionHelper$AttributeSetter.setObject(IntrospectionHelper.java:1498) at org.apache.tools.ant.IntrospectionHelper.setAttribute(IntrospectionHelper.java:405) The reason it failed to load the config is: 1. It doesn't have the properties value parsing to separate the file name and persistent unit name 2. ConfigurationImpl.setProperties() didn't take the ant class loader when it try to load the config file, or it loaded the config file too early. Ideally it should wait until all the classpath setting loaded. This problem will happen for all types of OPENJPA ant task. I have created a fix for this problem. please refer to the patch file for details. > Nested classpath ignored in mapping tool ant task > ------------------------------------------------- > > Key: OPENJPA-2244 > URL: https://issues.apache.org/jira/browse/OPENJPA-2244 > Project: OpenJPA > Issue Type: Bug > Affects Versions: 2.0.1, 2.1.1, 2.2.0 > Reporter: Helen Xu > Assignee: Helen Xu > Attachments: OPENJPA-2244.patch > > > The nested classpath element inside the mappingtool ant task are ignored when loading the persistent configuration file. User got the following error: > org.apache.openjpa.util.MetaDataException: MetaDataFactory could not be configured (conf.newMetaDataFactoryInstance() returned null). This might mean that no configuration properties were found. Ensure that you have a META-INF/persistence.xml file, that it is available in your classpath, or that the properties file you are using for configuration is available. If you are using Ant, please see the or attributes of the task's nested element. This can also occur if your OpenJPA distribution jars are corrupt, or if your security policy is overly strict. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira