Changeset 1019
- Timestamp:
- 06/15/09 13:15:20 (4 years ago)
- Location:
- trunk
- Files:
-
- 30 modified
-
mpdb-client/src/edu/rpi/metpetdb/client/ui/input/attributes/specific/search/SearchCollectorsAttribute.java (modified) (1 diff)
-
mpdb-client/src/edu/rpi/metpetdb/client/ui/input/attributes/specific/search/SearchCountriesAttribute.java (modified) (1 diff)
-
mpdb-client/src/edu/rpi/metpetdb/client/ui/input/attributes/specific/search/SearchOwnersAttribute.java (modified) (1 diff)
-
mpdb-client/src/edu/rpi/metpetdb/client/ui/input/attributes/specific/search/SearchReferenceAttribute.java (modified) (1 diff)
-
mpdb-client/src/edu/rpi/metpetdb/client/ui/input/attributes/specific/search/SearchRegionAttribute.java (modified) (1 diff)
-
mpdb-common/src/edu/rpi/metpetdb/client/model/Element.java (modified) (1 diff)
-
mpdb-common/src/edu/rpi/metpetdb/client/model/MetamorphicGrade.java (modified) (1 diff)
-
mpdb-common/src/edu/rpi/metpetdb/client/model/Mineral.java (modified) (1 diff)
-
mpdb-common/src/edu/rpi/metpetdb/client/model/Oxide.java (modified) (1 diff)
-
mpdb-common/src/edu/rpi/metpetdb/client/model/Region.java (modified) (1 diff)
-
mpdb-common/src/edu/rpi/metpetdb/client/model/RockType.java (modified) (1 diff)
-
mpdb-common/src/edu/rpi/metpetdb/client/model/Sample.java (modified) (1 diff)
-
mpdb-common/src/edu/rpi/metpetdb/client/service/ReferenceService.java (modified) (1 diff)
-
mpdb-common/src/edu/rpi/metpetdb/client/service/ReferenceServiceAsync.java (modified) (1 diff)
-
mpdb-common/src/edu/rpi/metpetdb/client/service/RegionService.java (modified) (1 diff)
-
mpdb-common/src/edu/rpi/metpetdb/client/service/RegionServiceAsync.java (modified) (1 diff)
-
mpdb-common/src/edu/rpi/metpetdb/client/service/SampleService.java (modified) (1 diff)
-
mpdb-common/src/edu/rpi/metpetdb/client/service/SampleServiceAsync.java (modified) (1 diff)
-
mpdb-common/src/edu/rpi/metpetdb/client/service/UserService.java (modified) (1 diff)
-
mpdb-common/src/edu/rpi/metpetdb/client/service/UserServiceAsync.java (modified) (1 diff)
-
mpdb-server/src/edu/rpi/metpetdb/server/dao/Reference.hbm.xml (modified) (2 diffs)
-
mpdb-server/src/edu/rpi/metpetdb/server/dao/Region.hbm.xml (modified) (2 diffs)
-
mpdb-server/src/edu/rpi/metpetdb/server/dao/User.hbm.xml (modified) (2 diffs)
-
mpdb-server/src/edu/rpi/metpetdb/server/impl/ReferenceServiceImpl.java (modified) (2 diffs)
-
mpdb-server/src/edu/rpi/metpetdb/server/impl/RegionServiceImpl.java (modified) (2 diffs)
-
mpdb-server/src/edu/rpi/metpetdb/server/impl/SampleServiceImpl.java (modified) (3 diffs)
-
mpdb-server/src/edu/rpi/metpetdb/server/impl/SearchServiceImpl.java (modified) (1 diff)
-
mpdb-server/src/edu/rpi/metpetdb/server/impl/UserServiceImpl.java (modified) (2 diffs)
-
mpdb-server/src/edu/rpi/metpetdb/server/search/SearchDb.java (modified) (6 diffs)
-
mpdb-server/src/edu/rpi/metpetdb/server/search/SearchIPhone.java (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/mpdb-client/src/edu/rpi/metpetdb/client/ui/input/attributes/specific/search/SearchCollectorsAttribute.java
r873 r1019  29 29 @Override 30 30 public void begin() { 31  MpDb.sample_svc.allCollectors(this);  31 int userId = 0;  32 if (MpDb.isLoggedIn())  33 userId = MpDb.currentUser().getId();  34 MpDb.sample_svc.viewableCollectorsForUser(userId, this); 32 35 } 33 36 public void onSuccess(final Object result) { -
trunk/mpdb-client/src/edu/rpi/metpetdb/client/ui/input/attributes/specific/search/SearchCountriesAttribute.java
r873 r1019  29 29 @Override 30 30 public void begin() { 31  MpDb.sample_svc.allCountries(this);  31 int userId = 0;  32 if (MpDb.isLoggedIn())  33 userId = MpDb.currentUser().getId();  34 MpDb.sample_svc.viewableCountriesForUser(userId, this); 32 35 } 33 36 public void onSuccess(final Object result) { -
trunk/mpdb-client/src/edu/rpi/metpetdb/client/ui/input/attributes/specific/search/SearchOwnersAttribute.java
r891 r1019  29 29 @Override 30 30 public void begin() { 31  MpDb.user_svc.allNames(this);  31 int userId = 0;  32 if (MpDb.isLoggedIn())  33 userId = MpDb.currentUser().getId();  34 MpDb.user_svc.viewableNamesForUser(userId, this); 32 35 } 33 36 public void onSuccess(final Object result) { -
trunk/mpdb-client/src/edu/rpi/metpetdb/client/ui/input/attributes/specific/search/SearchReferenceAttribute.java
r873 r1019  29 29 @Override 30 30 public void begin() { 31  MpDb.reference_svc.allReferences(this);  31 int userId = 0;  32 if (MpDb.isLoggedIn())  33 userId = MpDb.currentUser().getId();  34 MpDb.reference_svc.viewableReferencesForUser(userId, this); 32 35 } 33 36 public void onSuccess(final Object result) { -
trunk/mpdb-client/src/edu/rpi/metpetdb/client/ui/input/attributes/specific/search/SearchRegionAttribute.java
r873 r1019  29 29 @Override 30 30 public void begin() { 31  MpDb.region_svc.allNames(this);  31 int userId = 0;  32 if (MpDb.isLoggedIn())  33 userId = MpDb.currentUser().getId();  34 MpDb.region_svc.viewableNamesForUser(userId, this); 32 35 } 33 36 public void onSuccess(final Object result) { -
trunk/mpdb-common/src/edu/rpi/metpetdb/client/model/Element.java
r753 r1019 Â 15 15 private String name;Â 16 16 private String alternateName;Â 17 Â @Field(index = Index. TOKENIZED, store = Store.NO)ÂÂ 17 @Field(index = Index.UN_TOKENIZED, store = Store.NO)Â 18 18 private String symbol;Â 19 19 private int atomicNumber;Â -
trunk/mpdb-common/src/edu/rpi/metpetdb/client/model/MetamorphicGrade.java
r734 r1019 Â 12 12 private short id;Â 13 13 Â 14 Â @Field(index = Index. TOKENIZED, store = Store.NO)ÂÂ 14 @Field(index = Index.UN_TOKENIZED, store = Store.NO)Â 15 15 private String name;Â 16 16 Â -
trunk/mpdb-common/src/edu/rpi/metpetdb/client/model/Mineral.java
r963 r1019 Â 17 17 private Short parentId;Â 18 18 private Short realMineralId;Â 19 Â @Field(index = Index. TOKENIZED, store = Store.NO)ÂÂ 19 @Field(index = Index.UN_TOKENIZED, store = Store.NO)Â 20 20 private String name;Â 21 21 Â -
trunk/mpdb-common/src/edu/rpi/metpetdb/client/model/Oxide.java
r873 r1019 Â 13 13 private short oxideId;Â 14 14 private short oxidationState;Â 15 Â @Field(index = Index. TOKENIZED, store = Store.NO)ÂÂ 15 @Field(index = Index.UN_TOKENIZED, store = Store.NO)Â 16 16 private String species;Â 17 17 private Float weight;Â -
trunk/mpdb-common/src/edu/rpi/metpetdb/client/model/Region.java
r734 r1019 Â 11 11 private short id;Â 12 12 Â 13 Â @Field(index = Index. TOKENIZED)ÂÂ 13 @Field(index = Index.UN_TOKENIZED)Â 14 14 private String name;Â 15 15 Â -
trunk/mpdb-common/src/edu/rpi/metpetdb/client/model/RockType.java
r741 r1019 Â 9 9 Â 10 10 private short id;Â 11 Â @Field(index = Index. TOKENIZED, store = Store.NO)ÂÂ 11 @Field(index = Index.UN_TOKENIZED, store = Store.NO)Â 12 12 private String rockType;Â 13 13 Â -
trunk/mpdb-common/src/edu/rpi/metpetdb/client/model/Sample.java
r1013 r1019 Â 69 69 private String description;Â 70 70 Â 71 Â @Field(index = Index. TOKENIZED, store = Store.NO)ÂÂ 71 @Field(index = Index.UN_TOKENIZED, store = Store.NO)Â 72 72 private String country;Â 73 73 Â 74 Â @Field(index = Index. TOKENIZED, store = Store.NO)ÂÂ 74 @Field(index = Index.UN_TOKENIZED, store = Store.NO)Â 75 75 private String collector;Â 76 76 Â -
trunk/mpdb-common/src/edu/rpi/metpetdb/client/service/ReferenceService.java
r811 r1019 Â 9 9 public interface ReferenceService extends RemoteService {Â 10 10 Set<String> allReferences() throws MpDbException;Â Â 11 Â Â 12 Set<String> viewableReferencesForUser(final int userId) throws MpDbException;Â 11 13 }Â 12 14 Â -
trunk/mpdb-common/src/edu/rpi/metpetdb/client/service/ReferenceServiceAsync.java
r535 r1019 Â 7 7 public interface ReferenceServiceAsync {Â 8 8 void allReferences(AsyncCallback<Set<String>> ac);Â Â 9 Â Â 10 void viewableReferencesForUser(int userId, AsyncCallback<Set<String>> ac);Â 9 11 }Â -
trunk/mpdb-common/src/edu/rpi/metpetdb/client/service/RegionService.java
r811 r1019 Â 9 9 public interface RegionService extends RemoteService {Â 10 10 Set<String> allNames() throws MpDbException;Â Â 11 Â Â 12 Set<String> viewableNamesForUser(final int userId) throws MpDbException;Â 11 13 }Â -
trunk/mpdb-common/src/edu/rpi/metpetdb/client/service/RegionServiceAsync.java
r535 r1019 Â 5 5 import com.google.gwt.user.client.rpc.AsyncCallback;Â 6 6 Â Â 7 import edu.rpi.metpetdb.client.error.MpDbException;Â Â 8 Â 7 9 public interface RegionServiceAsync {Â 8 10 void allNames(AsyncCallback<Set<String>> ac);Â Â 11 Â Â 12 void viewableNamesForUser(int userId, AsyncCallback<Set<String>> ac);Â 9 13 }Â -
trunk/mpdb-common/src/edu/rpi/metpetdb/client/service/SampleService.java
r889 r1019 Â 36 36 Set<String> allCountries() throws MpDbException;Â 37 37 Â Â 38 Set<String> viewableCollectorsForUser(final int userId) throws MpDbException;Â Â 39 Â Â 40 Set<String> viewableCountriesForUser(final int userId) throws MpDbException;Â Â 41 Â 38 42 List<Sample> allSamplesForUser(final long id) throws MpDbException;Â 39 43 Â -
trunk/mpdb-common/src/edu/rpi/metpetdb/client/service/SampleServiceAsync.java
r889 r1019 Â 39 39 void allCountries(AsyncCallback<Set<String>> ac);Â 40 40 Â Â 41 void viewableCountriesForUser(int userId, AsyncCallback<Set<String>> ac);Â Â 42 Â Â 43 void viewableCollectorsForUser(int userId, AsyncCallback<Set<String>> ac);Â Â 44 Â 41 45 void allSamplesForUser(long id, AsyncCallback<List<Sample>> ac);Â 42 46 }Â -
trunk/mpdb-common/src/edu/rpi/metpetdb/client/service/UserService.java
r929 r1019  132 132 Set<String> allNames() throws MpDbException; 133 133   134 Set<String> viewableNamesForUser(final int userId) throws MpDbException;  135  134 136 User confirmUser(String confirmationCode) throws MpDbException, 135 137 LoginRequiredException; -
trunk/mpdb-common/src/edu/rpi/metpetdb/client/service/UserServiceAsync.java
r919 r1019 Â 34 34 Â 35 35 void allNames(AsyncCallback<Set<String>> ac);Â Â 36 Â Â 37 void viewableNamesForUser(int userId, AsyncCallback<Set<String>> ac);Â 36 38 Â 37 39 void save(User u, AsyncCallback<User> ac);Â -
trunk/mpdb-server/src/edu/rpi/metpetdb/server/dao/Reference.hbm.xml
r535 r1019  11 11 </id> 12 12 <property name="name" column="name"/>  13   14 <filter name="hasSamplePublicOrUser"  15 condition="(exists (select 1 from sample_reference sr where sr.reference_id = reference_id   16 and exists ( select 1 from samples s where s.sample_id = sr.sample_id   17 and (s.public_data = 'Y' or s.user_id = :userId))))" /> 13 18 </class> 14 19  … …  23 28 order by r.name 24 29 </query>  30   31 <filter-def name="hasSamplePublicOrUser">  32 <filter-param name="userId" type="int" />  33 </filter-def> 25 34 </hibernate-mapping> -
trunk/mpdb-server/src/edu/rpi/metpetdb/server/dao/Region.hbm.xml
r535 r1019  11 11 </id> 12 12 <property name="name" column="name"/>  13   14   15 <filter name="hasSamplePublicOrUser"  16 condition="(exists (select 1 from sample_regions sr where sr.region_id = region_id   17 and exists ( select 1 from samples s where s.sample_id = sr.sample_id   18 and (s.public_data = 'Y' or s.user_id = :userId))))" /> 13 19 </class> 14 20  … …  27 33 order by r.name 28 34 </query>  35   36 <filter-def name="hasSamplePublicOrUser">  37 <filter-param name="userId" type="int" />  38 </filter-def> 29 39 </hibernate-mapping> -
trunk/mpdb-server/src/edu/rpi/metpetdb/server/dao/User.hbm.xml
r1015 r1019  36 36  37 37 <many-to-one name="role" column="role_id"/>  38   39 <filter name="hasSamplePublicOrUser"  40 condition="(exists (select 1 from samples s where s.user_id = user_id and s.public_data = 'Y')   41 or user_id = :userId)" /> 38 42 </class> 39 43  … …  73 77 order by lower(u.name) 74 78 </query>  79   80 <filter-def name="hasSamplePublicOrUser">  81 <filter-param name="userId" type="int" />  82 </filter-def> 75 83 </hibernate-mapping> -
trunk/mpdb-server/src/edu/rpi/metpetdb/server/impl/ReferenceServiceImpl.java
r811 r1019  8 8 import edu.rpi.metpetdb.server.MpDbServlet; 9 9 import edu.rpi.metpetdb.server.dao.impl.ReferenceDAO;  10 import edu.rpi.metpetdb.server.dao.impl.RegionDAO; 10 11  11 12 public class ReferenceServiceImpl extends MpDbServlet implements ReferenceService { … …  13 14  14 15 public Set<String> allReferences() throws MpDbException { 15  final Object[] l = (new ReferenceDAO(this.currentSession())).allReferences();  16 return objectArrayToStringSet((new ReferenceDAO(this.currentSession())).allReferences());  17 }  18   19 public Set<String> viewableReferencesForUser(final int userId) throws MpDbException {  20 this.currentSession().enableFilter("hasSamplePublicOrUser").setParameter("userId", userId);  21 return objectArrayToStringSet((new ReferenceDAO(this.currentSession())).allReferences());  22 }   23   24 private Set<String> objectArrayToStringSet(final Object[] o){ 16 25 final Set<String> options = new HashSet(); 17  for (int i = 0; i < l.length; i++){Â18  if ( l[i] != null)Â19  options.add( l[i].toString()); 26 for (int i = 0; i < o.length; i++){  27 if (o[i] != null)  28 options.add(o[i].toString()); 20 29 } 21 30 return options; -
trunk/mpdb-server/src/edu/rpi/metpetdb/server/impl/RegionServiceImpl.java
r811 r1019  5 5  6 6 import edu.rpi.metpetdb.client.error.MpDbException;  7 import edu.rpi.metpetdb.client.model.User; 7 8 import edu.rpi.metpetdb.client.service.RegionService; 8 9 import edu.rpi.metpetdb.server.MpDbServlet; … …  13 14  14 15 public Set<String> allNames() throws MpDbException { 15  final Object[] l = (new RegionDAO(this.currentSession())).allNames();  16 return objectArrayToStringSet((new RegionDAO(this.currentSession())).allNames());  17 }  18   19 public Set<String> viewableNamesForUser(final int userId) throws MpDbException {  20 this.currentSession().enableFilter("hasSamplePublicOrUser").setParameter("userId", userId);  21 return objectArrayToStringSet((new RegionDAO(this.currentSession())).allNames());  22 }  23   24 private Set<String> objectArrayToStringSet(final Object[] o){ 16 25 final Set<String> options = new HashSet(); 17  for (int i = 0; i < l.length; i++){Â18  if ( l[i] != null)Â19  options.add( l[i].toString()); 26 for (int i = 0; i < o.length; i++){  27 if (o[i] != null)  28 options.add(o[i].toString()); 20 29 } 21 30 return options; 22 31 } 23 32  24  Â25 33 } -
trunk/mpdb-server/src/edu/rpi/metpetdb/server/impl/SampleServiceImpl.java
r993 r1019  15 15 import edu.rpi.metpetdb.client.service.SampleService; 16 16 import edu.rpi.metpetdb.server.MpDbServlet;  17 import edu.rpi.metpetdb.server.dao.impl.RegionDAO; 17 18 import edu.rpi.metpetdb.server.dao.impl.SampleDAO; 18 19  … …  45 46  46 47 public Set<String> allCollectors() throws MpDbException { 47  final Object[] l = (new SampleDAO(this.currentSession())).allCollectors(); 48  final Set<String> options = new HashSet<String>(); 49  for (int i = 0; i < l.length; i++){ 50  if (l[i] != null) 51  options.add(l[i].toString()); 52  } 53  return options;  48 return objectArrayToStringSet((new SampleDAO(this.currentSession())).allCollectors());  49 }  50   51 public Set<String> viewableCollectorsForUser(final int userId) throws MpDbException {  52 this.currentSession().enableFilter("samplePublicOrUser").setParameter("userId", userId);  53 return objectArrayToStringSet((new SampleDAO(this.currentSession())).allCollectors()); 54 54 } 55 55  56 56 public Set<String> allCountries() throws MpDbException { 57  final Object[] l = (new SampleDAO(this.currentSession())).allCountries(); 58  final Set<String> options = new HashSet<String>(); 59  for (int i = 0; i < l.length; i++){ 60  if (l[i] != null) 61  options.add(l[i].toString()); 62  } 63  return options;  57 return objectArrayToStringSet((new SampleDAO(this.currentSession())).allCountries()); 64 58 }  59   60 public Set<String> viewableCountriesForUser(final int userId) throws MpDbException {  61 this.currentSession().enableFilter("samplePublicOrUser").setParameter("userId", userId);  62 return objectArrayToStringSet((new SampleDAO(this.currentSession())).allCountries());  63 }  64  65 65  66 66 public Sample details(final long id) throws MpDbException { … …  113 113 dao.delete(s); 114 114 }  115   116 private Set<String> objectArrayToStringSet(final Object[] o){  117 final Set<String> options = new HashSet();  118 for (int i = 0; i < o.length; i++){  119 if (o[i] != null)  120 options.add(o[i].toString());  121 }  122 return options;  123 } 115 124 } -
trunk/mpdb-server/src/edu/rpi/metpetdb/server/impl/SearchServiceImpl.java
r915 r1019  28 28 public Results<Sample> sampleSearch(final PaginationParameters p, 29 29 SearchSample searchSamp, User userSearching) throws MpDbException { 30  return (SearchDb.sampleSearch(p, searchSamp, userSearching )); 30 return (SearchDb.sampleSearch(p, searchSamp, userSearching, this.currentSession())); 31 31 } 32 32  -
trunk/mpdb-server/src/edu/rpi/metpetdb/server/impl/UserServiceImpl.java
r929 r1019  28 28 import edu.rpi.metpetdb.server.EmailSupport; 29 29 import edu.rpi.metpetdb.server.MpDbServlet;  30 import edu.rpi.metpetdb.server.dao.impl.RegionDAO; 30 31 import edu.rpi.metpetdb.server.dao.impl.RoleChangeDAO; 31 32 import edu.rpi.metpetdb.server.dao.impl.UserDAO; … …  66 67 return (user); 67 68 } 68    69  69 70 public Set<String> allNames() throws MpDbException { 70  final Object[] l = (new UserDAO(this.currentSession())).allNames(); 71  final Set<String> options = new HashSet<String>(); 72  for (int i = 0; i < l.length; i++) { 73  if (l[i] != null) 74  options.add(l[i].toString());  71 return objectArrayToStringSet((new UserDAO(this.currentSession())).allNames());  72 }  73   74 public Set<String> viewableNamesForUser(final int userId) throws MpDbException {  75 this.currentSession().enableFilter("hasSamplePublicOrUser").setParameter("userId", userId);  76 return objectArrayToStringSet((new UserDAO(this.currentSession())).allNames());  77 }  78   79 private Set<String> objectArrayToStringSet(final Object[] o){  80 final Set<String> options = new HashSet();  81 for (int i = 0; i < o.length; i++){  82 if (o[i] != null)  83 options.add(o[i].toString()); 75 84 } 76 85 return options; -
trunk/mpdb-server/src/edu/rpi/metpetdb/server/search/SearchDb.java
r1011 r1019  52 52  53 53 public static Results<Sample> sampleSearch(final PaginationParameters p, 54  SearchSample searchSamp, User userSearching ) throws MpDbException { 54 SearchSample searchSamp, User userSearching, Session session) throws MpDbException { 55 55  56 56 // Either do chemical analysis -> subsample -> Sample search if they … …  64 64 else 65 65 userId = u.getId(); 66  Session session = DataStore.open();Â67 66 DataStore.enableSecurityFilters(session, userId); 68 67 FullTextSession fullTextSession = Search.createFullTextSession(session); … …  130 129 return results; 131 130 } catch (CallbackException e) { 132  session.clear();Â133 131 throw ConvertSecurityException.convertToException(e); 134  } finally {Â135  session.close();Â136 132 } 137 133 } … …  159 155 return results; 160 156 } catch (CallbackException e) { 161  session.clear();Â162 157 throw ConvertSecurityException.convertToException(e); 163  } finally {Â164  session.close();Â165 158 } 166 159 } … …  204 197 return results; 205 198 } catch (CallbackException e) { 206  session.clear();Â207 199 throw ConvertSecurityException.convertToException(e); 208  } finally { 209  session.close(); 210  }  200 }  211 201 } else { 212 202 Query fullQuery; … …  268 258 return results; 269 259 } catch (CallbackException e) { 270  session.clear();Â271 260 throw ConvertSecurityException.convertToException(e); 272  } finally { 273  session.close(); 274  }  261 }  275 262 } 276 263 } -
trunk/mpdb-server/src/edu/rpi/metpetdb/server/search/SearchIPhone.java
r1011 r1019  12 12 import javax.servlet.http.HttpServletResponse; 13 13   14 import org.hibernate.Session; 14 15 import org.postgis.LinearRing; 15 16 import org.postgis.Point; … …  138 139  139 140 private Results<Sample> search(final Collection<String> regions){  141 Session session = DataStore.open(); 140 142 try{ 141 143 SearchSample s = new SearchSample(); 142 144 for (String r : regions){ 143 145 s.addRegion(r); 144  } Â145  return SearchDb.sampleSearch(null, s, null); 146 }   147 return search(s); 146 148 } 147 149 catch (Exception e){ 148 150 throw new IllegalStateException(e.getMessage()); 149  } 150  } 151   152  private Results<Sample> search(final Double lat, final Double lng){  151 } finally{  152 session.close();  153 }  154 }  155   156 private Results<Sample> search(final SearchSample s){  157 Session session = DataStore.open();  158 try{  159 return SearchDb.sampleSearch(null, s, null, session);  160 }  161 catch(Exception e){  162 throw new IllegalStateException(e.getMessage());  163 } finally {  164 session.close();  165 }  166 }  167   168 private Results<Sample> search(final Double lat, final Double lng){  153 169 try{ 154 170 SearchSample s = new SearchSample(); … …  182 198 boundingBox.dimension = 2; 183 199 s.setBoundingBox(boundingBox); 184  return SearchDb.sampleSearch(null, s, null); 200 return search(s); 185 201  186 202 } catch (final Exception ioe){Â
