Why can't I use ObjectStoreWriter.delete(QueryClass qc, null) ?

classic Classic list List threaded Threaded
8 messages Options
Reply | Threaded
Open this post in threaded view
|

Why can't I use ObjectStoreWriter.delete(QueryClass qc, null) ?

Sam Hokin-3
According to the API docs, I should be able to do this to delete all instances of a class from the db:

void delete(QueryClass qc, Constraint c) throws ObjectStoreException

Deletes a set of objects from this ObjectStore.

Parameters:
     qc - a QueryClass for the class of objects to delete
     c - a Constraint based on the QueryClass to filter the objects to delete, or null to delete all objects
Throws:
     ObjectStoreException - if an error occurs while deleting the objects

But when I try to do exactly that with this code:

LOG.info("Deleting all existing LinkageGroupRange records...");
osw.beginTransaction();
QueryClass qcLGR = new QueryClass(LinkageGroupRange.class);
osw.delete(qcLGR, null);
osw.commitTransaction();

I get an ObjectStoreException "cannot delete by query":

2017-09-05 16:51:34 INFO  org.intermine.bio.postprocess.PopulateQTLLinkageGroupRanges     - Deleting all existing LinkageGroupRange
records...
2017-09-05 16:51:34 ERROR org.intermine.bio.postprocess.PostProcessOperationsTask     - Failed postprocess. Operation was:
populate-qtl-linkagegroup-ranges
org.intermine.objectstore.ObjectStoreException: Cannot delete by query from interface org.intermine.model.bio.LinkageGroupRange
         at
org.intermine.objectstore.intermine.ObjectStoreWriterInterMineImpl.deleteWithConnection(ObjectStoreWriterInterMineImpl.java:1447)
         at org.intermine.objectstore.intermine.ObjectStoreWriterInterMineImpl.delete(ObjectStoreWriterInterMineImpl.java:1421)
         at
org.intermine.bio.postprocess.PopulateQTLLinkageGroupRanges.populateQTLLinkageGroupRanges(PopulateQTLLinkageGroupRanges.java:71)
         at org.intermine.bio.postprocess.PostProcessOperationsTask.execute(PostProcessOperationsTask.java:243)
         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
         at java.lang.reflect.Method.invoke(Method.java:498)
         at org.intermine.task.PostProcessTask.doCorePostProcess(PostProcessTask.java:147)
         at org.intermine.task.PostProcessTask.execute(PostProcessTask.java:122)
         at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:291)
         at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source)
         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
         at java.lang.reflect.Method.invoke(Method.java:498)
         at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
         at org.apache.tools.ant.Task.perform(Task.java:348)
         at org.apache.tools.ant.Target.execute(Target.java:390)
         at org.apache.tools.ant.Target.performTasks(Target.java:411)
         at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1399)
         at org.apache.tools.ant.Project.executeTarget(Project.java:1368)
         at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
         at org.apache.tools.ant.Project.executeTargets(Project.java:1251)
         at org.apache.tools.ant.Main.runBuild(Main.java:809)
         at org.apache.tools.ant.Main.startAnt(Main.java:217)
         at org.apache.tools.ant.launch.Launcher.run(Launcher.java:280)
         at org.apache.tools.ant.launch.Launcher.main(Launcher.java:109)
_______________________________________________
dev mailing list
[hidden email]
https://lists.intermine.org/mailman/listinfo/dev
Reply | Threaded
Open this post in threaded view
|

Re: Why can't I use ObjectStoreWriter.delete(QueryClass qc, null) ?

Justin Clark-Casey-2
Hi Sam.  In the model XML for LinkageGroupRange do you have is-interface = "false"?  This will make InterMine generate an underlying model class which does not
inherit from InterMineObject (I'm guessing because it doesn't need the Shadow mechanism), thus causing InterMineOBjectImpl.deleteWithConnection() to throw as
per your stacktrace.

According to [1], the performance benefit of is-interface == false is tiny, so in practice you may as well set this to true (if this is the problem here).

[1] http://intermine.readthedocs.io/en/latest/data-model/model/#the-class-tag

-- Justin

On 05/09/17 23:57, Sam Hokin wrote:

> According to the API docs, I should be able to do this to delete all instances of a class from the db:
>
> void delete(QueryClass qc, Constraint c) throws ObjectStoreException
>
> Deletes a set of objects from this ObjectStore.
>
> Parameters:
>      qc - a QueryClass for the class of objects to delete
>      c - a Constraint based on the QueryClass to filter the objects to delete, or null to delete all objects
> Throws:
>      ObjectStoreException - if an error occurs while deleting the objects
>
> But when I try to do exactly that with this code:
>
> LOG.info("Deleting all existing LinkageGroupRange records...");
> osw.beginTransaction();
> QueryClass qcLGR = new QueryClass(LinkageGroupRange.class);
> osw.delete(qcLGR, null);
> osw.commitTransaction();
>
> I get an ObjectStoreException "cannot delete by query":
>
> 2017-09-05 16:51:34 INFO  org.intermine.bio.postprocess.PopulateQTLLinkageGroupRanges     - Deleting all existing LinkageGroupRange records...
> 2017-09-05 16:51:34 ERROR org.intermine.bio.postprocess.PostProcessOperationsTask     - Failed postprocess. Operation was: populate-qtl-linkagegroup-ranges
> org.intermine.objectstore.ObjectStoreException: Cannot delete by query from interface org.intermine.model.bio.LinkageGroupRange
>          at org.intermine.objectstore.intermine.ObjectStoreWriterInterMineImpl.deleteWithConnection(ObjectStoreWriterInterMineImpl.java:1447)
>          at org.intermine.objectstore.intermine.ObjectStoreWriterInterMineImpl.delete(ObjectStoreWriterInterMineImpl.java:1421)
>          at org.intermine.bio.postprocess.PopulateQTLLinkageGroupRanges.populateQTLLinkageGroupRanges(PopulateQTLLinkageGroupRanges.java:71)
>          at org.intermine.bio.postprocess.PostProcessOperationsTask.execute(PostProcessOperationsTask.java:243)
>          at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>          at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
>          at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>          at java.lang.reflect.Method.invoke(Method.java:498)
>          at org.intermine.task.PostProcessTask.doCorePostProcess(PostProcessTask.java:147)
>          at org.intermine.task.PostProcessTask.execute(PostProcessTask.java:122)
>          at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:291)
>          at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source)
>          at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>          at java.lang.reflect.Method.invoke(Method.java:498)
>          at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
>          at org.apache.tools.ant.Task.perform(Task.java:348)
>          at org.apache.tools.ant.Target.execute(Target.java:390)
>          at org.apache.tools.ant.Target.performTasks(Target.java:411)
>          at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1399)
>          at org.apache.tools.ant.Project.executeTarget(Project.java:1368)
>          at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
>          at org.apache.tools.ant.Project.executeTargets(Project.java:1251)
>          at org.apache.tools.ant.Main.runBuild(Main.java:809)
>          at org.apache.tools.ant.Main.startAnt(Main.java:217)
>          at org.apache.tools.ant.launch.Launcher.run(Launcher.java:280)
>          at org.apache.tools.ant.launch.Launcher.main(Launcher.java:109)
> _______________________________________________
> dev mailing list
> [hidden email]
> https://lists.intermine.org/mailman/listinfo/dev
_______________________________________________
dev mailing list
[hidden email]
https://lists.intermine.org/mailman/listinfo/dev
Reply | Threaded
Open this post in threaded view
|

