[Biojava-l] features of a sequence

Mark Schreiber markjschreiber at gmail.com
Fri Jun 6 02:39:07 UTC 2008


Can someone post a bug report for this just to make sure it gets
logged and fixed at some point?

Thanks,

- Mark

On Fri, Jun 6, 2008 at 12:25 AM, Richard Holland
<dicknetherlands at gmail.com> wrote:
> Oh dear, you found a bug.....! This is occurring in the location
> flattening routines in RichLocation.Tools, where it is inadvertently
> overwriting location data collection objects that should have been
> just emptied and repopulated instead of being replaced.
>
> I'll try and fix this. Can't promise it soon - I'm away for the next 7
> days and am a bit busy after that - but will make a note. Maybe
> someone else here could fix it quicker? (please?! :) )
>
> cheers,
> Richard
>
> 2008/6/5 Gabrielle Doan <gabrielle_doan at gmx.net>:
>> Hi all,
>>
>> I would like to query the features of a sequence with following code:
>>
>> <code>
>> public class Test{
>>     public static void main(String[] args) {
>>       // load Hibernate config
>>
>>       SessionFactory sessionFactory = new
>> Configuration().configure().buildSessionFactory();        // open the
>> session
>>       Session session = sessionFactory.openSession();
>>       // connect it to BioJavaX
>>       RichObjectFactory.connectToBioSQL(session);
>>
>>       Transaction tx = session.beginTransaction();
>>             Query q1 = session.createQuery(
>>               "from Feature as f " +
>>               "inner join fetch f.noteSet as n " +
>>               "where n.value=:val and f.typeTerm.name=:term");
>>       q1.setString("val","TRNF");
>>       q1.setString("term","gene"); List<SimpleRichFeature> li = q1.list();
>> System.out.println("Found:\t"+li.size());
>>       for (Iterator<SimpleRichFeature> i = li.iterator(); i.hasNext(); ){
>>           SimpleRichFeature f = i.next();
>>           System.out.println("Term:\t"+f.getTypeTerm().getName());
>>
>> System.out.println("Location:\t"+f.getLocation().getMin()+"\t"+f.getLocation().getMax());
>>           System.out.println(f.getSequence().seqString());
>>           Annotation a = f.getAnnotation();
>>           for (Iterator keys = a.keys().iterator(); keys.hasNext(); ){
>>             Object key = keys.next();
>>             System.out.println(key+"\t"+a.getProperty(key));
>>           }
>>       }
>>             tx.commit();
>>       session.close();
>>   }
>>
>> }
>> </code>
>>
>>
>> When I try to print the SymbolList associated with the feature I receive the
>> following exception. I appreciate any hint because I do not know what to do
>> as it seems that the exception occurs somewhere within BioJava code.
>>
>>
>> Exception in thread "main" org.hibernate.PropertyAccessException: Exception
>> occurred inside setter of org.biojavax.bio.seq.SimpleRichFeature.locationSet
>>   at
>> org.hibernate.property.BasicPropertyAccessor$BasicSetter.set(BasicPropertyAccessor.java:65)
>>   at
>> org.hibernate.tuple.entity.AbstractEntityTuplizer.setPropertyValues(AbstractEntityTuplizer.java:337)
>>   at
>> org.hibernate.tuple.entity.PojoEntityTuplizer.setPropertyValues(PojoEntityTuplizer.java:200)
>>   at
>> org.hibernate.persister.entity.AbstractEntityPersister.setPropertyValues(AbstractEntityPersister.java:3571)
>>   at
>> org.hibernate.engine.TwoPhaseLoad.initializeEntity(TwoPhaseLoad.java:133)
>>   at
>> org.hibernate.loader.Loader.initializeEntitiesAndCollections(Loader.java:854)
>>   at org.hibernate.loader.Loader.doQuery(Loader.java:729)
>>   at
>> org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:236)
>>   at org.hibernate.loader.Loader.loadCollection(Loader.java:1994)
>>   at
>> org.hibernate.loader.collection.CollectionLoader.initialize(CollectionLoader.java:36)
>>   at
>> org.hibernate.persister.collection.AbstractCollectionPersister.initialize(AbstractCollectionPersister.java:565)
>>   at
>> org.hibernate.event.def.DefaultInitializeCollectionEventListener.onInitializeCollection(DefaultInitializeCollectionEventListener.java:63)
>>   at
>> org.hibernate.impl.SessionImpl.initializeCollection(SessionImpl.java:1716)
>>   at
>> org.hibernate.collection.AbstractPersistentCollection.forceInitialization(AbstractPersistentCollection.java:454)
>>   at
>> org.hibernate.engine.StatefulPersistenceContext.initializeNonLazyCollections(StatefulPersistenceContext.java:844)
>>   at
>> org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:241)
>>   at org.hibernate.loader.Loader.loadEntity(Loader.java:1860)
>>   at
>> org.hibernate.loader.entity.AbstractEntityLoader.load(AbstractEntityLoader.java:48)
>>   at
>> org.hibernate.loader.entity.AbstractEntityLoader.load(AbstractEntityLoader.java:42)
>>   at
>> org.hibernate.persister.entity.AbstractEntityPersister.load(AbstractEntityPersister.java:3049)
>>   at
>> org.hibernate.event.def.DefaultLoadEventListener.loadFromDatasource(DefaultLoadEventListener.java:399)
>>   at
>> org.hibernate.event.def.DefaultLoadEventListener.doLoad(DefaultLoadEventListener.java:375)
>>   at
>> org.hibernate.event.def.DefaultLoadEventListener.load(DefaultLoadEventListener.java:139)
>>   at
>> org.hibernate.event.def.DefaultLoadEventListener.onLoad(DefaultLoadEventListener.java:98)
>>   at org.hibernate.impl.SessionImpl.fireLoad(SessionImpl.java:878)
>>   at org.hibernate.impl.SessionImpl.immediateLoad(SessionImpl.java:836)
>>   at
>> org.hibernate.proxy.AbstractLazyInitializer.initialize(AbstractLazyInitializer.java:66)
>>   at
>> org.hibernate.proxy.AbstractLazyInitializer.getImplementation(AbstractLazyInitializer.java:111)
>>   at
>> org.hibernate.proxy.pojo.cglib.CGLIBLazyInitializer.invoke(CGLIBLazyInitializer.java:150)
>>   at
>> org.biojavax.bio.seq.ThinRichSequence$$EnhancerByCGLIB$$e3c3c7ff.seqString(<generated>)
>>   at meinVersuch.TestAbfragen.main(TestAbfragen.java:59)
>> Caused by: java.lang.reflect.InvocationTargetException
>>   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>   at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
>>   at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
>>   at java.lang.reflect.Method.invoke(Unknown Source)
>>   at
>> org.hibernate.property.BasicPropertyAccessor$BasicSetter.set(BasicPropertyAccessor.java:42)
>>   ... 30 more
>> Caused by: java.lang.RuntimeException: Error while trying to call new class
>> org.biojavax.ontology.SimpleComparableOntology(class java.lang.String)
>>   at
>> org.biojavax.bio.db.biosql.BioSQLRichObjectBuilder.buildObject(BioSQLRichObjectBuilder.java:166)
>>   at org.biojavax.RichObjectFactory.getObject(RichObjectFactory.java:105)
>>   at
>> org.biojavax.RichObjectFactory.getDefaultOntology(RichObjectFactory.java:221)
>>   at
>> org.biojavax.bio.seq.CompoundRichLocation.getJoinTerm(CompoundRichLocation.java:61)
>>   at
>> org.biojavax.bio.seq.CompoundRichLocation.<init>(CompoundRichLocation.java:90)
>>   at
>> org.biojavax.bio.seq.SimpleRichLocation.union(SimpleRichLocation.java:494)
>>   at org.biojavax.bio.seq.RichLocation$Tools.merge(RichLocation.java:363)
>>   at
>> org.biojavax.bio.seq.SimpleRichFeature.setLocationSet(SimpleRichFeature.java:181)
>>   ... 35 more
>> Caused by: java.lang.reflect.InvocationTargetException
>>   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>   at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
>>   at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
>>   at java.lang.reflect.Method.invoke(Unknown Source)
>>   at
>> org.biojavax.bio.db.biosql.BioSQLRichObjectBuilder.buildObject(BioSQLRichObjectBuilder.java:133)
>>   ... 42 more
>> Caused by: org.hibernate.HibernateException: A collection with
>> cascade="all-delete-orphan" was no longer referenced by the owning entity
>> instance: Feature.locationSet
>>   at
>> org.hibernate.engine.Collections.processDereferencedCollection(Collections.java:96)
>>   at
>> org.hibernate.engine.Collections.processUnreachableCollection(Collections.java:39)
>>   at
>> org.hibernate.event.def.AbstractFlushingEventListener.flushCollections(AbstractFlushingEventListener.java:218)
>>   at
>> org.hibernate.event.def.AbstractFlushingEventListener.flushEverythingToExecutions(AbstractFlushingEventListener.java:77)
>>   at
>> org.hibernate.event.def.DefaultAutoFlushEventListener.onAutoFlush(DefaultAutoFlushEventListener.java:35)
>>   at
>> org.hibernate.impl.SessionImpl.autoFlushIfRequired(SessionImpl.java:969)
>>   at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1114)
>>   at org.hibernate.impl.QueryImpl.list(QueryImpl.java:79)
>>   at
>> org.hibernate.impl.AbstractQueryImpl.uniqueResult(AbstractQueryImpl.java:811)
>>   ... 47 more
>>
>> It would be very nice if someone can help me. I am grateful for any hints.
>> Thanks a lot.
>>
>> Cheers,
>> Gabrielle
>> _______________________________________________
>> Biojava-l mailing list  -  Biojava-l at lists.open-bio.org
>> http://lists.open-bio.org/mailman/listinfo/biojava-l
>>
> _______________________________________________
> Biojava-l mailing list  -  Biojava-l at lists.open-bio.org
> http://lists.open-bio.org/mailman/listinfo/biojava-l
>



More information about the Biojava-l mailing list