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 F13D6E9F8 for ; Sun, 27 Jan 2013 20:19:13 +0000 (UTC) Received: (qmail 46454 invoked by uid 500); 27 Jan 2013 20:19:13 -0000 Delivered-To: apmail-openjpa-dev-archive@openjpa.apache.org Received: (qmail 46391 invoked by uid 500); 27 Jan 2013 20:19:13 -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 46374 invoked by uid 99); 27 Jan 2013 20:19:12 -0000 Received: from arcas.apache.org (HELO arcas.apache.org) (140.211.11.28) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 27 Jan 2013 20:19:12 +0000 Date: Sun, 27 Jan 2013 20:19:12 +0000 (UTC) From: "Roger Keays (JIRA)" To: dev@openjpa.apache.org Message-ID: In-Reply-To: References: Subject: [jira] [Commented] (OPENJPA-2279) Merge Validation Fails With Chained Constructor 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-2279?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13563916#comment-13563916 ] Roger Keays commented on OPENJPA-2279: -------------------------------------- Can anyone confirm that the attached unit test is valid? I keep hitting this bug. > Merge Validation Fails With Chained Constructor > ----------------------------------------------- > > Key: OPENJPA-2279 > URL: https://issues.apache.org/jira/browse/OPENJPA-2279 > Project: OpenJPA > Issue Type: Bug > Components: validation > Affects Versions: 2.2.0 > Environment: java 1.6 > Reporter: Roger Keays > Attachments: openjpa-2279.tar.gz > > > The following simple test fails > em.merge(new Customer("Park Lane"); > when there is a chained constructor and validation like this: > public Customer() { > this(null); > } > public Customer(String street) { > address = new Address(); > address.street = street; // annotated @NotNull > } > OpenJPA validation is calling the first constructor during merge or validation > and is trying to validate an invalid object, even though the orginal WAS valid. > The stacktrace is > Caused by: javax.validation.ConstraintViolationException: A validation constraint failure occurred for class "testcase.openjpa.Address". > at org.apache.openjpa.persistence.validation.ValidatorImpl.validate(ValidatorImpl.java:282) > at org.apache.openjpa.validation.ValidatingLifecycleEventManager.fireEvent(ValidatingLifecycleEventManager.java:123) > at org.apache.openjpa.kernel.BrokerImpl.fireLifecycleEvent(BrokerImpl.java:800) > at org.apache.openjpa.kernel.BrokerImpl.persistInternal(BrokerImpl.java:2635) > at org.apache.openjpa.kernel.BrokerImpl.persist(BrokerImpl.java:2571) > at org.apache.openjpa.kernel.BrokerImpl.persist(BrokerImpl.java:2554) > at org.apache.openjpa.kernel.BrokerImpl.persist(BrokerImpl.java:2544) > at org.apache.openjpa.kernel.SingleFieldManager.persist(SingleFieldManager.java:272) > at org.apache.openjpa.kernel.StateManagerImpl.cascadePersist(StateManagerImpl.java:3045) > at org.apache.openjpa.kernel.BrokerImpl.persistInternal(BrokerImpl.java:2670) > at org.apache.openjpa.kernel.BrokerImpl.persist(BrokerImpl.java:2571) > at org.apache.openjpa.kernel.AttachStrategy.persist(AttachStrategy.java:95) > at org.apache.openjpa.kernel.VersionAttachStrategy.attach(VersionAttachStrategy.java:102) > at org.apache.openjpa.kernel.AttachManager.attach(AttachManager.java:252) > at org.apache.openjpa.kernel.AttachManager.attach(AttachManager.java:105) > at org.apache.openjpa.kernel.BrokerImpl.attach(BrokerImpl.java:3474) > at org.apache.openjpa.kernel.DelegatingBroker.attach(DelegatingBroker.java:1214) > at org.apache.openjpa.persistence.EntityManagerImpl.merge(EntityManagerImpl.java:878) > at testcase.openjpa.OpenJpaTest.testValidation(OpenJpaTest.java:20) -- 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