Re: Why can't I use ObjectStoreWriter.delete(QueryClass qc, null) ?

Sam Hokin-3
I always use is-interface="true".

On 09/06/2017 07:57 AM, Justin Clark-Casey wrote:

> Hi Sam.  In the model XML for LinkageGroupRange do you have is-interface = "false"?  This will make InterMine generate an underlying
> model class which does not inherit from InterMineObject (I'm guessing because it doesn't need the Shadow mechanism), thus causing
> InterMineOBjectImpl.deleteWithConnection() to throw as per your stacktrace.
>
> According to [1], the performance benefit of is-interface == false is tiny, so in practice you may as well set this to true (if this
> is the problem here).
>
> [1] http://intermine.readthedocs.io/en/latest/data-model/model/#the-class-tag
>
> -- Justin
>
> On 05/09/17 23:57, Sam Hokin wrote:
>> According to the API docs, I should be able to do this to delete all instances of a class from the db:
>>
>> void delete(QueryClass qc, Constraint c) throws ObjectStoreException
>>
>> Deletes a set of objects from this ObjectStore.
>>
>> Parameters:
>>      qc - a QueryClass for the class of objects to delete
>>      c - a Constraint based on the QueryClass to filter the objects to delete, or null to delete all objects
>> Throws:
>>      ObjectStoreException - if an error occurs while deleting the objects
>>
>> But when I try to do exactly that with this code:
>>
>> LOG.info("Deleting all existing LinkageGroupRange records...");
>> osw.beginTransaction();
>> QueryClass qcLGR = new QueryClass(LinkageGroupRange.class);
>> osw.delete(qcLGR, null);
>> osw.commitTransaction();
>>
>> I get an ObjectStoreException "cannot delete by query":
>>
>> 2017-09-05 16:51:34 INFO  org.intermine.bio.postprocess.PopulateQTLLinkageGroupRanges     - Deleting all existing
>> LinkageGroupRange records...
>> 2017-09-05 16:51:34 ERROR org.intermine.bio.postprocess.PostProcessOperationsTask     - Failed postprocess. Operation was:
>> populate-qtl-linkagegroup-ranges
>> org.intermine.objectstore.ObjectStoreException: Cannot delete by query from interface org.intermine.model.bio.LinkageGroupRange
>>          at
>> org.intermine.objectstore.intermine.ObjectStoreWriterInterMineImpl.deleteWithConnection(ObjectStoreWriterInterMineImpl.java:1447)
>>          at org.intermine.objectstore.intermine.ObjectStoreWriterInterMineImpl.delete(ObjectStoreWriterInterMineImpl.java:1421)
>>          at
>> org.intermine.bio.postprocess.PopulateQTLLinkageGroupRanges.populateQTLLinkageGroupRanges(PopulateQTLLinkageGroupRanges.java:71)
>>          at org.intermine.bio.postprocess.PostProcessOperationsTask.execute(PostProcessOperationsTask.java:243)
>>          at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>          at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
>>          at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>>          at java.lang.reflect.Method.invoke(Method.java:498)
>>          at org.intermine.task.PostProcessTask.doCorePostProcess(PostProcessTask.java:147)
>>          at org.intermine.task.PostProcessTask.execute(PostProcessTask.java:122)
>>          at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:291)
>>          at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source)
>>          at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>>          at java.lang.reflect.Method.invoke(Method.java:498)
>>          at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
>>          at org.apache.tools.ant.Task.perform(Task.java:348)
>>          at org.apache.tools.ant.Target.execute(Target.java:390)
>>          at org.apache.tools.ant.Target.performTasks(Target.java:411)
>>          at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1399)
>>          at org.apache.tools.ant.Project.executeTarget(Project.java:1368)
>>          at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
>>          at org.apache.tools.ant.Project.executeTargets(Project.java:1251)
>>          at org.apache.tools.ant.Main.runBuild(Main.java:809)
>>          at org.apache.tools.ant.Main.startAnt(Main.java:217)
>>          at org.apache.tools.ant.launch.Launcher.run(Launcher.java:280)
>>          at org.apache.tools.ant.launch.Launcher.main(Launcher.java:109)
>> _______________________________________________
>> dev mailing list
>> [hidden email]
>> https://lists.intermine.org/mailman/listinfo/dev
> _______________________________________________
> dev mailing list
> [hidden email]
> https://lists.intermine.org/mailman/listinfo/dev
_______________________________________________
dev mailing list
[hidden email]
https://lists.intermine.org/mailman/listinfo/dev
Reply | Threaded
Open this post in threaded view
|

