From open-jpa-dev-return-1634-apmail-incubator-open-jpa-dev-archive=incubator.apache.org@incubator.apache.org Wed Jan 10 20:27:49 2007 Return-Path: Delivered-To: apmail-incubator-open-jpa-dev-archive@locus.apache.org Received: (qmail 63075 invoked from network); 10 Jan 2007 20:27:49 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 10 Jan 2007 20:27:49 -0000 Received: (qmail 5762 invoked by uid 500); 10 Jan 2007 20:27:55 -0000 Delivered-To: apmail-incubator-open-jpa-dev-archive@incubator.apache.org Received: (qmail 5660 invoked by uid 500); 10 Jan 2007 20:27:55 -0000 Mailing-List: contact open-jpa-dev-help@incubator.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: open-jpa-dev@incubator.apache.org Delivered-To: mailing list open-jpa-dev@incubator.apache.org Received: (qmail 5651 invoked by uid 99); 10 Jan 2007 20:27:55 -0000 Received: from herse.apache.org (HELO herse.apache.org) (140.211.11.133) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 10 Jan 2007 12:27:55 -0800 X-ASF-Spam-Status: No, hits=0.0 required=10.0 tests= X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO brutus.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 10 Jan 2007 12:27:48 -0800 Received: from brutus (localhost [127.0.0.1]) by brutus.apache.org (Postfix) with ESMTP id 7CA607142D4 for ; Wed, 10 Jan 2007 12:27:27 -0800 (PST) Message-ID: <13920966.1168460847491.JavaMail.jira@brutus> Date: Wed, 10 Jan 2007 12:27:27 -0800 (PST) From: "Craig Russell (JIRA)" To: open-jpa-dev@incubator.apache.org Subject: [jira] Created: (OPENJPA-99) Enhanced pcNewInstance redundantly clears fields MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-Virus-Checked: Checked by ClamAV on apache.org Enhanced pcNewInstance redundantly clears fields ------------------------------------------------- Key: OPENJPA-99 URL: https://issues.apache.org/jira/browse/OPENJPA-99 Project: OpenJPA Issue Type: Bug Components: kernel Reporter: Craig Russell This exception occurs when using an Entity with a not-null requirement for the object id field. During creation of the Entity via the enhancer-generated method pcNewInstance, the enhancer-generated method pcClearFields iterates fields and invokes the enhancer-modified setter method with the Java default value (null for reference types). The user's setter method enforces not-null values and throws an exception. I think that there is no need to have the pcNewInstance call the pcClearFields method to set values for fields that have already been set to their Java default values. In addition to the not-null requirement (which is not illegal according to the JPA specification) this behavior also affects performance. Redundantly setting fields is a waste of CPU. [java] <0|false|0.9.6-incubating> org.apache.openjpa.persistence.PersistenceException: null [java] at org.apache.openjpa.kernel.BrokerImpl.find(BrokerImpl.java:851) [java] at org.apache.openjpa.kernel.BrokerImpl.find(BrokerImpl.java:743) [java] at org.apache.openjpa.kernel.DelegatingBroker.find(DelegatingBroker.java:169) [java] at org.apache.openjpa.persistence.EntityManagerImpl.find(EntityManagerImpl.java:320) [java] at pb.adapter.EJB3Adapter.lookupComponent(EJB3Adapter.java:254) [java] at pb.common.InternalDriver.lookupComponent(InternalDriver.java:322) [java] at pb.common.InternalDriver.createRelationships(InternalDriver.java:285) [java] at pb.OCDriver.createRelationships(OCDriver.java:114) [java] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [java] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) [java] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) [java] at java.lang.reflect.Method.invoke(Method.java:585) [java] at com.sun.faban.driver.core.AgentThread.timeRun(AgentThread.java:194) [java] at com.sun.faban.driver.core.AgentThread.run(AgentThread.java:123) [java] Caused by: java.lang.NumberFormatException: null [java] at java.lang.Integer.parseInt(Integer.java:415) [java] at java.lang.Integer.parseInt(Integer.java:497) [java] at pb.common.Component.pcsetId(Component.java:95) [java] at pb.common.Component.pcClearFields(Component.java) [java] at pb.common.Component.pcNewInstance(Component.java) [java] at org.apache.openjpa.enhance.PCRegistry.newInstance(PCRegistry.java:117) [java] at org.apache.openjpa.kernel.StateManagerImpl.initialize(StateManagerImpl.java:247) [java] at org.apache.openjpa.jdbc.kernel.JDBCStoreManager.initializeState(JDBCStoreManager.java:327) [java] at org.apache.openjpa.jdbc.kernel.JDBCStoreManager.initialize(JDBCStoreManager.java:252) [java] at org.apache.openjpa.kernel.DelegatingStoreManager.initialize(DelegatingStoreManager.java:108) [java] at org.apache.openjpa.kernel.ROPStoreManager.initialize(ROPStoreManager.java:54) [java] at org.apache.openjpa.kernel.BrokerImpl.initialize(BrokerImpl.java:870) [java] at org.apache.openjpa.kernel.BrokerImpl.find(BrokerImpl.java:828) -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: https://issues.apache.org/jira/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira