openjpa-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Patrick Linskey" <plins...@gmail.com>
Subject Re: svn commit: r616972 - in /openjpa/trunk: openjpa-kernel/src/main/java/org/apache/openjpa/kernel/AbstractBrokerFactory.java openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/simple/TestSerializedFactory.java
Date Fri, 01 Feb 2008 02:00:49 GMT
It is possible to submit test runs to TeamCity that don't submit /
conditionally submit, but only via IntelliJ or Eclipse.

-Patrick

On Jan 31, 2008 9:23 AM, David Ezzio <dezzio@apache.org> wrote:
> Hi,
>
> I am convinced that change 616658 (small change to DBDictionary.java) is
> the source of the two intermittent failures that I am seeing locally.
> One of those intermittent failures is the failure in
> TestCaseInsensitiveKeywordsInJPQL.testCaseInsensitiveBooleans which is
> one of the 33 related failures currently seen in TeamCity Derby builds.
>
> The other intermittent failure is TestVersion.testVersionTimestamp which
> I reported earlier as occurring locally with change 616658.
>
> When I revert change 616658 locally, both of these issues go away even
> with the changes that I submitted to AbstractBrokerFactory in change 616972.
>
> I have a question: is it possible to run a build in TeamCity without
> submitting the change (or conditionally submitting the change) to SVN?
> I'd like to find out if reverting 616658 will fix the issue.  If so,
> then I can try to figure out why it's a problem.
>
> Thanks,
>
> David
>
>
> David Ezzio wrote:
> > No, but I'm taking a look since my changes appear to be the cause.
> >
> > Patrick Linskey wrote:
> >> 5. The tests are now failing in the automated build; any idea why this
> >> might be?
> >>
> >> -Patrick
> >>
> >> On Jan 30, 2008 6:11 PM, Patrick Linskey <plinskey@gmail.com> wrote:
> >>> Hi,
> >>>
> >>> A few questions:
> >>>
> >>> 1. Were you seeing this cause problems somewhere? I.e., when do we
> >>> serialize BrokerFactory instances?
> >>>
> >>> 2. Why not just move the initialization code to the declaration line
> >>> (instead of the constructor)?
> >>>
> >>> 3. It looks like there are other transactional structures that might
> >>> not be properly handled in serialization / deserialization (lifecycle
> >>> listeners, for example). Should we be making more changes there?
> >>>
> >>> -Patrick
> >>>
> >>>
> >>> On Jan 30, 2008 4:59 PM,  <dezzio@apache.org> wrote:
> >>>> Author: dezzio
> >>>> Date: Wed Jan 30 16:59:02 2008
> >>>> New Revision: 616972
> >>>>
> >>>> URL: http://svn.apache.org/viewvc?rev=616972&view=rev
> >>>> Log:
> >>>> Allow EntityManagerFactory objects to be serialized and deserialized
> >>>> successfully.
> >>>>
> >>>> Added:
> >>>>
> >>>> openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/simple/TestSerializedFactory.java
> >>>> (with props)
> >>>> Modified:
> >>>>
> >>>> openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/AbstractBrokerFactory.java
> >>>>
> >>>>
> >>>> Modified:
> >>>> openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/AbstractBrokerFactory.java
> >>>>
> >>>> URL:
> >>>> http://svn.apache.org/viewvc/openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/AbstractBrokerFactory.java?rev=616972&r1=616971&r2=616972&view=diff
> >>>>
> >>>> ==============================================================================
> >>>>
> >>>> ---
> >>>> openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/AbstractBrokerFactory.java
> >>>> (original)
> >>>> +++
> >>>> openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/AbstractBrokerFactory.java
> >>>> Wed Jan 30 16:59:02 2008
> >>>> @@ -147,8 +147,7 @@
> >>>>       */
> >>>>      protected AbstractBrokerFactory(OpenJPAConfiguration config) {
> >>>>          _conf = config;
> >>>> -        _pcClassLoaders = new ConcurrentReferenceHashSet(
> >>>> -            ConcurrentReferenceHashSet.WEAK);
> >>>> +        getPcClassLoaders();
> >>>>      }
> >>>>
> >>>>      /**
> >>>> @@ -287,13 +286,13 @@
> >>>>                      if (needsSub(cls))
> >>>>                          toRedefine.add(cls);
> >>>>                  }
> >>>> -                _pcClassLoaders.add(loader);
> >>>> +                getPcClassLoaders().add(loader);
> >>>>                  _pcClassNames = c;
> >>>>              }
> >>>>              _persistentTypesLoaded = true;
> >>>>          } else {
> >>>>              // reload with this loader
> >>>> -            if (_pcClassLoaders.add(loader)) {
> >>>> +            if (getPcClassLoaders().add(loader)) {
> >>>>                  for (Iterator itr = _pcClassNames.iterator();
> >>>> itr.hasNext();) {
> >>>>                      try {
> >>>>                          Class cls =
> >>>> @@ -818,4 +817,15 @@
> >>>>              _transactional.remove (_trans);
> >>>>                 }
> >>>>         }
> >>>> +
> >>>> +   /**
> >>>> +    * Method insures that deserialized EMF has this reference
> >>>> re-instantiated
> >>>> +    */
> >>>> +   private Collection getPcClassLoaders() {
> >>>> +      if (_pcClassLoaders == null)
> >>>> +        _pcClassLoaders = new ConcurrentReferenceHashSet(
> >>>> +            ConcurrentReferenceHashSet.WEAK);
> >>>> +
> >>>> +      return _pcClassLoaders;
> >>>> +   }
> >>>>  }
> >>>>
> >>>> Added:
> >>>> openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/simple/TestSerializedFactory.java
> >>>>
> >>>> URL:
> >>>> http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/simple/TestSerializedFactory.java?rev=616972&view=auto
> >>>>
> >>>> ==============================================================================
> >>>>
> >>>> ---
> >>>> openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/simple/TestSerializedFactory.java
> >>>> (added)
> >>>> +++
> >>>> openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/simple/TestSerializedFactory.java
> >>>> Wed Jan 30 16:59:02 2008
> >>>> @@ -0,0 +1,74 @@
> >>>> +/*
> >>>> + * Licensed to the Apache Software Foundation (ASF) under one
> >>>> + * or more contributor license agreements.  See the NOTICE file
> >>>> + * distributed with this work for additional information
> >>>> + * regarding copyright ownership.  The ASF licenses this file
> >>>> + * to you under the Apache License, Version 2.0 (the
> >>>> + * "License"); you may not use this file except in compliance
> >>>> + * with the License.  You may obtain a copy of the License at
> >>>> + *
> >>>> + * http://www.apache.org/licenses/LICENSE-2.0
> >>>> + *
> >>>> + * Unless required by applicable law or agreed to in writing,
> >>>> + * software distributed under the License is distributed on an
> >>>> + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
> >>>> + * KIND, either express or implied.  See the License for the
> >>>> + * specific language governing permissions and limitations
> >>>> + * under the License.
> >>>> + */
> >>>> +package org.apache.openjpa.persistence.simple;
> >>>> +
> >>>> +import java.io.*;
> >>>> +
> >>>> +import javax.persistence.EntityManager;
> >>>> +import javax.persistence.EntityManagerFactory;
> >>>> +import javax.persistence.EntityTransaction;
> >>>> +
> >>>> +import junit.textui.TestRunner;
> >>>> +import org.apache.openjpa.persistence.OpenJPAEntityManager;
> >>>> +import org.apache.openjpa.persistence.test.SingleEMFTestCase;
> >>>> +
> >>>> +/**
> >>>> + * Tests that a EntityManagerFactory can be used after serialization.
> >>>> + *
> >>>> + * @author David Ezzio
> >>>> + */
> >>>> +public class TestSerializedFactory
> >>>> +    extends SingleEMFTestCase {
> >>>> +
> >>>> +    public void setUp() {
> >>>> +        setUp(AllFieldTypes.class);
> >>>> +    }
> >>>> +
> >>>> +    public void testSerializedEntityManagerFactory() throws
> >>>> Exception {
> >>>> +        // serialize and deserialize the entity manager factory
> >>>> +        ByteArrayOutputStream baos = new ByteArrayOutputStream();
> >>>> +        ObjectOutputStream oos = new ObjectOutputStream(baos);
> >>>> +        oos.writeObject(emf);
> >>>> +        EntityManagerFactory emf2 =
> >>>> +            (EntityManagerFactory) new ObjectInputStream(
> >>>> +            new
> >>>> ByteArrayInputStream(baos.toByteArray())).readObject();
> >>>> +
> >>>> +        // use the deserialized entity manager factory
> >>>> +        assertTrue("The deserialized entity manager factory is not
> >>>> open",
> >>>> +            emf2.isOpen());
> >>>> +        EntityManager em = emf2.createEntityManager();
> >>>> +        assertTrue("The newly created entity manager is not open",
> >>>> em.isOpen());
> >>>> +
> >>>> +        // exercise the entity manager produced from the
> >>>> deserialized EMF
> >>>> +        em.getTransaction().begin();
> >>>> +        em.persist(new AllFieldTypes());
> >>>> +        em.getTransaction().commit();
> >>>> +
> >>>> +        // close the extra resources
> >>>> +        em.close();
> >>>> +        assertFalse("The entity manager is not closed", em.isOpen());
> >>>> +        emf2.close();
> >>>> +        assertFalse("The entity manager factory is not closed",
> >>>> emf2.isOpen());
> >>>> +    }
> >>>> +
> >>>> +    public static void main(String[] args) {
> >>>> +        TestRunner.run(TestSerializedFactory.class);
> >>>> +    }
> >>>> +}
> >>>> +
> >>>>
> >>>> Propchange:
> >>>> openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/simple/TestSerializedFactory.java
> >>>>
> >>>> ------------------------------------------------------------------------------
> >>>>
> >>>>     svn:eol-style = native
> >>>>
> >>>>
> >>>>
> >>>
> >>>
> >>> --
> >>> Patrick Linskey
> >>> 202 669 5907
> >>>
> >>
> >>
> >>
> >
>



-- 
Patrick Linskey
202 669 5907

Mime
View raw message