Re: Why can't I use ObjectStoreWriter.delete(QueryClass qc, null) ?

Justin Clark-Casey-2
Okay, does the generated LinkageGroupRange.java inherit from InterMineObject?

On 06/09/17 15:24, Sam Hokin wrote:

> I always use is-interface="true".
>
> On 09/06/2017 07:57 AM, Justin Clark-Casey wrote:
>> Hi Sam.  In the model XML for LinkageGroupRange do you have is-interface = "false"?  This will make InterMine generate an underlying model class which does
>> not inherit from InterMineObject (I'm guessing because it doesn't need the Shadow mechanism), thus causing InterMineOBjectImpl.deleteWithConnection() to throw
>> as per your stacktrace.
>>
>> According to [1], the performance benefit of is-interface == false is tiny, so in practice you may as well set this to true (if this is the problem here).
>>
>> [1] http://intermine.readthedocs.io/en/latest/data-model/model/#the-class-tag
>>
>> -- Justin
>>
>> On 05/09/17 23:57, Sam Hokin wrote:
>>> According to the API docs, I should be able to do this to delete all instances of a class from the db:
>>>
>>> void delete(QueryClass qc, Constraint c) throws ObjectStoreException
>>>
>>> Deletes a set of objects from this ObjectStore.
>>>
>>> Parameters:
>>>      qc - a QueryClass for the class of objects to delete
>>>      c - a Constraint based on the QueryClass to filter the objects to delete, or null to delete all objects
>>> Throws:
>>>      ObjectStoreException - if an error occurs while deleting the objects
>>>
>>> But when I try to do exactly that with this code:
>>>
>>> LOG.info("Deleting all existing LinkageGroupRange records...");
>>> osw.beginTransaction();
>>> QueryClass qcLGR = new QueryClass(LinkageGroupRange.class);
>>> osw.delete(qcLGR, null);
>>> osw.commitTransaction();
>>>
>>> I get an ObjectStoreException "cannot delete by query":
>>>
>>> 2017-09-05 16:51:34 INFO  org.intermine.bio.postprocess.PopulateQTLLinkageGroupRanges     - Deleting all existing LinkageGroupRange records...
>>> 2017-09-05 16:51:34 ERROR org.intermine.bio.postprocess.PostProcessOperationsTask     - Failed postprocess. Operation was: populate-qtl-linkagegroup-ranges
>>> org.intermine.objectstore.ObjectStoreException: Cannot delete by query from interface org.intermine.model.bio.LinkageGroupRange
>>>          at org.intermine.objectstore.intermine.ObjectStoreWriterInterMineImpl.deleteWithConnection(ObjectStoreWriterInterMineImpl.java:1447)
>>>          at org.intermine.objectstore.intermine.ObjectStoreWriterInterMineImpl.delete(ObjectStoreWriterInterMineImpl.java:1421)
>>>          at org.intermine.bio.postprocess.PopulateQTLLinkageGroupRanges.populateQTLLinkageGroupRanges(PopulateQTLLinkageGroupRanges.java:71)
>>>          at org.intermine.bio.postprocess.PostProcessOperationsTask.execute(PostProcessOperationsTask.java:243)
>>>          at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>>          at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
>>>          at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>>>          at java.lang.reflect.Method.invoke(Method.java:498)
>>>          at org.intermine.task.PostProcessTask.doCorePostProcess(PostProcessTask.java:147)
>>>          at org.intermine.task.PostProcessTask.execute(PostProcessTask.java:122)
>>>          at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:291)
>>>          at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source)
>>>          at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>>>          at java.lang.reflect.Method.invoke(Method.java:498)
>>>          at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
>>>          at org.apache.tools.ant.Task.perform(Task.java:348)
>>>          at org.apache.tools.ant.Target.execute(Target.java:390)
>>>          at org.apache.tools.ant.Target.performTasks(Target.java:411)
>>>          at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1399)
>>>          at org.apache.tools.ant.Project.executeTarget(Project.java:1368)
>>>          at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
>>>          at org.apache.tools.ant.Project.executeTargets(Project.java:1251)
>>>          at org.apache.tools.ant.Main.runBuild(Main.java:809)
>>>          at org.apache.tools.ant.Main.startAnt(Main.java:217)
>>>          at org.apache.tools.ant.launch.Launcher.run(Launcher.java:280)
>>>          at org.apache.tools.ant.launch.Launcher.main(Launcher.java:109)
>>> _______________________________________________
>>> dev mailing list
>>> [hidden email]
>>> https://lists.intermine.org/mailman/listinfo/dev
>> _______________________________________________
>> dev mailing list
>> [hidden email]
>> https://lists.intermine.org/mailman/listinfo/dev
> _______________________________________________
> dev mailing list
> [hidden email]
> https://lists.intermine.org/mailman/listinfo/dev
_______________________________________________
dev mailing list
[hidden email]
https://lists.intermine.org/mailman/listinfo/dev
Reply | Threaded
Open this post in threaded view
|

Re: Why can't I use ObjectStoreWriter.delete(QueryClass qc, null) ?

Sam Hokin-3
package org.intermine.model.bio;

public interface LinkageGroupRange extends org.intermine.model.InterMineObject
{
     public java.lang.Double getBegin();
     public void setBegin(final java.lang.Double begin);

     public java.lang.Double getEnd();
     public void setEnd(final java.lang.Double end);

     public java.lang.Double getLength();
     public void setLength(final java.lang.Double length);

     public org.intermine.model.bio.LinkageGroup getLinkageGroup();
     public void setLinkageGroup(final org.intermine.model.bio.LinkageGroup linkageGroup);
     public void proxyLinkageGroup(final org.intermine.objectstore.proxy.ProxyReference linkageGroup);
     public org.intermine.model.InterMineObject proxGetLinkageGroup();

}


On 09/06/2017 08:36 AM, Justin Clark-Casey wrote:

