You can subscribe to this list here.
2009 |
Jan
|
Feb
|
Mar
(1) |
Apr
(14) |
May
(36) |
Jun
(148) |
Jul
(33) |
Aug
(2) |
Sep
(17) |
Oct
(42) |
Nov
(137) |
Dec
(88) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2010 |
Jan
(89) |
Feb
(80) |
Mar
(217) |
Apr
(76) |
May
(5) |
Jun
(39) |
Jul
(35) |
Aug
(4) |
Sep
(7) |
Oct
(14) |
Nov
(12) |
Dec
(9) |
2011 |
Jan
(6) |
Feb
(4) |
Mar
(11) |
Apr
(55) |
May
(90) |
Jun
(39) |
Jul
(15) |
Aug
(15) |
Sep
(23) |
Oct
(12) |
Nov
(17) |
Dec
(20) |
2012 |
Jan
(22) |
Feb
(63) |
Mar
|
Apr
(1) |
May
(6) |
Jun
(3) |
Jul
(1) |
Aug
(1) |
Sep
|
Oct
|
Nov
|
Dec
|
2013 |
Jan
(3) |
Feb
(6) |
Mar
|
Apr
|
May
|
Jun
(4) |
Jul
(1) |
Aug
(1) |
Sep
|
Oct
|
Nov
|
Dec
|
2014 |
Jan
|
Feb
|
Mar
|
Apr
(7) |
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: <rv...@us...> - 2010-06-04 11:26:39
|
Revision: 714 http://treebase.svn.sourceforge.net/treebase/?rev=714&view=rev Author: rvos Date: 2010-06-04 11:26:33 +0000 (Fri, 04 Jun 2010) Log Message: ----------- Adding annotation of tb:identifier.taxon.tb1 Modified Paths: -------------- trunk/treebase-core/src/main/java/org/cipres/treebase/domain/taxon/Taxon.java Modified: trunk/treebase-core/src/main/java/org/cipres/treebase/domain/taxon/Taxon.java =================================================================== --- trunk/treebase-core/src/main/java/org/cipres/treebase/domain/taxon/Taxon.java 2010-06-04 11:25:52 UTC (rev 713) +++ trunk/treebase-core/src/main/java/org/cipres/treebase/domain/taxon/Taxon.java 2010-06-04 11:26:33 UTC (rev 714) @@ -261,6 +261,9 @@ annotations.add(new Annotation(Constants.SKOSURI,"skos:exactMatch",Constants.uBioBase + getUBioNamebankId())); annotations.add(new Annotation(Constants.TBTermsURI, "tb:identifier.ubio", getUBioNamebankId())); } + if ( null != getTB1LegacyId() ) { + annotations.add(new Annotation(Constants.TBTermsURI, "tb:identifier.taxon.tb1", getTB1LegacyId())); + } } catch ( Exception e ) { e.printStackTrace(); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rv...@us...> - 2010-06-04 11:25:58
|
Revision: 713 http://treebase.svn.sourceforge.net/treebase/?rev=713&view=rev Author: rvos Date: 2010-06-04 11:25:52 +0000 (Fri, 04 Jun 2010) Log Message: ----------- Adding annotation of tb:identifier.taxonVariant.tb1 Modified Paths: -------------- trunk/treebase-core/src/main/java/org/cipres/treebase/domain/taxon/TaxonVariant.java Modified: trunk/treebase-core/src/main/java/org/cipres/treebase/domain/taxon/TaxonVariant.java =================================================================== --- trunk/treebase-core/src/main/java/org/cipres/treebase/domain/taxon/TaxonVariant.java 2010-06-04 11:25:16 UTC (rev 712) +++ trunk/treebase-core/src/main/java/org/cipres/treebase/domain/taxon/TaxonVariant.java 2010-06-04 11:25:52 UTC (rev 713) @@ -1,6 +1,8 @@ package org.cipres.treebase.domain.taxon; +import java.util.List; + import javax.persistence.AttributeOverride; import javax.persistence.CascadeType; import javax.persistence.Column; @@ -18,7 +20,9 @@ import org.hibernate.annotations.FetchMode; import org.hibernate.annotations.Index; +import org.cipres.treebase.Constants; import org.cipres.treebase.domain.AbstractPersistedObject; +import org.cipres.treebase.domain.Annotation; import org.cipres.treebase.domain.TBPersistable; /** @@ -178,4 +182,17 @@ public String getLabel() { return getFullName(); } + + @Transient + public List<Annotation> getAnnotations() { + List<Annotation> annotations = super.getAnnotations(); + try { + if ( null != getTB1LegacyId() ) { + annotations.add(new Annotation(Constants.TBTermsURI, "tb:identifier.taxonVariant.tb1", getTB1LegacyId())); + } + } catch ( Exception e ) { + e.printStackTrace(); + } + return annotations; + } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rv...@us...> - 2010-06-04 11:25:22
|
Revision: 712 http://treebase.svn.sourceforge.net/treebase/?rev=712&view=rev Author: rvos Date: 2010-06-04 11:25:16 +0000 (Fri, 04 Jun 2010) Log Message: ----------- Adding CQL search predicate ontology. Added Paths: ----------- trunk/treebase-core/src/main/resources/treebase.owl Added: trunk/treebase-core/src/main/resources/treebase.owl =================================================================== --- trunk/treebase-core/src/main/resources/treebase.owl (rev 0) +++ trunk/treebase-core/src/main/resources/treebase.owl 2010-06-04 11:25:16 UTC (rev 712) @@ -0,0 +1,251 @@ +<?xml version="1.0"?> + + +<!DOCTYPE rdf:RDF [ + <!ENTITY owl "http://www.w3.org/2002/07/owl#" > + <!ENTITY owl2 "http://www.w3.org/2006/12/owl2#" > + <!ENTITY xsd "http://www.w3.org/2001/XMLSchema#" > + <!ENTITY owl2xml "http://www.w3.org/2006/12/owl2-xml#" > + <!ENTITY rdfs "http://www.w3.org/2000/01/rdf-schema#" > + <!ENTITY rdf "http://www.w3.org/1999/02/22-rdf-syntax-ns#" > +]> + + +<rdf:RDF xmlns="http://purl.org/phylo/treebase/2.0/terms#" + xml:base="http://purl.org/phylo/treebase/2.0/terms#" + xmlns:owl2xml="http://www.w3.org/2006/12/owl2-xml#" + xmlns:xsd="http://www.w3.org/2001/XMLSchema#" + xmlns:owl2="http://www.w3.org/2006/12/owl2#" + xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:owl="http://www.w3.org/2002/07/owl#"> + <owl:Ontology rdf:about=""> + <owl:imports rdf:resource="http://dublincore.org/2008/01/14/dcterms.rdf"/> + </owl:Ontology> + + + + <!-- + /////////////////////////////////////////////////////////////////////////////////////// + // + // Object Properties + // + /////////////////////////////////////////////////////////////////////////////////////// + --> + + + + + <!-- http://purl.org/dc/elements/1.1/identifier --> + + <owl:ObjectProperty rdf:about="http://purl.org/dc/elements/1.1/identifier"/> + + + + <!-- http://purl.org/dc/terms/extent --> + + <owl:ObjectProperty rdf:about="http://purl.org/dc/terms/extent"/> + + + + <!-- http://purl.org/dc/terms/title --> + + <owl:ObjectProperty rdf:about="http://purl.org/dc/terms/title"/> + + + + <!-- http://purl.org/dc/terms/type --> + + <owl:ObjectProperty rdf:about="http://purl.org/dc/terms/type"/> + + + + <!-- http://purl.org/phylo/treebase/2.0/terms#identifier.matrix --> + + <owl:ObjectProperty rdf:about="identifier.matrix"> + <rdfs:subPropertyOf rdf:resource="http://purl.org/dc/elements/1.1/identifier"/> + </owl:ObjectProperty> + + + + <!-- http://purl.org/phylo/treebase/2.0/terms#identifier.ncbi --> + + <owl:ObjectProperty rdf:about="identifier.ncbi"> + <rdfs:subPropertyOf rdf:resource="http://purl.org/dc/elements/1.1/identifier"/> + </owl:ObjectProperty> + + + + <!-- http://purl.org/phylo/treebase/2.0/terms#identifier.study --> + + <owl:ObjectProperty rdf:about="identifier.study"> + <rdfs:subPropertyOf rdf:resource="http://purl.org/dc/elements/1.1/identifier"/> + </owl:ObjectProperty> + + + + <!-- http://purl.org/phylo/treebase/2.0/terms#identifier.study.tb1 --> + + <owl:ObjectProperty rdf:about="identifier.study.tb1"> + <rdfs:subPropertyOf rdf:resource="http://purl.org/dc/elements/1.1/identifier"/> + </owl:ObjectProperty> + + + + <!-- http://purl.org/phylo/treebase/2.0/terms#identifier.taxon --> + + <owl:ObjectProperty rdf:about="identifier.taxon"> + <rdfs:subPropertyOf rdf:resource="http://purl.org/dc/elements/1.1/identifier"/> + </owl:ObjectProperty> + + + <!-- http://purl.org/phylo/treebase/2.0/terms#identifier.taxon.tb1 --> + + <owl:ObjectProperty rdf:about="identifier.taxon.tb1"> + <rdfs:subPropertyOf rdf:resource="http://purl.org/dc/elements/1.1/identifier"/> + </owl:ObjectProperty> + + + + <!-- http://purl.org/phylo/treebase/2.0/terms#identifier.taxonLabel --> + + <owl:ObjectProperty rdf:about="identifier.taxonLabel"> + <rdfs:subPropertyOf rdf:resource="http://purl.org/dc/elements/1.1/identifier"/> + </owl:ObjectProperty> + + + + <!-- http://purl.org/phylo/treebase/2.0/terms#identifier.taxonVariant --> + + <owl:ObjectProperty rdf:about="identifier.taxonVariant"> + <rdfs:subPropertyOf rdf:resource="http://purl.org/dc/elements/1.1/identifier"/> + </owl:ObjectProperty> + + + + <!-- http://purl.org/phylo/treebase/2.0/terms#identifier.taxonVariant.tb1 --> + + <owl:ObjectProperty rdf:about="identifier.taxonVariant.tb1"> + <rdfs:subPropertyOf rdf:resource="http://purl.org/dc/elements/1.1/identifier"/> + </owl:ObjectProperty> + + + + <!-- http://purl.org/phylo/treebase/2.0/terms#identifier.tree --> + + <owl:ObjectProperty rdf:about="identifier.tree"> + <rdfs:subPropertyOf rdf:resource="http://purl.org/dc/elements/1.1/identifier"/> + </owl:ObjectProperty> + + + + <!-- http://purl.org/phylo/treebase/2.0/terms#identifier.ubio --> + + <owl:ObjectProperty rdf:about="identifier.ubio"> + <rdfs:subPropertyOf rdf:resource="http://purl.org/dc/elements/1.1/identifier"/> + </owl:ObjectProperty> + + + + <!-- http://purl.org/phylo/treebase/2.0/terms#kind.tree --> + + <owl:ObjectProperty rdf:about="kind.tree"> + <rdfs:subPropertyOf rdf:resource="http://purl.org/dc/terms/type"/> + </owl:ObjectProperty> + + + + <!-- http://purl.org/phylo/treebase/2.0/terms#nchar.matrix --> + + <owl:ObjectProperty rdf:about="nchar.matrix"> + <rdfs:subPropertyOf rdf:resource="http://purl.org/dc/terms/extent"/> + </owl:ObjectProperty> + + + + <!-- http://purl.org/phylo/treebase/2.0/terms#ntax.matrix --> + + <owl:ObjectProperty rdf:about="ntax.matrix"> + <rdfs:subPropertyOf rdf:resource="http://purl.org/dc/terms/extent"/> + </owl:ObjectProperty> + + + + <!-- http://purl.org/phylo/treebase/2.0/terms#ntax.tree --> + + <owl:ObjectProperty rdf:about="ntax.tree"> + <rdfs:subPropertyOf rdf:resource="http://purl.org/dc/terms/extent"/> + </owl:ObjectProperty> + + + + <!-- http://purl.org/phylo/treebase/2.0/terms#quality.tree --> + + <owl:ObjectProperty rdf:about="quality.tree"> + <rdfs:subPropertyOf rdf:resource="http://purl.org/dc/terms/type"/> + </owl:ObjectProperty> + + + + <!-- http://purl.org/phylo/treebase/2.0/terms#title.matrix --> + + <owl:ObjectProperty rdf:about="title.matrix"> + <rdfs:subPropertyOf rdf:resource="http://purl.org/dc/terms/title"/> + </owl:ObjectProperty> + + + + <!-- http://purl.org/phylo/treebase/2.0/terms#title.study --> + + <owl:ObjectProperty rdf:about="title.study"> + <rdfs:subPropertyOf rdf:resource="http://purl.org/dc/terms/title"/> + </owl:ObjectProperty> + + + + <!-- http://purl.org/phylo/treebase/2.0/terms#title.taxon --> + + <owl:ObjectProperty rdf:about="title.taxon"> + <rdfs:subPropertyOf rdf:resource="http://purl.org/dc/terms/title"/> + </owl:ObjectProperty> + + + + <!-- http://purl.org/phylo/treebase/2.0/terms#title.taxonLabel --> + + <owl:ObjectProperty rdf:about="title.taxonLabel"> + <rdfs:subPropertyOf rdf:resource="http://purl.org/dc/terms/title"/> + </owl:ObjectProperty> + + + + <!-- http://purl.org/phylo/treebase/2.0/terms#title.taxonVariant --> + + <owl:ObjectProperty rdf:about="title.taxonVariant"> + <rdfs:subPropertyOf rdf:resource="http://purl.org/dc/terms/title"/> + </owl:ObjectProperty> + + + + <!-- http://purl.org/phylo/treebase/2.0/terms#title.tree --> + + <owl:ObjectProperty rdf:about="title.tree"> + <rdfs:subPropertyOf rdf:resource="http://purl.org/dc/terms/title"/> + </owl:ObjectProperty> + + + + <!-- http://purl.org/phylo/treebase/2.0/terms#type.matrix --> + + <owl:ObjectProperty rdf:about="type.matrix"> + <rdfs:subPropertyOf rdf:resource="http://purl.org/dc/terms/type"/> + </owl:ObjectProperty> + + + + <!-- http://purl.org/phylo/treebase/2.0/terms#type.tree --> + + <owl:ObjectProperty rdf:about="type.tree"> + <rdfs:subPropertyOf rdf:resource="http://purl.org/dc/terms/type"/> + </owl:ObjectProperty> +</rdf:RDF> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rv...@us...> - 2010-06-03 17:16:17
|
Revision: 711 http://treebase.svn.sourceforge.net/treebase/?rev=711&view=rev Author: rvos Date: 2010-06-03 17:16:11 +0000 (Thu, 03 Jun 2010) Log Message: ----------- Where available, now adds rdfs:isDefinedBy annotations that point to the containing context (e.g. for a tree, the study in which it is published). This is on the recommendation of the SADI bunch, and at @rdmpage's request. Modified Paths: -------------- trunk/treebase-core/src/main/java/org/cipres/treebase/domain/AbstractPersistedObject.java Modified: trunk/treebase-core/src/main/java/org/cipres/treebase/domain/AbstractPersistedObject.java =================================================================== --- trunk/treebase-core/src/main/java/org/cipres/treebase/domain/AbstractPersistedObject.java 2010-06-03 17:14:46 UTC (rev 710) +++ trunk/treebase-core/src/main/java/org/cipres/treebase/domain/AbstractPersistedObject.java 2010-06-03 17:16:11 UTC (rev 711) @@ -115,6 +115,11 @@ List<Annotation> annotations = new ArrayList<Annotation>(); URI uri = URI.create(TreebaseUtil.getPurlBase()+getPhyloWSPath()); annotations.add(new Annotation(Constants.OWLURI,"owl:sameAs",uri)); + TBPersistable context = getContext(); + if ( null != context ) { + URI contextUri = URI.create(TreebaseUtil.getPurlBase()+context.getPhyloWSPath()); + annotations.add(new Annotation(Constants.RDFSURI, "rdfs:isDefinedBy",contextUri)); + } return annotations; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rv...@us...> - 2010-06-03 17:14:52
|
Revision: 710 http://treebase.svn.sourceforge.net/treebase/?rev=710&view=rev Author: rvos Date: 2010-06-03 17:14:46 +0000 (Thu, 03 Jun 2010) Log Message: ----------- Now changes local URIs into global ones, based on the owl:sameAs value Modified Paths: -------------- trunk/treebase-core/src/main/java/org/cipres/treebase/service/nexus/NexusServiceRDFa.java Modified: trunk/treebase-core/src/main/java/org/cipres/treebase/service/nexus/NexusServiceRDFa.java =================================================================== --- trunk/treebase-core/src/main/java/org/cipres/treebase/service/nexus/NexusServiceRDFa.java 2010-06-03 17:13:16 UTC (rev 709) +++ trunk/treebase-core/src/main/java/org/cipres/treebase/service/nexus/NexusServiceRDFa.java 2010-06-03 17:14:46 UTC (rev 710) @@ -6,17 +6,23 @@ import java.net.MalformedURLException; import java.net.URL; import java.net.URLEncoder; +import java.util.ArrayList; +import java.util.HashMap; import java.util.Iterator; +import java.util.List; +import java.util.Map; import java.util.Properties; import javax.xml.parsers.ParserConfigurationException; import org.apache.log4j.Logger; +import org.cipres.treebase.Constants; import org.cipres.treebase.TreebaseUtil; import org.cipres.treebase.domain.nexus.NexusDataSet; import org.cipres.treebase.domain.nexus.nexml.NexmlDocumentConverter; import org.cipres.treebase.domain.study.Study; import org.dom4j.DocumentException; +import org.dom4j.Node; import org.dom4j.QName; import org.dom4j.io.DocumentResult; import org.dom4j.io.DocumentSource; @@ -72,42 +78,50 @@ } /** - * + * Changes local URIs into global ones, based on owl:sameAs annotations * @param cdaoDoc */ private void normalizeCdaoDoc (org.dom4j.Document cdaoDoc) { + Map<String,String> resourceForId = new HashMap<String,String>(); + QName rdfAboutQName = QName.get("about", "rdf", Constants.RDFURI.toString()); + QName rdfResourceQName = QName.get("resource", "rdf", Constants.RDFURI.toString()); + QName rdfIDQName = QName.get("ID", "rdf", Constants.RDFURI.toString()); LOGGER.info("inside normalizeCdaoDoc"); - Iterator<org.dom4j.Element> parentIterator = cdaoDoc.getRootElement().elementIterator(); - while ( parentIterator.hasNext() ) { - org.dom4j.Element parent = parentIterator.next(); - QName rdfIDQName = QName.get("ID", "rdf", "http://www.w3.org/1999/02/22-rdf-syntax-ns#"); - String rdfID = parent.attributeValue(rdfIDQName); - if ( ! TreebaseUtil.isEmpty(rdfID) ) { - - LOGGER.info("going to flatten ID "+rdfID); - Iterator<org.dom4j.Element> childIterator = cdaoDoc.getRootElement().elementIterator(); - while ( childIterator.hasNext() ) { - org.dom4j.Element child = childIterator.next(); - QName rdfAboutQName = QName.get("about", "rdf", "http://www.w3.org/1999/02/22-rdf-syntax-ns#"); - String rdfAbout = child.attributeValue(rdfAboutQName); - - if ( ! TreebaseUtil.isEmpty(rdfAbout) && rdfAbout.equals("#"+rdfID) ) { - - LOGGER.info("found referencing element"); - Iterator<org.dom4j.Element> grandChildIterator = child.elementIterator(); - while ( grandChildIterator.hasNext() ) { - org.dom4j.Element grandChild = grandChildIterator.next(); - grandChild.detach(); - parent.add(grandChild); - } - - childIterator.remove(); - } - - } + List<org.dom4j.Element> sameAsObjects = cdaoDoc.selectNodes("//owl:sameAs[@rdf:resource]"); + for ( org.dom4j.Element sameAsElt : sameAsObjects ) { + org.dom4j.Element subjectElt = sameAsElt.getParent(); + String id = subjectElt.attributeValue(rdfAboutQName).substring(1); // remove # + String resource = sameAsElt.attributeValue(rdfResourceQName); + resourceForId.put(id, resource); + subjectElt.detach(); + } + + // replace ID attributes + List<org.dom4j.Element> identifiableObjects = cdaoDoc.selectNodes("//rdf:Description[@rdf:ID]"); + for ( org.dom4j.Element identifiableObject : identifiableObjects ) { + String rdfID = identifiableObject.attributeValue(rdfIDQName); + if ( resourceForId.containsKey(rdfID) ) { + org.dom4j.Attribute idAttr = identifiableObject.attribute(rdfIDQName); + identifiableObject.remove(idAttr); + identifiableObject.addAttribute(rdfAboutQName, resourceForId.get(rdfID)); } } + + // replace about and resource references + for ( String rdfID : resourceForId.keySet() ) { + List<org.dom4j.Element> referencingObjects = cdaoDoc.selectNodes("//rdf:Description[@rdf:about='#"+rdfID+"']"); + referencingObjects.addAll(cdaoDoc.selectNodes("//*[@rdf:resource='#"+rdfID+"']")); + for ( org.dom4j.Element referencingObject : referencingObjects ) { + org.dom4j.Attribute attr = referencingObject.attribute(rdfAboutQName); + if ( null == attr ) { + attr = referencingObject.attribute(rdfResourceQName); + } + if ( null != attr ) { + attr.setValue(resourceForId.get(rdfID)); + } + } + } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rv...@us...> - 2010-06-03 17:13:23
|
Revision: 709 http://treebase.svn.sourceforge.net/treebase/?rev=709&view=rev Author: rvos Date: 2010-06-03 17:13:16 +0000 (Thu, 03 Jun 2010) Log Message: ----------- Adding RDF and RDF-schema namespaces for CDAO generation. Changed the template for NCBI (UniProt) URIs to remove the rdf suffix, as per @rdmpage's recommendation. Modified Paths: -------------- trunk/treebase-core/src/main/java/org/cipres/treebase/Constants.java Modified: trunk/treebase-core/src/main/java/org/cipres/treebase/Constants.java =================================================================== --- trunk/treebase-core/src/main/java/org/cipres/treebase/Constants.java 2010-06-02 14:42:42 UTC (rev 708) +++ trunk/treebase-core/src/main/java/org/cipres/treebase/Constants.java 2010-06-03 17:13:16 UTC (rev 709) @@ -13,8 +13,10 @@ public static final URI BaseURI = URI.create("http://purl.org/PHYLO/TREEBASE/PHYLOWS/"); public static final URI OWLURI = URI.create("http://www.w3.org/2002/07/owl#"); public static final URI SKOSURI = URI.create("http://www.w3.org/2004/02/skos/core#"); + public static final URI RDFSURI = URI.create("http://www.w3.org/2000/01/rdf-schema#"); + public static final URI RDFURI = URI.create("http://www.w3.org/1999/02/22-rdf-syntax-ns#"); public static final String NCBITaxonomyBase = "http://www.ncbi.nlm.nih.gov/Taxonomy/Browser/wwwtax.cgi?id="; public static final String uBioBase = "http://www.ubio.org/authority/metadata.php?lsid=urn:lsid:ubio.org:namebank:"; - public static final String NCBITaxonomyFormat = "http://purl.uniprot.org/taxonomy/%s.rdf"; + public static final String NCBITaxonomyFormat = "http://purl.uniprot.org/taxonomy/%s"; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: SourceForge.net <no...@so...> - 2010-06-02 14:51:44
|
Bugs item #2992932, was opened at 2010-04-27 13:08 Message generated for change (Comment added) made by rvos You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=1126676&aid=2992932&group_id=248804 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: ui Group: None >Status: Closed Priority: 7 Private: No Submitted By: William Piel (sfrgpiel) Assigned to: Rutger Vos (rvos) Summary: Exact match "==" does not work in PhyloWS query Initial Comment: This query: http://purl.org/phylo/treebase/phylows/study/find?query=prism.publicationName==Evolution ...results in many journals that are not just "Evolution" but have the word "Evolution" in them (e.g. "Molecular Phylogenetics and Evolution"). So our PhyloWS is not recognizing "==" as an exact match search. ---------------------------------------------------------------------- >Comment By: Rutger Vos (rvos) Date: 2010-06-02 14:51 Message: Exact matching on journal titles now works. ---------------------------------------------------------------------- Comment By: Rutger Vos (rvos) Date: 2010-06-02 14:51 Message: Your bug has been resolved. Thanks for the report. ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=1126676&aid=2992932&group_id=248804 |
From: <rv...@us...> - 2010-06-02 14:42:52
|
Revision: 708 http://treebase.svn.sourceforge.net/treebase/?rev=708&view=rev Author: rvos Date: 2010-06-02 14:42:42 +0000 (Wed, 02 Jun 2010) Log Message: ----------- Fixes for issue 2992932 Modified Paths: -------------- trunk/treebase-web/src/main/java/org/cipres/treebase/web/controllers/MatrixSearchController.java trunk/treebase-web/src/main/java/org/cipres/treebase/web/controllers/SearchController.java trunk/treebase-web/src/main/java/org/cipres/treebase/web/controllers/StudySearchController.java trunk/treebase-web/src/main/java/org/cipres/treebase/web/controllers/TaxonSearchController.java trunk/treebase-web/src/main/java/org/cipres/treebase/web/controllers/TreeSearchController.java trunk/treebase-web/src/main/java/org/cipres/treebase/web/controllers/TreeTopSearchController.java Modified: trunk/treebase-web/src/main/java/org/cipres/treebase/web/controllers/MatrixSearchController.java =================================================================== --- trunk/treebase-web/src/main/java/org/cipres/treebase/web/controllers/MatrixSearchController.java 2010-06-02 13:27:57 UTC (rev 707) +++ trunk/treebase-web/src/main/java/org/cipres/treebase/web/controllers/MatrixSearchController.java 2010-06-02 14:42:42 UTC (rev 708) @@ -3,7 +3,9 @@ import java.io.IOException; import java.util.Collection; +import java.util.HashMap; import java.util.HashSet; +import java.util.Map; import java.util.Set; import javax.servlet.http.HttpServletRequest; @@ -71,21 +73,7 @@ LOGGER.info("formName is '" + formName + "'"); if ( ! TreebaseUtil.isEmpty(query) ) { - /* - CQLParser parser = new CQLParser(); - CQLNode root = parser.parse(query); - root = normalizeParseTree(root); - Set<Matrix> queryResults = doCQLQuery(root, new HashSet<Matrix>(),request, response, errors); - MatrixSearchResults tsr = new MatrixSearchResults(queryResults); - saveSearchResults(request, tsr); - if ( TreebaseUtil.isEmpty(request.getParameter("format")) || ! request.getParameter("format").equals("rss1") ) { - return new ModelAndView("search/matrixSearch", Constants.RESULT_SET, tsr); - } - else { - return this.searchResultsAsRDF(tsr, request, root); - } - */ - return this.handleQueryRequest(request, response, errors); + return this.handleQueryRequest(request, response, errors, query); } if (formName.equals("matrixSimple")) { @@ -180,27 +168,8 @@ } logger.debug(node); return results; - } + } - private CQLNode normalizeParseTree(CQLNode node) { - if ( node instanceof CQLBooleanNode ) { - ((CQLBooleanNode)node).left = normalizeParseTree(((CQLBooleanNode)node).left); - ((CQLBooleanNode)node).right = normalizeParseTree(((CQLBooleanNode)node).right); - return node; - } - else if ( node instanceof CQLTermNode ) { - String index = ((CQLTermNode)node).getIndex(); - String term = ((CQLTermNode)node).getTerm(); - CQLRelation relation = ((CQLTermNode)node).getRelation(); - index = index.replaceAll("dcterms.title", "tb.title.matrix"); - index = index.replaceAll("dcterms.identifier", "tb.identifier.matrix"); - index = index.replaceAll("dcterms.extent", "tb.ntax.matrix"); - return new CQLTermNode(index,relation,term); - } - logger.debug(node); - return node; - } - @SuppressWarnings("unchecked") private Collection<Matrix> doSearch( HttpServletRequest request, @@ -209,20 +178,6 @@ BindException errors, String searchTerm) throws InstantiationException { -// String searchTerm = convertStars(request.getParameter("searchTerm")); -// String keywordSearchTerm = "%" + searchTerm + "%"; -// SearchMessageSetter mSetter = new RequestMessageSetter(request); - -// MatrixSearchResults oldRes; -// { -// SearchResults<?> sr = searchResults(request); -// if (sr != null) { -// oldRes = (MatrixSearchResults) sr.convertToMatrices(); -// } else { -// oldRes = new MatrixSearchResults (); // TODO: Convert existing search results to new type -// } -// } - Collection<Matrix> matches = null; MatrixService matrixService = getSearchService().getMatrixService(); @@ -271,13 +226,6 @@ } matches.removeAll(orphanedMatrices); return matches; - -// SearchResults<Matrix> newRes = intersectSearchResults(oldRes, -// new MatrixSearchResults(matches), mSetter, "No matching matrices found"); -// -// saveSearchResults(request, newRes); -// -// return new ModelAndView("search/matrixSearch", Constants.RESULT_SET, newRes); } @@ -291,8 +239,8 @@ } @Override - protected ModelAndView handleQueryRequest(HttpServletRequest request,HttpServletResponse response,BindException errors) throws CQLParseException, IOException, InstantiationException { - String query = request.getParameter("query"); + protected ModelAndView handleQueryRequest(HttpServletRequest request,HttpServletResponse response,BindException errors, String query) throws CQLParseException, IOException, InstantiationException { + //String query = request.getParameter("query"); CQLParser parser = new CQLParser(); CQLNode root = parser.parse(query); root = normalizeParseTree(root); @@ -322,4 +270,13 @@ } } + @Override + protected Map<String, String> getPredicateMapping() { + Map<String,String> mapping = new HashMap<String,String>(); + mapping.put("dcterms.title", "tb.title.matrix"); + mapping.put("dcterms.identifier", "tb.identifier.matrix"); + mapping.put("dcterms.extent", "tb.ntax.matrix"); + return mapping; + } + } Modified: trunk/treebase-web/src/main/java/org/cipres/treebase/web/controllers/SearchController.java =================================================================== --- trunk/treebase-web/src/main/java/org/cipres/treebase/web/controllers/SearchController.java 2010-06-02 13:27:57 UTC (rev 707) +++ trunk/treebase-web/src/main/java/org/cipres/treebase/web/controllers/SearchController.java 2010-06-02 14:42:42 UTC (rev 708) @@ -35,8 +35,11 @@ import org.springframework.validation.BindException; import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.view.RedirectView; +import org.z3950.zing.cql.CQLBooleanNode; import org.z3950.zing.cql.CQLNode; import org.z3950.zing.cql.CQLParseException; +import org.z3950.zing.cql.CQLRelation; +import org.z3950.zing.cql.CQLTermNode; /** @@ -46,14 +49,51 @@ /** * Logger for this class */ - private static final Logger LOGGER = Logger.getLogger(SearchController.class); - + private static final Logger LOGGER = Logger.getLogger(SearchController.class); protected SearchService searchService; protected String formView; - private TaxonLabelService mTaxonLabelService; - protected abstract ModelAndView handleQueryRequest(HttpServletRequest request,HttpServletResponse response,BindException errors) throws CQLParseException, IOException, InstantiationException; + protected abstract ModelAndView handleQueryRequest(HttpServletRequest request,HttpServletResponse response,BindException errors,String query) throws CQLParseException, IOException, InstantiationException; + + /** + * Recursively traverses a CQL parse tree (presumably starting from its + * root node), replacing the observed indices with ones suggested by the map + * returned by getPredicateMapping(). The function of this is to allow concrete + * subclasses to create specific mappings from more general ones, e.g. when a + * study search query refers to the index "dcterms.identifier", the StudySearchController + * can specify that within its context this index is understood to mean "tb.identifier.study", + * i.e. the study ID. + * @param node + * @return + */ + protected CQLNode normalizeParseTree(CQLNode node) { + if ( node instanceof CQLBooleanNode ) { + ((CQLBooleanNode)node).left = normalizeParseTree(((CQLBooleanNode)node).left); + ((CQLBooleanNode)node).right = normalizeParseTree(((CQLBooleanNode)node).right); + return node; + } + else if ( node instanceof CQLTermNode ) { + String index = ((CQLTermNode)node).getIndex(); + String term = ((CQLTermNode)node).getTerm(); + CQLRelation relation = ((CQLTermNode)node).getRelation(); + Map<String,String> mapping = getPredicateMapping(); + for ( String key : mapping.keySet() ) { + index = index.replaceAll(key, mapping.get(key)); + } + return new CQLTermNode(index,relation,term); + } + logger.debug(node); + return node; + } + + /** + * Returns a mapping between more general search indices (e.g. "dcterms.identifier") + * and the specific indices (e.g. "tb.identifier.study") that are understood to be used + * by the concrete subclass + * @return + */ + protected abstract Map<String,String> getPredicateMapping(); protected ModelAndView onSubmit( HttpServletRequest request, @@ -399,7 +439,7 @@ String query = request.getParameter("query"); if ( query != null && ! TreebaseUtil.isEmpty(query) ) { LOGGER.info("query is '"+ query +"'"); - return this.handleQueryRequest(request, response, bindException); + return this.handleQueryRequest(request, response, bindException, query); } String action = request.getParameter("action"); if (action != null && action.equals("discard") && request.getMethod().equals("GET")) { Modified: trunk/treebase-web/src/main/java/org/cipres/treebase/web/controllers/StudySearchController.java =================================================================== --- trunk/treebase-web/src/main/java/org/cipres/treebase/web/controllers/StudySearchController.java 2010-06-02 13:27:57 UTC (rev 707) +++ trunk/treebase-web/src/main/java/org/cipres/treebase/web/controllers/StudySearchController.java 2010-06-02 14:42:42 UTC (rev 708) @@ -3,7 +3,9 @@ import java.io.IOException; import java.util.Collection; +import java.util.HashMap; import java.util.HashSet; +import java.util.Map; import java.util.Set; import javax.servlet.http.HttpServletRequest; @@ -96,7 +98,7 @@ if ( ! TreebaseUtil.isEmpty(query) && ! query.equals("")) { LOGGER.info("query is '" + query + "'"); - return this.handleQueryRequest(request, response, errors); + return this.handleQueryRequest(request, response, errors, query); } if (formName.equals("searchKeyword")) { @@ -129,7 +131,9 @@ } else { throw new Error("Unknown search button name '" + buttonName + "'"); } - Collection<Study> matches = doSearch(request, response, searchType, errors,searchTerm); + // XXX we now never do an exact match with terms provided through the web app. We can change + // this, e.g. by adding a check box whose value is the boolean argument of doSearch() + Collection<Study> matches = doSearch(request, response, searchType, errors,searchTerm,false); if ( TreebaseUtil.isEmpty(request.getParameter("format")) || ! request.getParameter("format").equals("rss1") ) { SearchResults<Study> newRes = intersectSearchResults(oldRes, new StudySearchResults(matches), new RequestMessageSetter(request), "No matching studies found"); @@ -139,7 +143,8 @@ else { return this.searchResultsAsRDF(new StudySearchResults(matches), request, null,"study","study"); } - } else { + } + else { return super.onSubmit(request, response, command, errors); } } @@ -177,23 +182,24 @@ } else if ( node instanceof CQLTermNode ) { CQLTermNode term = (CQLTermNode)node; + boolean exactMatch = term.getRelation().getBase().equals("=="); String index = term.getIndex(); if ( index.startsWith("tb.title") ) { - results.addAll(doSearch(request, response, SearchType.byTitle, errors, term.getTerm())); + results.addAll(doSearch(request, response, SearchType.byTitle, errors, term.getTerm(),exactMatch)); } else if ( index.equals("tb.identifier.study") ) { - results.addAll(doSearch(request, response, SearchType.byID, errors, term.getTerm())); + results.addAll(doSearch(request, response, SearchType.byID, errors, term.getTerm(),exactMatch)); } else if ( index.startsWith("dcterms.contributor") ) { - results.addAll(doSearch(request, response, SearchType.byAuthorName, errors, term.getTerm())); + results.addAll(doSearch(request, response, SearchType.byAuthorName, errors, term.getTerm(),exactMatch)); } else if ( index.startsWith("dcterms.abstract") ) { - results.addAll(doSearch(request, response, SearchType.inAbstract, errors, term.getTerm())); + results.addAll(doSearch(request, response, SearchType.inAbstract, errors, term.getTerm(),exactMatch)); } else if ( index.startsWith("dcterms.subject") ) { - results.addAll(doSearch(request, response, SearchType.byKeyword, errors, term.getTerm())); + results.addAll(doSearch(request, response, SearchType.byKeyword, errors, term.getTerm(),exactMatch)); } else if ( index.startsWith("dcterms.bibliographicCitation") ) { - results.addAll(doSearch(request, response, SearchType.inCitation, errors, term.getTerm())); + results.addAll(doSearch(request, response, SearchType.inCitation, errors, term.getTerm(),exactMatch)); } else if ( index.equals("tb.identifier.study.tb1") ) { - results.addAll(doSearch(request, response, SearchType.byLegacyID, errors, term.getTerm())); + results.addAll(doSearch(request, response, SearchType.byLegacyID, errors, term.getTerm(),exactMatch)); } else if ( index.startsWith("prism.publicationName") ) { - results.addAll(doSearch(request, response, SearchType.byJournal, errors, term.getTerm())); + results.addAll(doSearch(request, response, SearchType.byJournal, errors, term.getTerm(),exactMatch)); } else { // issue warnings addMessage(request, "Unsupported index: " + index); @@ -201,48 +207,18 @@ } logger.debug(node); return results; - } + } - private CQLNode normalizeParseTree(CQLNode node) { - if ( node instanceof CQLBooleanNode ) { - ((CQLBooleanNode)node).left = normalizeParseTree(((CQLBooleanNode)node).left); - ((CQLBooleanNode)node).right = normalizeParseTree(((CQLBooleanNode)node).right); - return node; - } - else if ( node instanceof CQLTermNode ) { - String index = ((CQLTermNode)node).getIndex(); - String term = ((CQLTermNode)node).getTerm(); - CQLRelation relation = ((CQLTermNode)node).getRelation(); - index = index.replaceAll("dcterms.title", "tb.title.study"); - index = index.replaceAll("dcterms.identifier", "tb.identifier.study"); - return new CQLTermNode(index,relation,term); - } - logger.debug(node); - return node; - } - @SuppressWarnings("unchecked") protected Collection<Study> doSearch( HttpServletRequest request, HttpServletResponse response, SearchType searchType, BindException errors, - String searchTerm) throws InstantiationException { + String searchTerm, + boolean exactMatch) throws InstantiationException { -// String searchTerm = convertStars(request.getParameter("searchTerm")); String keywordSearchTerm = "%" + searchTerm + "%"; -// StudySearchResults oldRes; -// -// { -// SearchResults<?> sr = searchResults(request); -// if (sr != null) { -// oldRes = (StudySearchResults) sr.convertToStudies(); -// } else { -// oldRes = new StudySearchResults (); // TODO: Convert existing search results to new type -// } -// } -// -// LOGGER.info("doSearch old results contained " + oldRes.size() + " item(s)"); Collection<Study> matches; StudyService studyService = getSearchService().getStudyService(); @@ -283,79 +259,21 @@ matches = studyService.findByKeyword(keywordSearchTerm); break; case byJournal: - matches = studyService.findByJournal(keywordSearchTerm, false); + { + if ( exactMatch ) { + matches = studyService.findByJournal(searchTerm, exactMatch); + } else { + matches = studyService.findByJournal(keywordSearchTerm, exactMatch); + } break; + } default: throw new Error ("Unknown search type '" + searchType + "'"); } return matches; -// SearchResults<Study> newRes = intersectSearchResults(oldRes, new StudySearchResults(matches), -// new RequestMessageSetter(request), "No matching studies found"); -// -// saveSearchResults(request, newRes); -// -// return new ModelAndView("search/studySearch", Constants.RESULT_SET, newRes); } - /* - private void validateTaxonSet(HttpServletRequest request, - HttpServletResponse response, String searchTerm, - BindException errors) { - String[] taxonStrings = getTaxonStrings(searchTerm); - List<String> unrecognizedTaxa = new LinkedList<String> (); - List<String> recognizedTaxa = new LinkedList<String> (); - - Collection<TaxonLabel> taxonLabels = stringsToTaxonLabels(taxonStrings); - request.setAttribute("taxonLabelSetOverride", taxonLabels); - - for (TaxonLabel tl : taxonLabels) { - TaxonVariant variant = getTaxonLabelService().findTaxonVariant(tl); - if (variant == null) { - variant = getTaxonLabelService().createFromUBIOService(tl); - if (variant == null) { - unrecognizedTaxa.add(tl.getTaxonLabel()); - } else { - recognizedTaxa.add(tl.getTaxonLabel()); - } - } else { - recognizedTaxa.add(variant.getName()); - } - } - - LOGGER.info("validateTaxonSet: of " - + taxonStrings.length - + " entered taxa, " - + unrecognizedTaxa.size() - + " was/were unrecognized: " - + unrecognizedTaxa.toString()); - - request.setAttribute("unrecognizedTaxa", unrecognizedTaxa); - request.setAttribute("taxonLabels", joinStrings(recognizedTaxa)); - return; - } - - private String joinStrings(Collection<String> strings) { - String result = ""; - for (String s : strings) { - result = result + s + "\n"; - } - return result; - } - - private Collection<TaxonLabel> stringsToTaxonLabels(String[] taxonStrings) { - Collection<TaxonLabel> tls = new LinkedList<TaxonLabel>(); - for (String s : taxonStrings) { - tls.add(new TaxonLabel(titleCase(s))); - } - return tls; - } - - private String titleCase(String s) { - return s.substring(0, 1).toUpperCase() + s.substring(1).toLowerCase(); - } - */ - @Override SearchResultsType currentSearchType() { return SearchResultsType.STUDY; @@ -368,9 +286,9 @@ @Override protected ModelAndView handleQueryRequest(HttpServletRequest request, - HttpServletResponse response, BindException errors) + HttpServletResponse response, BindException errors,String query) throws CQLParseException, IOException, InstantiationException { - String query = request.getParameter("query"); + //String query = request.getParameter("query"); CQLParser parser = new CQLParser(); CQLNode root = parser.parse(query); root = normalizeParseTree(root); @@ -399,4 +317,12 @@ return this.searchResultsAsRDF(res, request, root, schema, "study"); } } + + @Override + protected Map<String, String> getPredicateMapping() { + Map<String,String> mapping = new HashMap<String,String>(); + mapping.put("dcterms.title", "tb.title.study"); + mapping.put("dcterms.identifier", "tb.identifier.study"); + return mapping; + } } Modified: trunk/treebase-web/src/main/java/org/cipres/treebase/web/controllers/TaxonSearchController.java =================================================================== --- trunk/treebase-web/src/main/java/org/cipres/treebase/web/controllers/TaxonSearchController.java 2010-06-02 13:27:57 UTC (rev 707) +++ trunk/treebase-web/src/main/java/org/cipres/treebase/web/controllers/TaxonSearchController.java 2010-06-02 14:42:42 UTC (rev 708) @@ -3,7 +3,9 @@ import java.io.IOException; import java.util.ArrayList; import java.util.Collection; +import java.util.HashMap; import java.util.HashSet; +import java.util.Map; import java.util.Set; import javax.servlet.http.HttpServletRequest; @@ -54,21 +56,7 @@ String formName = request.getParameter("formName"); String query = request.getParameter("query"); if ( ! TreebaseUtil.isEmpty(query) ) { - /* - CQLParser parser = new CQLParser(); - CQLNode root = parser.parse(query); - root = normalizeParseTree(root); - Set<Taxon> queryResults = doCQLQuery(root, new HashSet<Taxon>(),request); - TaxonSearchResults tsr = new TaxonSearchResults(queryResults); - saveSearchResults(request, tsr); - if ( TreebaseUtil.isEmpty(request.getParameter("format")) || ! request.getParameter("format").equals("rss1") ) { - return samePage(request); - } - else { - return this.searchResultsAsRDF(tsr, request, root); - } - */ - return this.handleQueryRequest(request, response, errors); + return this.handleQueryRequest(request, response, errors, query); } if (formName.equals("searchByTaxonLabel")) { SearchCommand newSearchCommand = (SearchCommand)searchCommand; @@ -109,24 +97,6 @@ } } - private CQLNode normalizeParseTree(CQLNode node) { - if ( node instanceof CQLBooleanNode ) { - ((CQLBooleanNode)node).left = normalizeParseTree(((CQLBooleanNode)node).left); - ((CQLBooleanNode)node).right = normalizeParseTree(((CQLBooleanNode)node).right); - return node; - } - else if ( node instanceof CQLTermNode ) { - String index = ((CQLTermNode)node).getIndex(); - String term = ((CQLTermNode)node).getTerm(); - CQLRelation relation = ((CQLTermNode)node).getRelation(); - index = index.replaceAll("dcterms.title", "tb.title.taxon"); - index = index.replaceAll("dcterms.identifier", "tb.identifier.taxon"); - return new CQLTermNode(index,relation,term); - } - logger.debug(node); - return node; - } - private Set<Taxon> doCQLQuery(CQLNode node, Set<Taxon> results, HttpServletRequest request) { if ( node instanceof CQLBooleanNode ) { Set<Taxon> resultsLeft = doCQLQuery(((CQLBooleanNode)node).left,results, request); @@ -401,9 +371,9 @@ @Override protected ModelAndView handleQueryRequest(HttpServletRequest request, - HttpServletResponse response, BindException errors) + HttpServletResponse response, BindException errors, String query) throws CQLParseException, IOException, InstantiationException { - String query = request.getParameter("query"); + //String query = request.getParameter("query"); CQLParser parser = new CQLParser(); CQLNode root = parser.parse(query); root = normalizeParseTree(root); @@ -432,4 +402,12 @@ return this.searchResultsAsRDF(res, request, root,schema,"taxon"); } } + + @Override + protected Map<String, String> getPredicateMapping() { + Map<String,String> mapping = new HashMap<String,String>(); + mapping.put("dcterms.title", "tb.title.taxon"); + mapping.put("dcterms.identifier", "tb.identifier.taxon"); + return mapping; + } } Modified: trunk/treebase-web/src/main/java/org/cipres/treebase/web/controllers/TreeSearchController.java =================================================================== --- trunk/treebase-web/src/main/java/org/cipres/treebase/web/controllers/TreeSearchController.java 2010-06-02 13:27:57 UTC (rev 707) +++ trunk/treebase-web/src/main/java/org/cipres/treebase/web/controllers/TreeSearchController.java 2010-06-02 14:42:42 UTC (rev 708) @@ -3,7 +3,9 @@ import java.io.IOException; import java.util.Collection; +import java.util.HashMap; import java.util.HashSet; +import java.util.Map; import java.util.Set; import javax.servlet.http.HttpServletRequest; @@ -69,21 +71,7 @@ LOGGER.info("formName is '" + formName + "'"); if ( ! TreebaseUtil.isEmpty(query) ) { - /* - CQLParser parser = new CQLParser(); - CQLNode root = parser.parse(query); - root = normalizeParseTree(root); - Set<PhyloTree> queryResults = doCQLQuery(root, new HashSet<PhyloTree>(),request, response, errors); - TreeSearchResults tsr = new TreeSearchResults(queryResults); - saveSearchResults(request, tsr); - if ( TreebaseUtil.isEmpty(request.getParameter("format")) || ! request.getParameter("format").equals("rss1") ) { - return new ModelAndView("search/treeSearch", Constants.RESULT_SET, tsr); - } - else { - return this.searchResultsAsRDF(tsr, request, root); - } - */ - return this.handleQueryRequest(request, response, errors); + return this.handleQueryRequest(request, response, errors, query); } if (formName.equals("treeSimple")) { @@ -180,25 +168,6 @@ logger.debug(node); return results; } - - private CQLNode normalizeParseTree(CQLNode node) { - if ( node instanceof CQLBooleanNode ) { - ((CQLBooleanNode)node).left = normalizeParseTree(((CQLBooleanNode)node).left); - ((CQLBooleanNode)node).right = normalizeParseTree(((CQLBooleanNode)node).right); - return node; - } - else if ( node instanceof CQLTermNode ) { - String index = ((CQLTermNode)node).getIndex(); - String term = ((CQLTermNode)node).getTerm(); - CQLRelation relation = ((CQLTermNode)node).getRelation(); - index = index.replaceAll("dcterms.title", "tb.title.tree"); - index = index.replaceAll("dcterms.identifier", "tb.identifier.tree"); - index = index.replaceAll("dcterms.extent", "tb.ntax.tree"); - return new CQLTermNode(index,relation,term); - } - logger.debug(node); - return node; - } @SuppressWarnings("unchecked") private Collection<PhyloTree> doSearch( @@ -208,18 +177,6 @@ BindException errors, String searchTerm) throws InstantiationException { -// String searchTerm = convertStars(request.getParameter("searchTerm")); -// String keywordSearchTerm = "%" + searchTerm + "%"; -// TreeSearchResults oldRes; -// { -// SearchResults<?> sr = searchResults(request); -// if (sr != null) { -// oldRes = (TreeSearchResults) sr.convertToTrees(); -// } else { -// oldRes = new TreeSearchResults (); // TODO: Convert existing search results to new type -// } -// } - Collection<PhyloTree> matches = null; PhyloTreeService phyloTreeService = getSearchService().getPhyloTreeService(); @@ -279,9 +236,9 @@ @Override protected ModelAndView handleQueryRequest(HttpServletRequest request, - HttpServletResponse response, BindException errors) + HttpServletResponse response, BindException errors, String query) throws CQLParseException, IOException, InstantiationException { - String query = request.getParameter("query"); + //String query = request.getParameter("query"); CQLParser parser = new CQLParser(); CQLNode root = parser.parse(query); root = normalizeParseTree(root); @@ -311,4 +268,13 @@ } } + @Override + protected Map<String, String> getPredicateMapping() { + Map<String,String> mapping = new HashMap<String,String>(); + mapping.put("dcterms.title", "tb.title.tree"); + mapping.put("dcterms.identifier", "tb.identifier.tree"); + mapping.put("dcterms.extent", "tb.ntax.tree"); + return mapping; + } + } Modified: trunk/treebase-web/src/main/java/org/cipres/treebase/web/controllers/TreeTopSearchController.java =================================================================== --- trunk/treebase-web/src/main/java/org/cipres/treebase/web/controllers/TreeTopSearchController.java 2010-06-02 13:27:57 UTC (rev 707) +++ trunk/treebase-web/src/main/java/org/cipres/treebase/web/controllers/TreeTopSearchController.java 2010-06-02 14:42:42 UTC (rev 708) @@ -5,6 +5,7 @@ import java.util.Collection; import java.util.LinkedList; import java.util.List; +import java.util.Map; import java.util.Set; import javax.servlet.http.HttpServletRequest; @@ -20,6 +21,7 @@ import org.cipres.treebase.web.Constants; import org.springframework.validation.BindException; import org.springframework.web.servlet.ModelAndView; +import org.z3950.zing.cql.CQLNode; import org.z3950.zing.cql.CQLParseException; /** @@ -189,10 +191,22 @@ @Override protected ModelAndView handleQueryRequest(HttpServletRequest request, - HttpServletResponse response, BindException errors) + HttpServletResponse response, BindException errors, String query) throws CQLParseException, IOException, InstantiationException { // TODO Auto-generated method stub return null; } + @Override + protected CQLNode normalizeParseTree(CQLNode node) { + // TODO Auto-generated method stub + return null; + } + + @Override + protected Map<String, String> getPredicateMapping() { + // TODO Auto-generated method stub + return null; + } + } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rv...@us...> - 2010-06-02 13:28:03
|
Revision: 707 http://treebase.svn.sourceforge.net/treebase/?rev=707&view=rev Author: rvos Date: 2010-06-02 13:27:57 +0000 (Wed, 02 Jun 2010) Log Message: ----------- Now properly dispatches to getStudyHome().findByJournal(pJournal,pCaseSensitive), i.e. the method with the boolean flag, as opposed to the one without it (which only does fuzzy matching). Modified Paths: -------------- trunk/treebase-core/src/main/java/org/cipres/treebase/service/study/StudyServiceImpl.java Modified: trunk/treebase-core/src/main/java/org/cipres/treebase/service/study/StudyServiceImpl.java =================================================================== --- trunk/treebase-core/src/main/java/org/cipres/treebase/service/study/StudyServiceImpl.java 2010-06-02 13:26:16 UTC (rev 706) +++ trunk/treebase-core/src/main/java/org/cipres/treebase/service/study/StudyServiceImpl.java 2010-06-02 13:27:57 UTC (rev 707) @@ -533,6 +533,6 @@ public Collection<Study> findByJournal(String pJournal, boolean pCaseSensitive) { - return getStudyHome().findByJournal(pJournal); + return getStudyHome().findByJournal(pJournal,pCaseSensitive); } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rv...@us...> - 2010-06-02 13:26:24
|
Revision: 706 http://treebase.svn.sourceforge.net/treebase/?rev=706&view=rev Author: rvos Date: 2010-06-02 13:26:16 +0000 (Wed, 02 Jun 2010) Log Message: ----------- Added interface of findByJournal(String pJournal, boolean pExactMatch), so that we can do exact matching against journal names - and then deliver them as RSS, so that journals can have feeds with treebase publications. Modified Paths: -------------- trunk/treebase-core/src/main/java/org/cipres/treebase/domain/study/StudyHome.java Modified: trunk/treebase-core/src/main/java/org/cipres/treebase/domain/study/StudyHome.java =================================================================== --- trunk/treebase-core/src/main/java/org/cipres/treebase/domain/study/StudyHome.java 2010-06-02 13:25:28 UTC (rev 705) +++ trunk/treebase-core/src/main/java/org/cipres/treebase/domain/study/StudyHome.java 2010-06-02 13:26:16 UTC (rev 706) @@ -53,6 +53,15 @@ * @return Collection<Study> */ Collection<Study> findByJournal(String pJournal); + + /** + * Find studies by journal name, with exact matching + * + * @param pJournal + * @param pExactMatch + * @return Collection<Study> + */ + Collection<Study> findByJournal(String pJournal, boolean pExactMatch); /** * Find studies submitted by an user. Return an empty set if no match is found. This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rv...@us...> - 2010-06-02 13:25:35
|
Revision: 705 http://treebase.svn.sourceforge.net/treebase/?rev=705&view=rev Author: rvos Date: 2010-06-02 13:25:28 +0000 (Wed, 02 Jun 2010) Log Message: ----------- Added implementation of findByJournal(String pJournal, boolean pExactMatch), so that we can do exact matching against journal names - and then deliver them as RSS, so that journals can have feeds with treebase publications. Modified Paths: -------------- trunk/treebase-core/src/main/java/org/cipres/treebase/dao/study/StudyDAO.java Modified: trunk/treebase-core/src/main/java/org/cipres/treebase/dao/study/StudyDAO.java =================================================================== --- trunk/treebase-core/src/main/java/org/cipres/treebase/dao/study/StudyDAO.java 2010-06-02 12:42:58 UTC (rev 704) +++ trunk/treebase-core/src/main/java/org/cipres/treebase/dao/study/StudyDAO.java 2010-06-02 13:25:28 UTC (rev 705) @@ -22,6 +22,7 @@ import org.hibernate.Query; import org.hibernate.SQLQuery; import org.hibernate.criterion.Expression; +import org.hibernate.criterion.MatchMode; import org.hibernate.criterion.Restrictions; /** @@ -379,5 +380,24 @@ return returnVal; } + /* + * (non-Javadoc) + * @see org.cipres.treebase.domain.study.StudyHome#findByJournal(java.lang.String, boolean) + */ + public Collection<Study> findByJournal(String pJournal, boolean pExactMatch) { + if ( pExactMatch == false ) { + return findByJournal(pJournal); + } + if (LOGGER.isInfoEnabled()) { + LOGGER.info("Going to do an exact journal name match for "+pJournal); + } + Collection<Study> studies = new ArrayList<Study>(); + Criteria studyCrit = getSession().createCriteria(Study.class).createAlias("citation", "cit"); + //studyCrit.add(Restrictions.like("cit.journal", pJournal.trim(), MatchMode.EXACT)); + studyCrit.add(Restrictions.eq("cit.journal", pJournal)); + studies = (Collection<Study>) studyCrit.list(); + return studies; + } + } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sfr...@us...> - 2010-06-02 12:43:04
|
Revision: 704 http://treebase.svn.sourceforge.net/treebase/?rev=704&view=rev Author: sfrgpiel Date: 2010-06-02 12:42:58 +0000 (Wed, 02 Jun 2010) Log Message: ----------- This is the solution recommended by Rutger for fixing issue 2992022, which is an inability to view study 2164 Added Paths: ----------- trunk/treebase-core/db/cleaning/2010-06-02_fix_S2164/ trunk/treebase-core/db/cleaning/2010-06-02_fix_S2164/README.txt trunk/treebase-core/db/cleaning/2010-06-02_fix_S2164/fix_S2164.sql Added: trunk/treebase-core/db/cleaning/2010-06-02_fix_S2164/README.txt =================================================================== --- trunk/treebase-core/db/cleaning/2010-06-02_fix_S2164/README.txt (rev 0) +++ trunk/treebase-core/db/cleaning/2010-06-02_fix_S2164/README.txt 2010-06-02 12:42:58 UTC (rev 704) @@ -0,0 +1,36 @@ +To apply, run fix_S2164.sql + +-------- + +Hi all, + +I'm trying to fix issue 2992022, which was hypothesised to be a +character encoding problem. This is not the case, it has nothing to do +with UTF-8 handling. It's a database inconsistency: + +* in the person table, there's both an entry for "Balázs Tímea", +person_id=3971 and for "Tímea Balázs", person_id=5609 + +* in the latter record, first and last name are in the correct order, +but the author's email address is missing, and the author order index +is 5, on a three-author paper. In the former record, the first and +last name are switched around, but everything else is in the correct +order. It looks like the nullpointer exception is thrown because there +is no author 4 (see: +http://www.mycologia.org/cgi/content/abstract/101/2/247). + +* here's my suggested fix: correct the name order in record 3971, +purge record 5609 from person and from citation_author, i.e.: + +update person set firstname='Tímea', lastname='Balázs' where person_id=3971; +delete from citation_author where authors_person_id=5609; +delete from person where person_id=5609; + +On the test instance this fixes the exception, the citation is +serialised correctly. Can someone fix this on the production instance? +I re-assigned this bug to Bill, but whoever has access to the prod +server can run those SQL snippets and everything should be OK. + +Cheers, + +Rutger \ No newline at end of file Added: trunk/treebase-core/db/cleaning/2010-06-02_fix_S2164/fix_S2164.sql =================================================================== --- trunk/treebase-core/db/cleaning/2010-06-02_fix_S2164/fix_S2164.sql (rev 0) +++ trunk/treebase-core/db/cleaning/2010-06-02_fix_S2164/fix_S2164.sql 2010-06-02 12:42:58 UTC (rev 704) @@ -0,0 +1,13 @@ +-- beware that the inspection tool to apply these statements needs to be +-- utf-8 aware + +BEGIN WORK; + +UPDATE person SET firstname='Tímea', lastname='Balázs' WHERE person_id=3971; + +DELETE FROM citation_author WHERE authors_person_id=5609; + +DELETE FROM person WHERE person_id=5609; + +COMMIT; + This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: SourceForge.net <no...@so...> - 2010-06-01 20:57:00
|
Bugs item #2798604, was opened at 2009-05-29 21:21 Message generated for change (Settings changed) made by rvos You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=1126676&aid=2798604&group_id=248804 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: data Group: None Status: Open Priority: 2 Private: No Submitted By: Blaise Li (blaiseli) >Assigned to: Nobody/Anonymous (nobody) Summary: no block of taxa could be created from a MrBayes .con tree Initial Comment: The upoad of the attached file fails: it says it cannot generate a block of taxa. This is either a bug or a strong limitation: the file contains a nexus tree obtained from MrBayes; it should not be so special. ---------------------------------------------------------------------- >Comment By: Rutger Vos (rvos) Date: 2010-06-01 20:56 Message: OK, I am assigning this to "None". It is pointless to pretend that this is a fixable bug. To be able to read MrBayes trees we will have to switch to a newer mesquite. This is not a task that is properly assigned to me. I will not do this. ---------------------------------------------------------------------- Comment By: Rutger Vos (rvos) Date: 2010-06-01 20:56 Message: Thanks for reporting this bug. We'll look into it as soon as possible. ---------------------------------------------------------------------- Comment By: Hilmar Lapp (hlapp) Date: 2010-04-27 16:13 Message: We won't fix this directly because we can't support all variants of NEXUS. However, we should better document which NEXUS versions we do support, and at some point we may also switch out Mesquite as the NEXUS parser to another one, e.g., NCL. (Though no NEXUS parser can be expected to support all flavors.) ---------------------------------------------------------------------- Comment By: Rutger Vos (rvos) Date: 2010-03-26 11:11 Message: I think this needs to be closed: there is simply no way we will ever support all nexus variants. It is a feature of treebase that we support mesquite-compatible files. We state this very clearly. If people decide to upload files that are not compatible with mesquite there's not much we can do. ---------------------------------------------------------------------- Comment By: Rutger Vos (rvos) Date: 2009-11-18 18:23 Message: This has been downgraded. We can't fix this unless mesquite gets fixed. If people want to upload mrbayes files they will have to run them through mesquite first on their own machines. ---------------------------------------------------------------------- Comment By: Rutger Vos (rvos) Date: 2009-06-27 07:31 Message: The issue is because, although mesquite *can* create a taxa block on the fly while reading a tree block without a translation table, it doesn't want to. It prods the user for feedback, which makes the import hang in headless mode. Bill has emailed the Maddisons about this, and it looks like the issue could certainly be fixed in their code (even if that would make it some sort of treebase special). But - then we have to fold that change into our previous treebase special version of mesquite, which was a snapshot roughly at version 2.1, and we're now at 2.6. I did some testing and some methods have changed or have been removed, so we would need to adapt our code base to that new api. ---------------------------------------------------------------------- Comment By: William Piel (sfrgpiel) Date: 2009-06-23 14:29 Message: This looks like a difficult bug to fix because the problem stems from Mesquite. I'm puzzled why Mesquite cannot create a default taxon block from a tree block that does not use a translation table. I've tried opening trees like this in Mesquite v. 2 with no success... ---------------------------------------------------------------------- Comment By: William Piel (sfrgpiel) Date: 2009-06-23 14:29 Message: Thanks for reporting this bug. We'll look into it as soon as possible. ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=1126676&aid=2798604&group_id=248804 |
From: SourceForge.net <no...@so...> - 2010-06-01 20:54:16
|
Bugs item #2972133, was opened at 2010-03-17 18:52 Message generated for change (Comment added) made by rvos You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=1126676&aid=2972133&group_id=248804 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: ui Group: None >Status: Closed Priority: 7 Private: No Submitted By: Hilmar Lapp (hlapp) Assigned to: Rutger Vos (rvos) Summary: Add to connotea, del.icio.us etc broken due to absolute URL Initial Comment: The code uses an absolute path, which results in things like http://localhost.localdomain:8280/treebase-web/search/study/summary.html?id=1021, which obviously won't work. ---------------------------------------------------------------------- >Comment By: Rutger Vos (rvos) Date: 2010-06-01 20:54 Message: Removed hardcoding, now using the purl instead. ---------------------------------------------------------------------- Comment By: Rutger Vos (rvos) Date: 2010-06-01 20:54 Message: Your bug has been resolved. Thanks for the report. ---------------------------------------------------------------------- Comment By: Rutger Vos (rvos) Date: 2010-03-26 11:07 Message: Thanks for reporting this bug. We'll look into it as soon as possible. ---------------------------------------------------------------------- Comment By: Hilmar Lapp (hlapp) Date: 2010-03-17 19:02 Message: Turns out I do have a CiteULike account. The code adds an entry to the library but w/o a link back to the TreeBASE URL (or the article URL). Is that intended? ---------------------------------------------------------------------- Comment By: Hilmar Lapp (hlapp) Date: 2010-03-17 18:57 Message: This may only affect Connotea actually. The add to Del.icio.us code works, can't test CiteULike as a I don't have an account. ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=1126676&aid=2972133&group_id=248804 |
From: <rv...@us...> - 2010-06-01 20:53:52
|
Revision: 703 http://treebase.svn.sourceforge.net/treebase/?rev=703&view=rev Author: rvos Date: 2010-06-01 20:53:46 +0000 (Tue, 01 Jun 2010) Log Message: ----------- Removed hardcoding of url, using purl instead. This fixes issue 2972133. Modified Paths: -------------- trunk/treebase-web/src/main/webapp/WEB-INF/pages/search/study/nav.jsp Modified: trunk/treebase-web/src/main/webapp/WEB-INF/pages/search/study/nav.jsp =================================================================== --- trunk/treebase-web/src/main/webapp/WEB-INF/pages/search/study/nav.jsp 2010-06-01 20:05:30 UTC (rev 702) +++ trunk/treebase-web/src/main/webapp/WEB-INF/pages/search/study/nav.jsp 2010-06-01 20:53:46 UTC (rev 703) @@ -82,17 +82,16 @@ <!-- save to connotea --> <!-- commented out temporarily because this uses the absolute path, which won't work due to proxying - SF Bug 2972133 --> - <%-- <form method="post" id="connotea" action="http://www.connotea.org/add" enctype="application/x-www-form-urlencoded" name="edit"> <input name="uri" - value="<%= request.getScheme() %>://<%= request.getLocalName() %>:<%= request.getLocalPort() %>/treebase-web/search/study/summary.html?id=<c:out value="${study.id}"/>" + value="${baseLink}?format=html" type="hidden"/> <input name="uri" - value="<%= request.getScheme() %>://<%= request.getLocalName() %>:<%= request.getLocalPort() %>/treebase-web/search/study/summary.html?id=<c:out value="${study.id}"/>" + value="${baseLink}?format=html" type="hidden"/> <input name="ctitle" value="<c:out value="${cit.title}"/>" type="hidden"/> @@ -174,7 +173,7 @@ <img src="/treebase-web/images/connotea.gif" alt="Connotea" class="iconButton"/> Connotea </a> - --%> <!-- end of commenting out connotea --> + <!-- end of commenting out connotea --> <div id="notice"></div> </fieldset> </div> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: SourceForge.net <no...@so...> - 2010-06-01 20:16:45
|
Bugs item #3005716, was opened at 2010-05-22 15:25 Message generated for change (Comment added) made by rvos You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=1126676&aid=3005716&group_id=248804 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: data Group: None >Status: Closed Priority: 7 Private: No Submitted By: William Piel (sfrgpiel) Assigned to: Rutger Vos (rvos) Summary: Tree URI results in Yikes Initial Comment: If I follow a URI for a tree, instead of getting an RSS feed I get a Yikes error. http://www.treebase.org/treebase-web/phylows/tree/TB2:Tr6031 Yikes! javax.servlet.jsp.el.ELException: An error occurred while getting property "phyloWSPath" from an instance of class org.cipres.treebase.domain.study.Study$$EnhancerByCGLIB$$9d782eec at org.apache.commons.el.Logger.logError(Logger.java:484) at org.apache.commons.el.Logger.logError(Logger.java:588) at org.apache.commons.el.ArraySuffix.evaluate(ArraySuffix.java:318) at org.apache.commons.el.ComplexValue.evaluate(ComplexValue.java:145) at org.apache.commons.el.ExpressionEvaluatorImpl.evaluate(ExpressionEvaluatorImpl.java:263) at org.apache.commons.el.ExpressionEvaluatorImpl.evaluate(ExpressionEvaluatorImpl.java:190) at org.apache.jasper.runtime.PageContextImpl.proprietaryEvaluate(PageContextImpl.java:924) at org.apache.jsp.WEB_002dINF.pages.anyObjectAsRDF_jsp._jspx_meth_c_005fout_005f1(anyObjectAsRDF_jsp.java:224) at org.apache.jsp.WEB_002dINF.pages.anyObjectAsRDF_jsp._jspx_meth_c_005fif_005f0(anyObjectAsRDF_jsp.java:199) at org.apache.jsp.WEB_002dINF.pages.anyObjectAsRDF_jsp._jspService(anyObjectAsRDF_jsp.java:100) at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98) at javax.servlet.http.HttpServlet.service(HttpServlet.java:729) at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:331) at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329) at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265) at javax.servlet.http.HttpServlet.service(HttpServlet.java:729) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188) at com.opensymphony.module.sitemesh.filter.PageFilter.doFilter(PageFilter.java:39) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188) at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:679) at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:461) at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:399) at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:301) at org.springframework.web.servlet.view.InternalResourceView.renderMergedOutputModel(InternalResourceView.java:142) at org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:239) at org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1142) at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:879) at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:792) at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:476) at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:431) at javax.servlet.http.HttpServlet.service(HttpServlet.java:627) at javax.servlet.http.HttpServlet.service(HttpServlet.java:729) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188) at org.tuckey.web.filters.urlrewrite.RuleChain.handleRewrite(RuleChain.java:164) at org.tuckey.web.filters.urlrewrite.RuleChain.doRules(RuleChain.java:141) at org.tuckey.web.filters.urlrewrite.UrlRewriter.processRequest(UrlRewriter.java:90) at org.tuckey.web.filters.urlrewrite.UrlRewriteFilter.doFilter(UrlRewriteFilter.java:406) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188) at com.opensymphony.module.sitemesh.filter.PageFilter.parsePage(PageFilter.java:119) at com.opensymphony.module.sitemesh.filter.PageFilter.doFilter(PageFilter.java:55) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188) at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:264) at org.acegisecurity.intercept.web.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:107) at org.acegisecurity.intercept.web.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:72) at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274) at org.acegisecurity.ui.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:110) at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274) at org.acegisecurity.wrapper.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:81) at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274) at org.acegisecurity.ui.AbstractProcessingFilter.doFilter(AbstractProcessingFilter.java:217) at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274) at org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:191) at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274) at org.acegisecurity.util.FilterChainProxy.doFilter(FilterChainProxy.java:148) at org.acegisecurity.util.FilterToBeanProxy.doFilter(FilterToBeanProxy.java:90) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:172) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:873) at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665) at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528) at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81) at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689) at java.lang.Thread.run(Thread.java:636) ---------------------------------------------------------------------- >Comment By: Rutger Vos (rvos) Date: 2010-06-01 20:16 Message: Issue #2974771 and this bug had the same cause. Both are now fixed. For details, see 2974771. ---------------------------------------------------------------------- Comment By: Rutger Vos (rvos) Date: 2010-06-01 20:16 Message: Your bug has been resolved. Thanks for the report. ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=1126676&aid=3005716&group_id=248804 |
From: SourceForge.net <no...@so...> - 2010-06-01 20:11:15
|
Bugs item #2974771, was opened at 2010-03-22 18:59 Message generated for change (Comment added) made by rvos You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=1126676&aid=2974771&group_id=248804 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: ui Group: None >Status: Closed Priority: 8 Private: No Submitted By: Hilmar Lapp (hlapp) Assigned to: Rutger Vos (rvos) Summary: Accessing phyloWS URLs yields exception for HTML view Initial Comment: For example the following works: http://www.treebase.org/treebase-web/phylows/tree/TB2:Tr6917?format=rdf whereas removing the format= parameter (i.e., the HTML view) results in the following YIKES. I suspect that this means that depending on the path from which you access a page, the phyloWSPath (and possibly other page or request parameters) are not properly initialized. javax.servlet.jsp.el.ELException: An error occurred while getting property "phyloWSPath" from an instance of class org.cipres.treebase.domain.study.Study$$EnhancerByCGLIB$$4d099cbc at org.apache.commons.el.Logger.logError(Logger.java:484) at org.apache.commons.el.Logger.logError(Logger.java:588) at org.apache.commons.el.ArraySuffix.evaluate(ArraySuffix.java:318) at org.apache.commons.el.ComplexValue.evaluate(ComplexValue.java:145) at org.apache.commons.el.ExpressionEvaluatorImpl.evaluate(ExpressionEvaluatorImpl.java:263) at org.apache.commons.el.ExpressionEvaluatorImpl.evaluate(ExpressionEvaluatorImpl.java:190) at org.apache.jasper.runtime.PageContextImpl.proprietaryEvaluate(PageContextImpl.java:924) at org.apache.jsp.WEB_002dINF.pages.anyObjectAsRDF_jsp._jspx_meth_c_005fout_005f1(anyObjectAsRDF_jsp.java:224) at org.apache.jsp.WEB_002dINF.pages.anyObjectAsRDF_jsp._jspx_meth_c_005fif_005f0(anyObjectAsRDF_jsp.java:199) at org.apache.jsp.WEB_002dINF.pages.anyObjectAsRDF_jsp._jspService(anyObjectAsRDF_jsp.java:100) at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98) at javax.servlet.http.HttpServlet.service(HttpServlet.java:729) at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:331) at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329) at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265) at javax.servlet.http.HttpServlet.service(HttpServlet.java:729) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188) at com.opensymphony.module.sitemesh.filter.PageFilter.doFilter(PageFilter.java:39) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188) at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:679) at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:461) at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:399) at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:301) at org.springframework.web.servlet.view.InternalResourceView.renderMergedOutputModel(InternalResourceView.java:142) at org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:239) at org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1142) at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:879) at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:792) at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:476) at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:431) at javax.servlet.http.HttpServlet.service(HttpServlet.java:627) at javax.servlet.http.HttpServlet.service(HttpServlet.java:729) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188) at com.opensymphony.module.sitemesh.filter.PageFilter.parsePage(PageFilter.java:119) at com.opensymphony.module.sitemesh.filter.PageFilter.doFilter(PageFilter.java:55) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188) at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:264) at org.acegisecurity.intercept.web.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:107) at org.acegisecurity.intercept.web.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:72) at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274) at org.acegisecurity.ui.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:110) at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274) at org.acegisecurity.wrapper.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:81) at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274) at org.acegisecurity.ui.AbstractProcessingFilter.doFilter(AbstractProcessingFilter.java:217) at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274) at org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:191) at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274) at org.acegisecurity.util.FilterChainProxy.doFilter(FilterChainProxy.java:148) at org.acegisecurity.util.FilterToBeanProxy.doFilter(FilterToBeanProxy.java:90) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:172) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:873) at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665) at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528) at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81) at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689) at java.lang.Thread.run(Thread.java:636) ---------------------------------------------------------------------- >Comment By: Rutger Vos (rvos) Date: 2010-06-01 20:11 Message: We are getting an ELException when getting phyloWSPath of the context object that defines the focal object (e.g. the containing study for a focal tree). The idea is that, when serializing an object such as a tree to RDF, we might want to add rdfs:isDefinedBy which points to the resource identifier of the containing object (the study). We have implemented this with the getContext() method, which for any focal AbstractPersistedObject should return the context object, or null. We get the exception because in some situations the context object might not yet have been initialized, so we can't yet ask it for its phyloWSPath (which is needed to construct its resource address). This is addressed by adding the @Fetch(FetchMode.JOIN) annotation, which I have added to all implementors of getContext(). ---------------------------------------------------------------------- Comment By: Rutger Vos (rvos) Date: 2010-06-01 20:11 Message: Your bug has been resolved. Thanks for the report. ---------------------------------------------------------------------- Comment By: Rutger Vos (rvos) Date: 2010-03-26 11:06 Message: Thanks for reporting this bug. We'll look into it as soon as possible. ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=1126676&aid=2974771&group_id=248804 |
From: <rv...@us...> - 2010-06-01 20:05:39
|
Revision: 702 http://treebase.svn.sourceforge.net/treebase/?rev=702&view=rev Author: rvos Date: 2010-06-01 20:05:30 +0000 (Tue, 01 Jun 2010) Log Message: ----------- Fixes for issue 2974771, ELException when getting phyloWSPath of the context object that defines the focal object (e.g. the containing study). This is addressed by adding the @Fetch(FetchMode.JOIN) annotation. Modified Paths: -------------- trunk/treebase-core/src/main/java/org/cipres/treebase/domain/matrix/MatrixColumn.java trunk/treebase-core/src/main/java/org/cipres/treebase/domain/matrix/MatrixElement.java trunk/treebase-core/src/main/java/org/cipres/treebase/domain/tree/PhyloTree.java trunk/treebase-core/src/main/java/org/cipres/treebase/domain/tree/PhyloTreeNode.java Modified: trunk/treebase-core/src/main/java/org/cipres/treebase/domain/matrix/MatrixColumn.java =================================================================== --- trunk/treebase-core/src/main/java/org/cipres/treebase/domain/matrix/MatrixColumn.java 2010-06-01 17:11:18 UTC (rev 701) +++ trunk/treebase-core/src/main/java/org/cipres/treebase/domain/matrix/MatrixColumn.java 2010-06-01 20:05:30 UTC (rev 702) @@ -18,6 +18,8 @@ import org.hibernate.annotations.BatchSize; import org.hibernate.annotations.Cache; import org.hibernate.annotations.CacheConcurrencyStrategy; +import org.hibernate.annotations.Fetch; +import org.hibernate.annotations.FetchMode; import org.hibernate.annotations.Index; import org.cipres.treebase.domain.AbstractPersistedObject; @@ -78,6 +80,7 @@ // the nullable = false cause the add error code -407, the matrix column is null! // @JoinColumn(name = "MATRIX_ID", insertable = false, updatable = false, nullable = false) @Index(name = "COLUMN_M_IDX") + @Fetch(FetchMode.JOIN) public CharacterMatrix getMatrix() { return mMatrix; } Modified: trunk/treebase-core/src/main/java/org/cipres/treebase/domain/matrix/MatrixElement.java =================================================================== --- trunk/treebase-core/src/main/java/org/cipres/treebase/domain/matrix/MatrixElement.java 2010-06-01 17:11:18 UTC (rev 701) +++ trunk/treebase-core/src/main/java/org/cipres/treebase/domain/matrix/MatrixElement.java 2010-06-01 20:05:30 UTC (rev 702) @@ -20,6 +20,8 @@ import javax.persistence.Transient; import org.hibernate.annotations.BatchSize; +import org.hibernate.annotations.Fetch; +import org.hibernate.annotations.FetchMode; import org.hibernate.annotations.Index; import org.cipres.treebase.domain.AbstractPersistedObject; @@ -119,6 +121,7 @@ @ManyToOne @JoinColumn(name = "MATRIXCOLUMN_ID", nullable = true) @Index(name = "Element_COL_IDX") + @Fetch(FetchMode.JOIN) public MatrixColumn getColumn() { return mColumn; } Modified: trunk/treebase-core/src/main/java/org/cipres/treebase/domain/tree/PhyloTree.java =================================================================== --- trunk/treebase-core/src/main/java/org/cipres/treebase/domain/tree/PhyloTree.java 2010-06-01 17:11:18 UTC (rev 701) +++ trunk/treebase-core/src/main/java/org/cipres/treebase/domain/tree/PhyloTree.java 2010-06-01 20:05:30 UTC (rev 702) @@ -458,6 +458,7 @@ */ @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "STUDY_ID") + @Fetch(FetchMode.JOIN) public Study getStudy() { return mStudy; } @@ -813,6 +814,7 @@ @Override @Transient public Study getContext() { + // org.hibernate.LazyInitializationException return getStudy(); } Modified: trunk/treebase-core/src/main/java/org/cipres/treebase/domain/tree/PhyloTreeNode.java =================================================================== --- trunk/treebase-core/src/main/java/org/cipres/treebase/domain/tree/PhyloTreeNode.java 2010-06-01 17:11:18 UTC (rev 701) +++ trunk/treebase-core/src/main/java/org/cipres/treebase/domain/tree/PhyloTreeNode.java 2010-06-01 20:05:30 UTC (rev 702) @@ -17,6 +17,8 @@ import org.hibernate.annotations.BatchSize; import org.hibernate.annotations.Cache; import org.hibernate.annotations.CacheConcurrencyStrategy; +import org.hibernate.annotations.Fetch; +import org.hibernate.annotations.FetchMode; import org.hibernate.annotations.Index; import org.cipres.treebase.TreebaseUtil; @@ -168,6 +170,7 @@ @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "PHYLOTREE_ID", nullable = false) @Index(name = "TNODE_TREE_IDX") + @Fetch(FetchMode.JOIN) public PhyloTree getTree() { return mTree; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: SourceForge.net <no...@so...> - 2010-06-01 17:31:54
|
Bugs item #2992022, was opened at 2010-04-25 16:04 Message generated for change (Comment added) made by rvos You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=1126676&aid=2992022&group_id=248804 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: ui Group: None Status: Open Priority: 8 Private: No Submitted By: William Piel (sfrgpiel) >Assigned to: William Piel (sfrgpiel) Summary: Yikes when viewing 2164: UTF8 handling problem? Initial Comment: An error is thrown when users try to browse to S2164. This *may* be an issue with UTF8 character set rendering, seeing as this study is from Hungarian authors. http://www.treebase.org/treebase-web/search/study/summary.html?id=2164 Yikes! javax.servlet.jsp.el.ELException: An error occurred while getting property "bibtexReference" from an instance of class org.cipres.treebase.domain.study.ArticleCitation at org.apache.commons.el.Logger.logError(Logger.java:484) at org.apache.commons.el.Logger.logError(Logger.java:588) at org.apache.commons.el.ArraySuffix.evaluate(ArraySuffix.java:318) at org.apache.commons.el.ComplexValue.evaluate(ComplexValue.java:145) at org.apache.commons.el.ExpressionEvaluatorImpl.evaluate(ExpressionEvaluatorImpl.java:263) at org.apache.commons.el.ExpressionEvaluatorImpl.evaluate(ExpressionEvaluatorImpl.java:190) at org.apache.jasper.runtime.PageContextImpl.proprietaryEvaluate(PageContextImpl.java:924) at org.apache.jsp.WEB_002dINF.pages.search.study.nav_jsp._jspx_meth_c_005fout_005f0(nav_jsp.java:285) at org.apache.jsp.WEB_002dINF.pages.search.study.nav_jsp._jspService(nav_jsp.java:89) at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98) at javax.servlet.http.HttpServlet.service(HttpServlet.java:729) at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:331) at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329) at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265) at javax.servlet.http.HttpServlet.service(HttpServlet.java:729) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188) at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:679) at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:584) at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:497) at org.apache.jasper.runtime.JspRuntimeLibrary.include(JspRuntimeLibrary.java:965) at org.apache.jsp.WEB_002dINF.pages.search.study.summary_jsp._jspService(summary_jsp.java:109) at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98) at javax.servlet.http.HttpServlet.service(HttpServlet.java:729) at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:331) at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329) at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265) at javax.servlet.http.HttpServlet.service(HttpServlet.java:729) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188) at com.opensymphony.module.sitemesh.filter.PageFilter.doFilter(PageFilter.java:39) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188) at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:679) at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:461) at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:399) at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:301) at org.springframework.web.servlet.view.InternalResourceView.renderMergedOutputModel(InternalResourceView.java:142) at org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:239) at org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1142) at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:879) at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:792) at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:476) at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:431) at javax.servlet.http.HttpServlet.service(HttpServlet.java:627) at javax.servlet.http.HttpServlet.service(HttpServlet.java:729) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188) at org.tuckey.web.filters.urlrewrite.RuleChain.handleRewrite(RuleChain.java:164) at org.tuckey.web.filters.urlrewrite.RuleChain.doRules(RuleChain.java:141) at org.tuckey.web.filters.urlrewrite.UrlRewriter.processRequest(UrlRewriter.java:90) at org.tuckey.web.filters.urlrewrite.UrlRewriteFilter.doFilter(UrlRewriteFilter.java:406) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188) at org.displaytag.filter.ResponseOverrideFilter.doFilter(ResponseOverrideFilter.java:125) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188) at org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:75) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188) at com.opensymphony.module.sitemesh.filter.PageFilter.parsePage(PageFilter.java:119) at com.opensymphony.module.sitemesh.filter.PageFilter.doFilter(PageFilter.java:55) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188) at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:264) at org.acegisecurity.intercept.web.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:107) at org.acegisecurity.intercept.web.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:72) at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274) at org.acegisecurity.ui.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:110) at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274) at org.acegisecurity.wrapper.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:81) at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274) at org.acegisecurity.ui.AbstractProcessingFilter.doFilter(AbstractProcessingFilter.java:217) at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274) at org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:191) at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274) at org.acegisecurity.util.FilterChainProxy.doFilter(FilterChainProxy.java:148) at org.acegisecurity.util.FilterToBeanProxy.doFilter(FilterToBeanProxy.java:90) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:172) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:873) at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665) at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528) at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81) at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689) at java.lang.Thread.run(Thread.java:636) ---------------------------------------------------------------------- >Comment By: Rutger Vos (rvos) Date: 2010-06-01 17:31 Message: This has nothing to do with UTF-8 handling. It's a database inconsistency: * in the person table, there's both an entry for "Balázs Tímea", person_id=3971 and for "Tímea Balázs", person_id=5609 * in the latter record, first and last name are in the correct order, but the author's email address is missing, and the author order index is 5, on a three-author paper. In the former record, the first and last name are switched around, but everything else is in the correct order. * here's my suggested fix: correct the name order in record 3971, purge record 5609 from person and from citation_author, i.e.: update person set firstname='Tímea', lastname='Balázs' where person_id=3971; delete from citation_author where authors_person_id=5609; delete from person where person_id=5609; ---------------------------------------------------------------------- Comment By: Rutger Vos (rvos) Date: 2010-06-01 17:31 Message: Thanks for reporting this bug. We'll look into it as soon as possible. ---------------------------------------------------------------------- Comment By: Rutger Vos (rvos) Date: 2010-04-27 16:27 Message: Also test this with issue 2669366 ---------------------------------------------------------------------- Comment By: Hilmar Lapp (hlapp) Date: 2010-04-27 15:36 Message: This may indicate a larger problem with UTF8 handling. ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=1126676&aid=2992022&group_id=248804 |
From: <rv...@us...> - 2010-06-01 17:11:24
|
Revision: 701 http://treebase.svn.sourceforge.net/treebase/?rev=701&view=rev Author: rvos Date: 2010-06-01 17:11:18 +0000 (Tue, 01 Jun 2010) Log Message: ----------- Wrapped author name concatenation in try/catch block Modified Paths: -------------- trunk/treebase-core/src/main/java/org/cipres/treebase/domain/study/Citation.java Modified: trunk/treebase-core/src/main/java/org/cipres/treebase/domain/study/Citation.java =================================================================== --- trunk/treebase-core/src/main/java/org/cipres/treebase/domain/study/Citation.java 2010-06-01 16:28:03 UTC (rev 700) +++ trunk/treebase-core/src/main/java/org/cipres/treebase/domain/study/Citation.java 2010-06-01 17:11:18 UTC (rev 701) @@ -475,26 +475,31 @@ public String getAuthorsCitationStyleWithoutHtml() { StringBuilder authorsCitationStyle = new StringBuilder(); - List<Person> authors = getAuthors(); - int size = authors.size(); - - if (size > 0) { - - for (int i = 0; i < size; i++) { - - authorsCitationStyle.append(authors.get(i).getFullNameCitationStyle()); - - if (size > 1 && i == size - 2) { - authorsCitationStyle.append(", & "); - } else if (size > 1 && i < size - 2) { - authorsCitationStyle.append(", "); + try { + List<Person> authors = getAuthors(); + int size = authors.size(); + + if (size > 0) { + + for (int i = 0; i < size; i++) { + + authorsCitationStyle.append(authors.get(i).getFullNameCitationStyle()); + + if (size > 1 && i == size - 2) { + authorsCitationStyle.append(", & "); + } else if (size > 1 && i < size - 2) { + authorsCitationStyle.append(", "); + } } + } - + + authorsCitationStyle.append(" ").append(getPublishYear()); + getDetailedPublicationInformation(authorsCitationStyle, false); } - - authorsCitationStyle.append(" ").append(getPublishYear()); - getDetailedPublicationInformation(authorsCitationStyle, false); + catch ( Exception e ) { + e.printStackTrace(); + } return authorsCitationStyle.toString(); } @@ -525,65 +530,70 @@ @Transient public String getRisReference () { StringBuilder ris = new StringBuilder(), sub = new StringBuilder(); - String citationType = this.getRealCitationType(), cls = "\n"; - boolean isArticle = false, isBook = false, isInBook = false; - if ( citationType.equals(ArticleCitation.CITATION_TYPE_ARTICLE) ) { - ris.append("TY - JOUR\n"); - sub.append("JF - ").append(appendMe(((ArticleCitation)this).getJournal())).append(cls); - sub.append("VL - ").append(appendMe(((ArticleCitation)this).getVolume())).append(cls); - sub.append("IS - ").append(appendMe(((ArticleCitation)this).getIssue())).append(cls); - isArticle = true; - } - else if ( citationType.equals(BookCitation.CITATION_TYPE_BOOK) ) { - ris.append("TY - BOOK\n"); - isBook = true; - } - else if ( citationType.equals(InBookCitation.CITATION_TYPE_BOOKSECTION) ) { - ris.append("TY - CHAP\n"); - sub.append("TI - ").append(appendMe(((InBookCitation)this).getBookTitle())).append(cls); - isInBook = true; - } - if ( isBook || isInBook) { - sub.append("SN - ISBN ").append(appendMe(((BookCitation)this).getISBN())).append(cls); - sub.append("PB - ").append(appendMe(((BookCitation)this).getPublisher())).append(cls); - sub.append("CY - ").append(appendMe(((BookCitation)this).getCity())).append(cls); - catPersonsRis(sub,"ED - ",((BookCitation)this).getEditors()); - } - if ( isInBook || isArticle ) { - String pages = getPages(); - if ( pages != null && pages.matches("^\\d+-\\d+$") ) { - String[] pageRange = pages.split("-"); - sub.append("SP - ").append(pageRange[0]).append(cls); - sub.append("EP - ").append(pageRange[1]).append(cls); + try { + String citationType = this.getRealCitationType(), cls = "\n"; + boolean isArticle = false, isBook = false, isInBook = false; + if ( citationType.equals(ArticleCitation.CITATION_TYPE_ARTICLE) ) { + ris.append("TY - JOUR\n"); + sub.append("JF - ").append(appendMe(((ArticleCitation)this).getJournal())).append(cls); + sub.append("VL - ").append(appendMe(((ArticleCitation)this).getVolume())).append(cls); + sub.append("IS - ").append(appendMe(((ArticleCitation)this).getIssue())).append(cls); + isArticle = true; } - } - ris.append("ID - ").append(getId()).append(cls); - catPersonsRis(ris,"AU - ",getAuthors()); - ris.append("T1 - ").append(appendMe(getTitle())).append(cls); - ris.append("PY - ").append(appendMe(getPublishYear())).append(cls); - String keyWords = getKeywords(); - if ( keyWords != null ) { - String[] words = keyWords.split(",\\s*"); - for ( int i = 0; i < words.length; i++ ) { - ris.append("KW - ").append(appendMe(words[i])).append(cls); + else if ( citationType.equals(BookCitation.CITATION_TYPE_BOOK) ) { + ris.append("TY - BOOK\n"); + isBook = true; + } + else if ( citationType.equals(InBookCitation.CITATION_TYPE_BOOKSECTION) ) { + ris.append("TY - CHAP\n"); + sub.append("TI - ").append(appendMe(((InBookCitation)this).getBookTitle())).append(cls); + isInBook = true; + } + if ( isBook || isInBook) { + sub.append("SN - ISBN ").append(appendMe(((BookCitation)this).getISBN())).append(cls); + sub.append("PB - ").append(appendMe(((BookCitation)this).getPublisher())).append(cls); + sub.append("CY - ").append(appendMe(((BookCitation)this).getCity())).append(cls); + catPersonsRis(sub,"ED - ",((BookCitation)this).getEditors()); } + if ( isInBook || isArticle ) { + String pages = getPages(); + if ( pages != null && pages.matches("^\\d+-\\d+$") ) { + String[] pageRange = pages.split("-"); + sub.append("SP - ").append(pageRange[0]).append(cls); + sub.append("EP - ").append(pageRange[1]).append(cls); + } + } + ris.append("ID - ").append(getId()).append(cls); + catPersonsRis(ris,"AU - ",getAuthors()); + ris.append("T1 - ").append(appendMe(getTitle())).append(cls); + ris.append("PY - ").append(appendMe(getPublishYear())).append(cls); + String keyWords = getKeywords(); + if ( keyWords != null ) { + String[] words = keyWords.split(",\\s*"); + for ( int i = 0; i < words.length; i++ ) { + ris.append("KW - ").append(appendMe(words[i])).append(cls); + } + } + String url = getURL(), doi = getDoi(), pmid = getPMID(); + String theUrl = null; + if ( url != null && ! url.equals("http://") ) { + theUrl = url; + } + else if ( doi != null ) { + theUrl = "http://dx.doi.org/" + doi; + } + else if ( pmid != null ) { + theUrl = "http://pmid.us/" + pmid; + } + ris.append("UR - ").append(appendMe(theUrl)).append(cls); + ris.append("N2 - ").append(appendMe(getAbstract())).append(cls); + ris.append("L3 - ").append(appendMe(getDoi())).append(cls); + ris.append(sub); + ris.append("ER - ").append(cls); } - String url = getURL(), doi = getDoi(), pmid = getPMID(); - String theUrl = null; - if ( url != null && ! url.equals("http://") ) { - theUrl = url; + catch ( Exception e ) { + e.printStackTrace(); } - else if ( doi != null ) { - theUrl = "http://dx.doi.org/" + doi; - } - else if ( pmid != null ) { - theUrl = "http://pmid.us/" + pmid; - } - ris.append("UR - ").append(appendMe(theUrl)).append(cls); - ris.append("N2 - ").append(appendMe(getAbstract())).append(cls); - ris.append("L3 - ").append(appendMe(getDoi())).append(cls); - ris.append(sub); - ris.append("ER - ").append(cls); return ris.toString(); } @@ -603,44 +613,49 @@ @Transient public String getBibtexReference () { StringBuilder bib = new StringBuilder(), sub = new StringBuilder(); - String citationType = this.getRealCitationType(), cls = "},"; - boolean isArticle = false, isBook = false, isInBook = false; - if ( citationType.equals(ArticleCitation.CITATION_TYPE_ARTICLE) ) { - bib.append("@ARTICLE{"); - sub.append("\n\t journal = {").append(appendMe(((ArticleCitation)this).getJournal())).append(cls); - sub.append("\n\t volume = {").append(appendMe(((ArticleCitation)this).getVolume())).append(cls); - sub.append("\n\t number = {").append(appendMe(((ArticleCitation)this).getIssue())).append(cls); - isArticle = true; + try { + String citationType = this.getRealCitationType(), cls = "},"; + boolean isArticle = false, isBook = false, isInBook = false; + if ( citationType.equals(ArticleCitation.CITATION_TYPE_ARTICLE) ) { + bib.append("@ARTICLE{"); + sub.append("\n\t journal = {").append(appendMe(((ArticleCitation)this).getJournal())).append(cls); + sub.append("\n\t volume = {").append(appendMe(((ArticleCitation)this).getVolume())).append(cls); + sub.append("\n\t number = {").append(appendMe(((ArticleCitation)this).getIssue())).append(cls); + isArticle = true; + } + else if ( citationType.equals(BookCitation.CITATION_TYPE_BOOK) ) { + bib.append("@BOOK{"); + isBook = true; + } + else if ( citationType.equals(InBookCitation.CITATION_TYPE_BOOKSECTION) ) { + bib.append("@INCOLLECTION{"); + sub.append("\n\t booktitle = {").append(appendMe(((InBookCitation)this).getBookTitle())).append(cls); + isInBook = true; + } + if ( isBook || isInBook) { + sub.append("\n\t isbn = {").append(appendMe(((BookCitation)this).getISBN())).append(cls); + sub.append("\n\t publisher = {").append(appendMe(((BookCitation)this).getPublisher())).append(cls); + sub.append("\n\t address = {").append(appendMe(((BookCitation)this).getCity())).append(cls); + sub.append("\n\t editor = {").append(appendMe(catPersonsBibtex(((BookCitation)this).getEditors()))).append(cls); + } + if ( isInBook || isArticle ) { + sub.append("\n\t pages = {").append(appendMe(getPages()).replaceFirst("\\-", "--")).append(cls); + } + bib.append("TreeBASE2Ref").append(getId()).append(","); + bib.append("\n\t author = {").append(appendMe(catPersonsBibtex(getAuthors()))).append(cls); + bib.append("\n\t title = {").append(appendMe(getTitle())).append(cls); + bib.append("\n\t year = {").append(appendMe(getPublishYear())).append(cls); + bib.append("\n\t keywords = {").append(appendMe(getKeywords())).append(cls); + bib.append("\n\t doi = {").append(appendMe(getDoi())).append(cls); + bib.append("\n\t url = {").append(appendMe(getURL())).append(cls); + bib.append("\n\t pmid = {").append(appendMe(getPMID())).append(cls); + bib.append(sub); + bib.append("\n\t abstract = {").append(appendMe(getAbstract())).append("}"); + bib.append("\n}"); } - else if ( citationType.equals(BookCitation.CITATION_TYPE_BOOK) ) { - bib.append("@BOOK{"); - isBook = true; + catch ( Exception e ) { + e.printStackTrace(); } - else if ( citationType.equals(InBookCitation.CITATION_TYPE_BOOKSECTION) ) { - bib.append("@INCOLLECTION{"); - sub.append("\n\t booktitle = {").append(appendMe(((InBookCitation)this).getBookTitle())).append(cls); - isInBook = true; - } - if ( isBook || isInBook) { - sub.append("\n\t isbn = {").append(appendMe(((BookCitation)this).getISBN())).append(cls); - sub.append("\n\t publisher = {").append(appendMe(((BookCitation)this).getPublisher())).append(cls); - sub.append("\n\t address = {").append(appendMe(((BookCitation)this).getCity())).append(cls); - sub.append("\n\t editor = {").append(appendMe(catPersonsBibtex(((BookCitation)this).getEditors()))).append(cls); - } - if ( isInBook || isArticle ) { - sub.append("\n\t pages = {").append(appendMe(getPages()).replaceFirst("\\-", "--")).append(cls); - } - bib.append("TreeBASE2Ref").append(getId()).append(","); - bib.append("\n\t author = {").append(appendMe(catPersonsBibtex(getAuthors()))).append(cls); - bib.append("\n\t title = {").append(appendMe(getTitle())).append(cls); - bib.append("\n\t year = {").append(appendMe(getPublishYear())).append(cls); - bib.append("\n\t keywords = {").append(appendMe(getKeywords())).append(cls); - bib.append("\n\t doi = {").append(appendMe(getDoi())).append(cls); - bib.append("\n\t url = {").append(appendMe(getURL())).append(cls); - bib.append("\n\t pmid = {").append(appendMe(getPMID())).append(cls); - bib.append(sub); - bib.append("\n\t abstract = {").append(appendMe(getAbstract())).append("}"); - bib.append("\n}"); return bib.toString(); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rv...@us...> - 2010-06-01 16:28:09
|
Revision: 700 http://treebase.svn.sourceforge.net/treebase/?rev=700&view=rev Author: rvos Date: 2010-06-01 16:28:03 +0000 (Tue, 01 Jun 2010) Log Message: ----------- Added UTF-8 specifier in content-type header Modified Paths: -------------- trunk/treebase-web/src/main/java/org/cipres/treebase/web/controllers/AbstractDownloadController.java Modified: trunk/treebase-web/src/main/java/org/cipres/treebase/web/controllers/AbstractDownloadController.java =================================================================== --- trunk/treebase-web/src/main/java/org/cipres/treebase/web/controllers/AbstractDownloadController.java 2010-05-28 08:03:51 UTC (rev 699) +++ trunk/treebase-web/src/main/java/org/cipres/treebase/web/controllers/AbstractDownloadController.java 2010-06-01 16:28:03 UTC (rev 700) @@ -26,8 +26,8 @@ private NexusService mNexmlService; private NexusService mRdfaService; private SubmissionService mSubmissionService; - private static String mNexmlContentType = "application/xml"; - private static String mRdfContentType = "application/rdf+xml"; + private static String mNexmlContentType = "application/xml; charset=UTF-8"; + private static String mRdfContentType = "application/rdf+xml; charset=UTF-8"; /** * Return the StudyService field. This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rv...@us...> - 2010-05-28 08:03:58
|
Revision: 699 http://treebase.svn.sourceforge.net/treebase/?rev=699&view=rev Author: rvos Date: 2010-05-28 08:03:51 +0000 (Fri, 28 May 2010) Log Message: ----------- Specified content-type (utf-8) in http header Modified Paths: -------------- trunk/treebase-web/src/main/webapp/WEB-INF/pages/searchResultsAsRDF.jsp Modified: trunk/treebase-web/src/main/webapp/WEB-INF/pages/searchResultsAsRDF.jsp =================================================================== --- trunk/treebase-web/src/main/webapp/WEB-INF/pages/searchResultsAsRDF.jsp 2010-05-28 07:59:14 UTC (rev 698) +++ trunk/treebase-web/src/main/webapp/WEB-INF/pages/searchResultsAsRDF.jsp 2010-05-28 08:03:51 UTC (rev 699) @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <%@ include file="/common/taglibs.jsp"%> -<% response.setContentType("application/rss+xml"); %> +<% response.setContentType("application/rss+xml; charset=UTF-8"); %> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dcterms="http://purl.org/dc/terms/" This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rv...@us...> - 2010-05-28 07:59:21
|
Revision: 698 http://treebase.svn.sourceforge.net/treebase/?rev=698&view=rev Author: rvos Date: 2010-05-28 07:59:14 +0000 (Fri, 28 May 2010) Log Message: ----------- Specified content-type (utf-8) in http header Modified Paths: -------------- trunk/treebase-web/src/main/webapp/WEB-INF/pages/anyObjectAsRDF.jsp Modified: trunk/treebase-web/src/main/webapp/WEB-INF/pages/anyObjectAsRDF.jsp =================================================================== --- trunk/treebase-web/src/main/webapp/WEB-INF/pages/anyObjectAsRDF.jsp 2010-05-24 16:54:27 UTC (rev 697) +++ trunk/treebase-web/src/main/webapp/WEB-INF/pages/anyObjectAsRDF.jsp 2010-05-28 07:59:14 UTC (rev 698) @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <%@ include file="/common/taglibs.jsp"%> -<% response.setContentType("application/rss+xml"); %> +<% response.setContentType("application/rss+xml; charset=UTF-8"); %> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <hl...@us...> - 2010-05-24 16:54:34
|
Revision: 697 http://treebase.svn.sourceforge.net/treebase/?rev=697&view=rev Author: hlapp Date: 2010-05-24 16:54:27 +0000 (Mon, 24 May 2010) Log Message: ----------- Fix for the null pointer exception in TaxonLabelByLabelComparator. Modified Paths: -------------- trunk/treebase-web/src/main/java/org/cipres/treebase/web/controllers/SearchSummaryController.java Modified: trunk/treebase-web/src/main/java/org/cipres/treebase/web/controllers/SearchSummaryController.java =================================================================== --- trunk/treebase-web/src/main/java/org/cipres/treebase/web/controllers/SearchSummaryController.java 2010-05-01 15:13:17 UTC (rev 696) +++ trunk/treebase-web/src/main/java/org/cipres/treebase/web/controllers/SearchSummaryController.java 2010-05-24 16:54:27 UTC (rev 697) @@ -547,7 +547,11 @@ private class TaxonLabelByLabelComparator implements Comparator<TaxonLabel> { public int compare(TaxonLabel a, TaxonLabel b) { - return a.getTaxonLabel().compareTo(b.getTaxonLabel()); + String l1 = (a == null) ? "" : a.getTaxonLabel(); + String l2 = (b == null) ? "" : b.getTaxonLabel(); + if (l1 == null) l1 = ""; + if (l2 == null) l2 = ""; + return l1.compareTo(l2); } } } \ No newline at end of file This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: SourceForge.net <no...@so...> - 2010-05-22 15:25:49
|
Bugs item #3005716, was opened at 2010-05-22 11:25 Message generated for change (Tracker Item Submitted) made by sfrgpiel You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=1126676&aid=3005716&group_id=248804 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: data Group: None Status: Open Priority: 7 Private: No Submitted By: William Piel (sfrgpiel) Assigned to: Rutger Vos (rvos) Summary: Tree URI results in Yikes Initial Comment: If I follow a URI for a tree, instead of getting an RSS feed I get a Yikes error. http://www.treebase.org/treebase-web/phylows/tree/TB2:Tr6031 Yikes! javax.servlet.jsp.el.ELException: An error occurred while getting property "phyloWSPath" from an instance of class org.cipres.treebase.domain.study.Study$$EnhancerByCGLIB$$9d782eec at org.apache.commons.el.Logger.logError(Logger.java:484) at org.apache.commons.el.Logger.logError(Logger.java:588) at org.apache.commons.el.ArraySuffix.evaluate(ArraySuffix.java:318) at org.apache.commons.el.ComplexValue.evaluate(ComplexValue.java:145) at org.apache.commons.el.ExpressionEvaluatorImpl.evaluate(ExpressionEvaluatorImpl.java:263) at org.apache.commons.el.ExpressionEvaluatorImpl.evaluate(ExpressionEvaluatorImpl.java:190) at org.apache.jasper.runtime.PageContextImpl.proprietaryEvaluate(PageContextImpl.java:924) at org.apache.jsp.WEB_002dINF.pages.anyObjectAsRDF_jsp._jspx_meth_c_005fout_005f1(anyObjectAsRDF_jsp.java:224) at org.apache.jsp.WEB_002dINF.pages.anyObjectAsRDF_jsp._jspx_meth_c_005fif_005f0(anyObjectAsRDF_jsp.java:199) at org.apache.jsp.WEB_002dINF.pages.anyObjectAsRDF_jsp._jspService(anyObjectAsRDF_jsp.java:100) at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98) at javax.servlet.http.HttpServlet.service(HttpServlet.java:729) at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:331) at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329) at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265) at javax.servlet.http.HttpServlet.service(HttpServlet.java:729) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188) at com.opensymphony.module.sitemesh.filter.PageFilter.doFilter(PageFilter.java:39) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188) at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:679) at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:461) at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:399) at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:301) at org.springframework.web.servlet.view.InternalResourceView.renderMergedOutputModel(InternalResourceView.java:142) at org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:239) at org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1142) at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:879) at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:792) at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:476) at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:431) at javax.servlet.http.HttpServlet.service(HttpServlet.java:627) at javax.servlet.http.HttpServlet.service(HttpServlet.java:729) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188) at org.tuckey.web.filters.urlrewrite.RuleChain.handleRewrite(RuleChain.java:164) at org.tuckey.web.filters.urlrewrite.RuleChain.doRules(RuleChain.java:141) at org.tuckey.web.filters.urlrewrite.UrlRewriter.processRequest(UrlRewriter.java:90) at org.tuckey.web.filters.urlrewrite.UrlRewriteFilter.doFilter(UrlRewriteFilter.java:406) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188) at com.opensymphony.module.sitemesh.filter.PageFilter.parsePage(PageFilter.java:119) at com.opensymphony.module.sitemesh.filter.PageFilter.doFilter(PageFilter.java:55) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188) at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:264) at org.acegisecurity.intercept.web.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:107) at org.acegisecurity.intercept.web.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:72) at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274) at org.acegisecurity.ui.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:110) at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274) at org.acegisecurity.wrapper.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:81) at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274) at org.acegisecurity.ui.AbstractProcessingFilter.doFilter(AbstractProcessingFilter.java:217) at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274) at org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:191) at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274) at org.acegisecurity.util.FilterChainProxy.doFilter(FilterChainProxy.java:148) at org.acegisecurity.util.FilterToBeanProxy.doFilter(FilterToBeanProxy.java:90) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:172) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:873) at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665) at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528) at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81) at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689) at java.lang.Thread.run(Thread.java:636) ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=1126676&aid=3005716&group_id=248804 |