> Okay, does the generated LinkageGroupRange.java inherit from InterMineObject?
>
> On 06/09/17 15:24, Sam Hokin wrote:
>> I always use is-interface="true".
>>
>> On 09/06/2017 07:57 AM, Justin Clark-Casey wrote:
>>> Hi Sam.  In the model XML for LinkageGroupRange do you have is-interface = "false"?  This will make InterMine generate an
>>> underlying model class which does not inherit from InterMineObject (I'm guessing because it doesn't need the Shadow mechanism),
>>> thus causing InterMineOBjectImpl.deleteWithConnection() to throw as per your stacktrace.
>>>
>>> According to [1], the performance benefit of is-interface == false is tiny, so in practice you may as well set this to true (if
>>> this is the problem here).
>>>
>>> [1] http://intermine.readthedocs.io/en/latest/data-model/model/#the-class-tag
>>>
>>> -- Justin
>>>
>>> On 05/09/17 23:57, Sam Hokin wrote:
>>>> According to the API docs, I should be able to do this to delete all instances of a class from the db:
>>>>
>>>> void delete(QueryClass qc, Constraint c) throws ObjectStoreException
>>>>
>>>> Deletes a set of objects from this ObjectStore.
>>>>
>>>> Parameters:
>>>>      qc - a QueryClass for the class of objects to delete
>>>>      c - a Constraint based on the QueryClass to filter the objects to delete, or null to delete all objects
>>>> Throws:
>>>>      ObjectStoreException - if an error occurs while deleting the objects
>>>>
>>>> But when I try to do exactly that with this code:
>>>>
>>>> LOG.info("Deleting all existing LinkageGroupRange records...");
>>>> osw.beginTransaction();
>>>> QueryClass qcLGR = new QueryClass(LinkageGroupRange.class);
>>>> osw.delete(qcLGR, null);
>>>> osw.commitTransaction();
>>>>
>>>> I get an ObjectStoreException "cannot delete by query":
>>>>
>>>> 2017-09-05 16:51:34 INFO  org.intermine.bio.postprocess.PopulateQTLLinkageGroupRanges     - Deleting all existing
>>>> LinkageGroupRange records...
>>>> 2017-09-05 16:51:34 ERROR org.intermine.bio.postprocess.PostProcessOperationsTask     - Failed postprocess. Operation was:
>>>> populate-qtl-linkagegroup-ranges
>>>> org.intermine.objectstore.ObjectStoreException: Cannot delete by query from interface org.intermine.model.bio.LinkageGroupRange
>>>>          at
>>>> org.intermine.objectstore.intermine.ObjectStoreWriterInterMineImpl.deleteWithConnection(ObjectStoreWriterInterMineImpl.java:1447)
>>>>          at org.intermine.objectstore.intermine.ObjectStoreWriterInterMineImpl.delete(ObjectStoreWriterInterMineImpl.java:1421)
>>>>          at
>>>> org.intermine.bio.postprocess.PopulateQTLLinkageGroupRanges.populateQTLLinkageGroupRanges(PopulateQTLLinkageGroupRanges.java:71)
>>>>          at org.intermine.bio.postprocess.PostProcessOperationsTask.execute(PostProcessOperationsTask.java:243)
>>>>          at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>>>          at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
>>>>          at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>>>>          at java.lang.reflect.Method.invoke(Method.java:498)
>>>>          at org.intermine.task.PostProcessTask.doCorePostProcess(PostProcessTask.java:147)
>>>>          at org.intermine.task.PostProcessTask.execute(PostProcessTask.java:122)
>>>>          at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:291)
>>>>          at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source)
>>>>          at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>>>>          at java.lang.reflect.Method.invoke(Method.java:498)
>>>>          at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
>>>>          at org.apache.tools.ant.Task.perform(Task.java:348)
>>>>          at org.apache.tools.ant.Target.execute(Target.java:390)
>>>>          at org.apache.tools.ant.Target.performTasks(Target.java:411)
>>>>          at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1399)
>>>>          at org.apache.tools.ant.Project.executeTarget(Project.java:1368)
>>>>          at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
>>>>          at org.apache.tools.ant.Project.executeTargets(Project.java:1251)
>>>>          at org.apache.tools.ant.Main.runBuild(Main.java:809)
>>>>          at org.apache.tools.ant.Main.startAnt(Main.java:217)
>>>>          at org.apache.tools.ant.launch.Launcher.run(Launcher.java:280)
>>>>          at org.apache.tools.ant.launch.Launcher.main(Launcher.java:109)
>>>> _______________________________________________
>>>> dev mailing list
>>>> [hidden email]
>>>> https://lists.intermine.org/mailman/listinfo/dev
>>> _______________________________________________
>>> dev mailing list
>>> [hidden email]
>>> https://lists.intermine.org/mailman/listinfo/dev
>> _______________________________________________
>> dev mailing list
>> [hidden email]
>> https://lists.intermine.org/mailman/listinfo/dev
> _______________________________________________
> dev mailing list
> [hidden email]
> https://lists.intermine.org/mailman/listinfo/dev
_______________________________________________
dev mailing list
[hidden email]
https://lists.intermine.org/mailman/listinfo/dev
Reply | Threaded
Open this post in threaded view
|

Re: Why can't I use ObjectStoreWriter.delete(QueryClass qc, null) ?

Justin Clark-Casey-2
Ahhh, having put in some unit tests in the 2.0 branch to probe this behaviour [1], I finally realized that the logic is reversed - the delete(QueryClass,
Constraint) method will throw if the class is the same as or a descendent of InterMineObject.

I think is-interface is a red herring and setting to false won't help.

 From brief inspection, I hypothesize that this method is used for deleting classes which actually aren't part of InterMine's ORM (like the SimpleObject in
[1]).  I'm not sure what the alternative is, maybe it is to grab all the relevant InterMineObject and hit delete() for each [2], though that feels inefficient.

[1]
https://github.com/intermine/intermine/blob/gradle/intermine/objectstore/src/test/java/org/intermine/objectstore/intermine/ObjectStoreWriterInterMineImplTest.java
[2] https://github.com/intermine/intermine/blob/gradle/intermine/objectstore/src/test/java/org/intermine/objectstore/ObjectStoreTestUtils.java#L169

On 06/09/17 15:38, Sam Hokin wrote:

> package org.intermine.model.bio;
>
> public interface LinkageGroupRange extends org.intermine.model.InterMineObject
> {
>      public java.lang.Double getBegin();
>      public void setBegin(final java.lang.Double begin);
>
>      public java.lang.Double getEnd();
>      public void setEnd(final java.lang.Double end);
>
>      public java.lang.Double getLength();
>      public void setLength(final java.lang.Double length);
>
>      public org.intermine.model.bio.LinkageGroup getLinkageGroup();
>      public void setLinkageGroup(final org.intermine.model.bio.LinkageGroup linkageGroup);
>      public void proxyLinkageGroup(final org.intermine.objectstore.proxy.ProxyReference linkageGroup);
>      public org.intermine.model.InterMineObject proxGetLinkageGroup();
>
> }
>
>
> On 09/06/2017 08:36 AM, Justin Clark-Casey wrote:
>> Okay, does the generated LinkageGroupRange.java inherit from InterMineObject?
>>
>> On 06/09/17 15:24, Sam Hokin wrote:
>>> I always use is-interface="true".
>>>
>>> On 09/06/2017 07:57 AM, Justin Clark-Casey wrote:
>>>> Hi Sam.  In the model XML for LinkageGroupRange do you have is-interface = "false"?  This will make InterMine generate an underlying model class which does
>>>> not inherit from InterMineObject (I'm guessing because it doesn't need the Shadow mechanism), thus causing InterMineOBjectImpl.deleteWithConnection() to
>>>> throw as per your stacktrace.
>>>>
>>>> According to [1], the performance benefit of is-interface == false is tiny, so in practice you may as well set this to true (if this is the problem here).
>>>>
>>>> [1] http://intermine.readthedocs.io/en/latest/data-model/model/#the-class-tag
>>>>
>>>> -- Justin
>>>>
>>>> On 05/09/17 23:57, Sam Hokin wrote:
>>>>> According to the API docs, I should be able to do this to delete all instances of a class from the db:
>>>>>
>>>>> void delete(QueryClass qc, Constraint c) throws ObjectStoreException
>>>>>
>>>>> Deletes a set of objects from this ObjectStore.
>>>>>
>>>>> Parameters:
>>>>>      qc - a QueryClass for the class of objects to delete
>>>>>      c - a Constraint based on the QueryClass to filter the objects to delete, or null to delete all objects
>>>>> Throws:
>>>>>      ObjectStoreException - if an error occurs while deleting the objects
>>>>>
>>>>> But when I try to do exactly that with this code:
>>>>>
>>>>> LOG.info("Deleting all existing LinkageGroupRange records...");
>>>>> osw.beginTransaction();
>>>>> QueryClass qcLGR = new QueryClass(LinkageGroupRange.class);
>>>>> osw.delete(qcLGR, null);
>>>>> osw.commitTransaction();
>>>>>
>>>>> I get an ObjectStoreException "cannot delete by query":
>>>>>
>>>>> 2017-09-05 16:51:34 INFO  org.intermine.bio.postprocess.PopulateQTLLinkageGroupRanges     - Deleting all existing LinkageGroupRange records...
>>>>> 2017-09-05 16:51:34 ERROR org.intermine.bio.postprocess.PostProcessOperationsTask     - Failed postprocess. Operation was: populate-qtl-linkagegroup-ranges
>>>>> org.intermine.objectstore.ObjectStoreException: Cannot delete by query from interface org.intermine.model.bio.LinkageGroupRange
>>>>>          at org.intermine.objectstore.intermine.ObjectStoreWriterInterMineImpl.deleteWithConnection(ObjectStoreWriterInterMineImpl.java:1447)
>>>>>          at org.intermine.objectstore.intermine.ObjectStoreWriterInterMineImpl.delete(ObjectStoreWriterInterMineImpl.java:1421)
>>>>>          at org.intermine.bio.postprocess.PopulateQTLLinkageGroupRanges.populateQTLLinkageGroupRanges(PopulateQTLLinkageGroupRanges.java:71)
>>>>>          at org.intermine.bio.postprocess.PostProcessOperationsTask.execute(PostProcessOperationsTask.java:243)
>>>>>          at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>>>>          at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
>>>>>          at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>>>>>          at java.lang.reflect.Method.invoke(Method.java:498)
>>>>>          at org.intermine.task.PostProcessTask.doCorePostProcess(PostProcessTask.java:147)
>>>>>          at org.intermine.task.PostProcessTask.execute(PostProcessTask.java:122)
>>>>>          at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:291)
>>>>>          at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source)
>>>>>          at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>>>>>          at java.lang.reflect.Method.invoke(Method.java:498)
>>>>>          at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
>>>>>          at org.apache.tools.ant.Task.perform(Task.java:348)
>>>>>          at org.apache.tools.ant.Target.execute(Target.java:390)
>>>>>          at org.apache.tools.ant.Target.performTasks(Target.java:411)
>>>>>          at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1399)
>>>>>          at org.apache.tools.ant.Project.executeTarget(Project.java:1368)
>>>>>          at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
>>>>>          at org.apache.tools.ant.Project.executeTargets(Project.java:1251)
>>>>>          at org.apache.tools.ant.Main.runBuild(Main.java:809)
>>>>>          at org.apache.tools.ant.Main.startAnt(Main.java:217)
>>>>>          at org.apache.tools.ant.launch.Launcher.run(Launcher.java:280)
>>>>>          at org.apache.tools.ant.launch.Launcher.main(Launcher.java:109)
>>>>> _______________________________________________
>>>>> dev mailing list
>>>>> [hidden email]
>>>>> https://lists.intermine.org/mailman/listinfo/dev
>>>> _______________________________________________
>>>> dev mailing list
>>>> [hidden email]
>>>> https://lists.intermine.org/mailman/listinfo/dev
>>> _______________________________________________
>>> dev mailing list
>>> [hidden email]
>>> https://lists.intermine.org/mailman/listinfo/dev
>> _______________________________________________
>> dev mailing list
>> [hidden email]
>> https://lists.intermine.org/mailman/listinfo/dev
> _______________________________________________
> dev mailing list
> [hidden email]
> https://lists.intermine.org/mailman/listinfo/dev
_______________________________________________
dev mailing list
[hidden email]
https://lists.intermine.org/mailman/listinfo/dev
Reply | Threaded
Open this post in threaded view
|

Re: Why can't I use ObjectStoreWriter.delete(QueryClass qc, null) ?

Sam Hokin-3
Well, that's all I can do, I guess. The API doc sure made it sound like you could blow away all records of a given class in one
swell foop, which I need for my post-processor because I'm inserting items that don't really have a merge identifier, just
references (OntologyAnnotation). I need to blow them away when the post-processor is run a second time to avoid duplicates.

On 09/06/2017 10:49 AM, Justin Clark-Casey wrote:

> Ahhh, having put in some unit tests in the 2.0 branch to probe this behaviour [1], I finally realized that the logic is reversed -
> the delete(QueryClass, Constraint) method will throw if the class is the same as or a descendent of InterMineObject.
>
> I think is-interface is a red herring and setting to false won't help.
>
>  From brief inspection, I hypothesize that this method is used for deleting classes which actually aren't part of InterMine's ORM
> (like the SimpleObject in [1]).  I'm not sure what the alternative is, maybe it is to grab all the relevant InterMineObject and hit
> delete() for each [2], though that feels inefficient.
>
> [1]
> https://github.com/intermine/intermine/blob/gradle/intermine/objectstore/src/test/java/org/intermine/objectstore/intermine/ObjectStoreWriterInterMineImplTest.java 
>
> [2]
> https://github.com/intermine/intermine/blob/gradle/intermine/objectstore/src/test/java/org/intermine/objectstore/ObjectStoreTestUtils.java#L169 
>
>
> On 06/09/17 15:38, Sam Hokin wrote:
>> package org.intermine.model.bio;
>>
>> public interface LinkageGroupRange extends org.intermine.model.InterMineObject
>> {
>>      public java.lang.Double getBegin();
>>      public void setBegin(final java.lang.Double begin);
>>
>>      public java.lang.Double getEnd();
>>      public void setEnd(final java.lang.Double end);
>>
>>      public java.lang.Double getLength();
>>      public void setLength(final java.lang.Double length);
>>
>>      public org.intermine.model.bio.LinkageGroup getLinkageGroup();
>>      public void setLinkageGroup(final org.intermine.model.bio.LinkageGroup linkageGroup);
>>      public void proxyLinkageGroup(final org.intermine.objectstore.proxy.ProxyReference linkageGroup);
>>      public org.intermine.model.InterMineObject proxGetLinkageGroup();
>>
>> }
>>
>>
>> On 09/06/2017 08:36 AM, Justin Clark-Casey wrote:
>>> Okay, does the generated LinkageGroupRange.java inherit from InterMineObject?
>>>
>>> On 06/09/17 15:24, Sam Hokin wrote:
>>>> I always use is-interface="true".
>>>>
>>>> On 09/06/2017 07:57 AM, Justin Clark-Casey wrote:
>>>>> Hi Sam.  In the model XML for LinkageGroupRange do you have is-interface = "false"?  This will make InterMine generate an
>>>>> underlying model class which does not inherit from InterMineObject (I'm guessing because it doesn't need the Shadow mechanism),
>>>>> thus causing InterMineOBjectImpl.deleteWithConnection() to throw as per your stacktrace.
>>>>>
>>>>> According to [1], the performance benefit of is-interface == false is tiny, so in practice you may as well set this to true (if
>>>>> this is the problem here).
>>>>>
>>>>> [1] http://intermine.readthedocs.io/en/latest/data-model/model/#the-class-tag
>>>>>
>>>>> -- Justin
>>>>>
>>>>> On 05/09/17 23:57, Sam Hokin wrote:
>>>>>> According to the API docs, I should be able to do this to delete all instances of a class from the db:
>>>>>>
>>>>>> void delete(QueryClass qc, Constraint c) throws ObjectStoreException
>>>>>>
>>>>>> Deletes a set of objects from this ObjectStore.
>>>>>>
>>>>>> Parameters:
>>>>>>      qc - a QueryClass for the class of objects to delete
>>>>>>      c - a Constraint based on the QueryClass to filter the objects to delete, or null to delete all objects
>>>>>> Throws:
>>>>>>      ObjectStoreException - if an error occurs while deleting the objects
>>>>>>
>>>>>> But when I try to do exactly that with this code:
>>>>>>
>>>>>> LOG.info("Deleting all existing LinkageGroupRange records...");
>>>>>> osw.beginTransaction();
>>>>>> QueryClass qcLGR = new QueryClass(LinkageGroupRange.class);
>>>>>> osw.delete(qcLGR, null);
>>>>>> osw.commitTransaction();
>>>>>>
>>>>>> I get an ObjectStoreException "cannot delete by query":
>>>>>>
>>>>>> 2017-09-05 16:51:34 INFO  org.intermine.bio.postprocess.PopulateQTLLinkageGroupRanges     - Deleting all existing
>>>>>> LinkageGroupRange records...
>>>>>> 2017-09-05 16:51:34 ERROR org.intermine.bio.postprocess.PostProcessOperationsTask     - Failed postprocess. Operation was:
>>>>>> populate-qtl-linkagegroup-ranges
>>>>>> org.intermine.objectstore.ObjectStoreException: Cannot delete by query from interface org.intermine.model.bio.LinkageGroupRange
>>>>>>          at
>>>>>> org.intermine.objectstore.intermine.ObjectStoreWriterInterMineImpl.deleteWithConnection(ObjectStoreWriterInterMineImpl.java:1447)
>>>>>>          at org.intermine.objectstore.intermine.ObjectStoreWriterInterMineImpl.delete(ObjectStoreWriterInterMineImpl.java:1421)
>>>>>>          at
>>>>>> org.intermine.bio.postprocess.PopulateQTLLinkageGroupRanges.populateQTLLinkageGroupRanges(PopulateQTLLinkageGroupRanges.java:71)
>>>>>>          at org.intermine.bio.postprocess.PostProcessOperationsTask.execute(PostProcessOperationsTask.java:243)
>>>>>>          at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>>>>>          at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
>>>>>>          at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>>>>>>          at java.lang.reflect.Method.invoke(Method.java:498)
>>>>>>          at org.intermine.task.PostProcessTask.doCorePostProcess(PostProcessTask.java:147)
>>>>>>          at org.intermine.task.PostProcessTask.execute(PostProcessTask.java:122)
>>>>>>          at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:291)
>>>>>>          at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source)
>>>>>>          at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>>>>>>          at java.lang.reflect.Method.invoke(Method.java:498)
>>>>>>          at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
>>>>>>          at org.apache.tools.ant.Task.perform(Task.java:348)
>>>>>>          at org.apache.tools.ant.Target.execute(Target.java:390)
>>>>>>          at org.apache.tools.ant.Target.performTasks(Target.java:411)
>>>>>>          at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1399)
>>>>>>          at org.apache.tools.ant.Project.executeTarget(Project.java:1368)
>>>>>>          at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
>>>>>>          at org.apache.tools.ant.Project.executeTargets(Project.java:1251)
>>>>>>          at org.apache.tools.ant.Main.runBuild(Main.java:809)
>>>>>>          at org.apache.tools.ant.Main.startAnt(Main.java:217)
>>>>>>          at org.apache.tools.ant.launch.Launcher.run(Launcher.java:280)
>>>>>>          at org.apache.tools.ant.launch.Launcher.main(Launcher.java:109)
>>>>>> _______________________________________________
>>>>>> dev mailing list
>>>>>> [hidden email]
>>>>>> https://lists.intermine.org/mailman/listinfo/dev
>>>>> _______________________________________________
>>>>> dev mailing list
>>>>> [hidden email]
>>>>> https://lists.intermine.org/mailman/listinfo/dev
>>>> _______________________________________________
>>>> dev mailing list
>>>> [hidden email]
>>>> https://lists.intermine.org/mailman/listinfo/dev
>>> _______________________________________________
>>> dev mailing list
>>> [hidden email]
>>> https://lists.intermine.org/mailman/listinfo/dev
>> _______________________________________________
>> dev mailing list
>> [hidden email]
>> https://lists.intermine.org/mailman/listinfo/dev
> _______________________________________________
> dev mailing list
> [hidden email]
> https://lists.intermine.org/mailman/listinfo/dev
_______________________________________________
dev mailing list
[hidden email]
https://lists.intermine.org/mailman/listinfo/dev
Reply | Threaded
Open this post in threaded view
|

Re: Why can't I use ObjectStoreWriter.delete(QueryClass qc, null) ?

Justin Clark-Casey-2
I agree it would be good if this were possible.  If you want, create a github issue and assign it to me and I'll see what's involved when I have an opportunity,
though that might take a while due to other priorities (e.g. 2.0 Gradle work, looking at Joel's issue with jsonobjects in the Python API).

On 07/09/17 16:35, Sam Hokin wrote:

> Well, that's all I can do, I guess. The API doc sure made it sound like you could blow away all records of a given class in one swell foop, which I need for my
> post-processor because I'm inserting items that don't really have a merge identifier, just references (OntologyAnnotation). I need to blow them away when the
> post-processor is run a second time to avoid duplicates.
>
> On 09/06/2017 10:49 AM, Justin Clark-Casey wrote:
>> Ahhh, having put in some unit tests in the 2.0 branch to probe this behaviour [1], I finally realized that the logic is reversed - the delete(QueryClass,
>> Constraint) method will throw if the class is the same as or a descendent of InterMineObject.
>>
>> I think is-interface is a red herring and setting to false won't help.
>>
>>  From brief inspection, I hypothesize that this method is used for deleting classes which actually aren't part of InterMine's ORM (like the SimpleObject in
>> [1]).  I'm not sure what the alternative is, maybe it is to grab all the relevant InterMineObject and hit delete() for each [2], though that feels inefficient.
>>
>> [1]
>> https://github.com/intermine/intermine/blob/gradle/intermine/objectstore/src/test/java/org/intermine/objectstore/intermine/ObjectStoreWriterInterMineImplTest.java 
>>
>> [2] https://github.com/intermine/intermine/blob/gradle/intermine/objectstore/src/test/java/org/intermine/objectstore/ObjectStoreTestUtils.java#L169
>>
>> On 06/09/17 15:38, Sam Hokin wrote:
>>> package org.intermine.model.bio;
>>>
>>> public interface LinkageGroupRange extends org.intermine.model.InterMineObject
>>> {
>>>      public java.lang.Double getBegin();
>>>      public void setBegin(final java.lang.Double begin);
>>>
>>>      public java.lang.Double getEnd();
>>>      public void setEnd(final java.lang.Double end);
>>>
>>>      public java.lang.Double getLength();
>>>      public void setLength(final java.lang.Double length);
>>>
>>>      public org.intermine.model.bio.LinkageGroup getLinkageGroup();
>>>      public void setLinkageGroup(final org.intermine.model.bio.LinkageGroup linkageGroup);
>>>      public void proxyLinkageGroup(final org.intermine.objectstore.proxy.ProxyReference linkageGroup);
>>>      public org.intermine.model.InterMineObject proxGetLinkageGroup();
>>>
>>> }
>>>
>>>
>>> On 09/06/2017 08:36 AM, Justin Clark-Casey wrote:
>>>> Okay, does the generated LinkageGroupRange.java inherit from InterMineObject?
>>>>
>>>> On 06/09/17 15:24, Sam Hokin wrote:
>>>>> I always use is-interface="true".
>>>>>
>>>>> On 09/06/2017 07:57 AM, Justin Clark-Casey wrote:
>>>>>> Hi Sam.  In the model XML for LinkageGroupRange do you have is-interface = "false"?  This will make InterMine generate an underlying model class which
>>>>>> does not inherit from InterMineObject (I'm guessing because it doesn't need the Shadow mechanism), thus causing InterMineOBjectImpl.deleteWithConnection()
>>>>>> to throw as per your stacktrace.
>>>>>>
>>>>>> According to [1], the performance benefit of is-interface == false is tiny, so in practice you may as well set this to true (if this is the problem here).
>>>>>>
>>>>>> [1] http://intermine.readthedocs.io/en/latest/data-model/model/#the-class-tag
>>>>>>
>>>>>> -- Justin
>>>>>>
>>>>>> On 05/09/17 23:57, Sam Hokin wrote:
>>>>>>> According to the API docs, I should be able to do this to delete all instances of a class from the db:
>>>>>>>
>>>>>>> void delete(QueryClass qc, Constraint c) throws ObjectStoreException
>>>>>>>
>>>>>>> Deletes a set of objects from this ObjectStore.
>>>>>>>
>>>>>>> Parameters:
>>>>>>>      qc - a QueryClass for the class of objects to delete
>>>>>>>      c - a Constraint based on the QueryClass to filter the objects to delete, or null to delete all objects
>>>>>>> Throws:
>>>>>>>      ObjectStoreException - if an error occurs while deleting the objects
>>>>>>>
>>>>>>> But when I try to do exactly that with this code:
>>>>>>>
>>>>>>> LOG.info("Deleting all existing LinkageGroupRange records...");
>>>>>>> osw.beginTransaction();
>>>>>>> QueryClass qcLGR = new QueryClass(LinkageGroupRange.class);
>>>>>>> osw.delete(qcLGR, null);
>>>>>>> osw.commitTransaction();
>>>>>>>
>>>>>>> I get an ObjectStoreException "cannot delete by query":
>>>>>>>
>>>>>>> 2017-09-05 16:51:34 INFO  org.intermine.bio.postprocess.PopulateQTLLinkageGroupRanges     - Deleting all existing LinkageGroupRange records...
>>>>>>> 2017-09-05 16:51:34 ERROR org.intermine.bio.postprocess.PostProcessOperationsTask     - Failed postprocess. Operation was: populate-qtl-linkagegroup-ranges
>>>>>>> org.intermine.objectstore.ObjectStoreException: Cannot delete by query from interface org.intermine.model.bio.LinkageGroupRange
>>>>>>>          at org.intermine.objectstore.intermine.ObjectStoreWriterInterMineImpl.deleteWithConnection(ObjectStoreWriterInterMineImpl.java:1447)
>>>>>>>          at org.intermine.objectstore.intermine.ObjectStoreWriterInterMineImpl.delete(ObjectStoreWriterInterMineImpl.java:1421)
>>>>>>>          at org.intermine.bio.postprocess.PopulateQTLLinkageGroupRanges.populateQTLLinkageGroupRanges(PopulateQTLLinkageGroupRanges.java:71)
>>>>>>>          at org.intermine.bio.postprocess.PostProcessOperationsTask.execute(PostProcessOperationsTask.java:243)
>>>>>>>          at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>>>>>>          at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
>>>>>>>          at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>>>>>>>          at java.lang.reflect.Method.invoke(Method.java:498)
>>>>>>>          at org.intermine.task.PostProcessTask.doCorePostProcess(PostProcessTask.java:147)
>>>>>>>          at org.intermine.task.PostProcessTask.execute(PostProcessTask.java:122)
>>>>>>>          at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:291)
>>>>>>>          at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source)
>>>>>>>          at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>>>>>>>          at java.lang.reflect.Method.invoke(Method.java:498)
>>>>>>>          at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
>>>>>>>          at org.apache.tools.ant.Task.perform(Task.java:348)
>>>>>>>          at org.apache.tools.ant.Target.execute(Target.java:390)
>>>>>>>          at org.apache.tools.ant.Target.performTasks(Target.java:411)
>>>>>>>          at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1399)
>>>>>>>          at org.apache.tools.ant.Project.executeTarget(Project.java:1368)
>>>>>>>          at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
>>>>>>>          at org.apache.tools.ant.Project.executeTargets(Project.java:1251)
>>>>>>>          at org.apache.tools.ant.Main.runBuild(Main.java:809)
>>>>>>>          at org.apache.tools.ant.Main.startAnt(Main.java:217)
>>>>>>>          at org.apache.tools.ant.launch.Launcher.run(Launcher.java:280)
>>>>>>>          at org.apache.tools.ant.launch.Launcher.main(Launcher.java:109)
>>>>>>> _______________________________________________
>>>>>>> dev mailing list
>>>>>>> [hidden email]
>>>>>>> https://lists.intermine.org/mailman/listinfo/dev
>>>>>> _______________________________________________
>>>>>> dev mailing list
>>>>>> [hidden email]
>>>>>> https://lists.intermine.org/mailman/listinfo/dev
>>>>> _______________________________________________
>>>>> dev mailing list
>>>>> [hidden email]
>>>>> https://lists.intermine.org/mailman/listinfo/dev
>>>> _______________________________________________
>>>> dev mailing list
>>>> [hidden email]
>>>> https://lists.intermine.org/mailman/listinfo/dev
>>> _______________________________________________
>>> dev mailing list
>>> [hidden email]
>>> https://lists.intermine.org/mailman/listinfo/dev
>> _______________________________________________
>> dev mailing list
>> [hidden email]
>> https://lists.intermine.org/mailman/listinfo/dev
> _______________________________________________
> dev mailing list
> [hidden email]
> https://lists.intermine.org/mailman/listinfo/dev
_______________________________________________
dev mailing list
[hidden email]
https://lists.intermine.org/mailman/listinfo/dev