Project

General

Profile

« Previous | Next » 

Revision 070d8fe4

Added by Niels Hoffmann over 13 years ago

Changed exception handling

View differences:

cdmlib-services/src/test/java/eu/etaxonomy/cdm/test/function/TestDatabase.java
21 21

  
22 22
import org.apache.log4j.Logger;
23 23
import org.hibernate.mapping.Column;
24
import org.junit.Test;
25 24
import org.springframework.core.io.ClassPathResource;
26 25
import org.springframework.core.io.Resource;
27 26

  
......
39 38
import eu.etaxonomy.cdm.model.agent.Contact;
40 39
import eu.etaxonomy.cdm.model.agent.Person;
41 40
import eu.etaxonomy.cdm.model.common.Annotation;
42
import eu.etaxonomy.cdm.model.common.AnnotationType;
43 41
import eu.etaxonomy.cdm.model.common.Language;
44
import eu.etaxonomy.cdm.model.common.init.TermNotFoundException;
45 42
import eu.etaxonomy.cdm.model.description.CommonTaxonName;
46 43
import eu.etaxonomy.cdm.model.description.DescriptionBase;
47 44
import eu.etaxonomy.cdm.model.description.Feature;
......
56 53
import eu.etaxonomy.cdm.model.reference.ReferenceBase;
57 54
import eu.etaxonomy.cdm.model.reference.ReferenceFactory;
58 55
import eu.etaxonomy.cdm.model.taxon.Taxon;
59
import eu.etaxonomy.cdm.model.taxon.TaxonBase;
60 56

  
61 57

  
62 58
public class TestDatabase {
......
74 70
	}
75 71
	
76 72
	public void testNewDatabaseConnection(){
77
		try {
78
			
79
			Column coL;
80
			boolean omitTermLoading = false;
81
			Resource applicationContextResource = new ClassPathResource(CdmApplicationController.DEFAULT_APPLICATION_CONTEXT_RESOURCE);
82
			CdmPersistentDataSource dataSource = CdmPersistentDataSource.NewDefaultInstance();
83
			CdmApplicationController appCtr = CdmApplicationController.NewInstance(applicationContextResource, dataSource, DbSchemaValidation.CREATE, omitTermLoading);
84
			appCtr.NewConversation();
85
			appCtr.NewConversation();
86
			
87
			//CdmApplicationController appCtr = CdmApplicationController.NewInstance(DbSchemaValidation.CREATE);
88
			appCtr.close();
89
		} catch (DataSourceNotFoundException e) {
90
			logger.error("datasource error");
91
		} catch (TermNotFoundException e) {
92
			logger.error("defined terms not found");
93
		}
73

  
74
		Column coL;
75
		boolean omitTermLoading = false;
76
		Resource applicationContextResource = new ClassPathResource(CdmApplicationController.DEFAULT_APPLICATION_CONTEXT_RESOURCE);
77
		CdmPersistentDataSource dataSource = CdmPersistentDataSource.NewDefaultInstance();
78
		CdmApplicationController appCtr = CdmApplicationController.NewInstance(applicationContextResource, dataSource, DbSchemaValidation.CREATE, omitTermLoading);
79
		appCtr.NewConversation();
80
		appCtr.NewConversation();
81
		
82
		//CdmApplicationController appCtr = CdmApplicationController.NewInstance(DbSchemaValidation.CREATE);
83
		appCtr.close();
94 84
	}
95 85
	
96 86
	public void testNewDatasourceClass(){
97
		try {
98 87
//			String server = "192.168.2.10";
99 88
//			String database = "cdm_test_andreasM";
100 89
//			String username = "edit";
101 90
//			String password = CdmUtils.readInputLine("Password: ");
102
			DbSchemaValidation dbSchemaValidation = DbSchemaValidation.CREATE;
91
		DbSchemaValidation dbSchemaValidation = DbSchemaValidation.CREATE;
103 92

  
104 93
//			ICdmDataSource datasource = CdmDataSource.NewMySqlInstance(server, database, username, password);
105
			ICdmDataSource datasource = CdmDataSource.NewH2EmbeddedInstance("CDM", "sa", "", null);
106
			CdmApplicationController appCtr = CdmApplicationController.NewInstance(datasource, dbSchemaValidation);
107
			
108
			Rank genus = Rank.GENUS();
109
			BotanicalName botanicalName = BotanicalName.NewInstance(genus);
110
			botanicalName.setGenusOrUninomial("GenusName");
94
		ICdmDataSource datasource = CdmDataSource.NewH2EmbeddedInstance("CDM", "sa", "", null);
95
		CdmApplicationController appCtr = CdmApplicationController.NewInstance(datasource, dbSchemaValidation);
111 96
		
112
			IJournal journal = refFactory.newJournal();
113
			journal.setTitleCache("Afro+Doc", true);
114
			
115
			//			Taxon taxon = Taxon.NewInstance(botanicalName, journal);
97
		Rank genus = Rank.GENUS();
98
		BotanicalName botanicalName = BotanicalName.NewInstance(genus);
99
		botanicalName.setGenusOrUninomial("GenusName");
100
	
101
		IJournal journal = refFactory.newJournal();
102
		journal.setTitleCache("Afro+Doc", true);
103
		
104
		//			Taxon taxon = Taxon.NewInstance(botanicalName, journal);
116 105
//			Taxon taxon2 = Taxon.NewInstance(botanicalName2, null);
117
	//		botanicalName.getTitleCache();
118
			
119
			Taxon taxon1 = Taxon.NewInstance(botanicalName,(ReferenceBase)journal);
120
			appCtr.getTaxonService().save(taxon1);
121
			BotanicalName homotypName = BotanicalName.NewInstance(Rank.SUBGENUS(), botanicalName.getHomotypicalGroup());
122
			homotypName.setGenusOrUninomial("Subgenus");
123
			homotypName.setInfraGenericEpithet("homotyp");
124
			
125
			//Synonym synonym = Synonym.NewInstance(homotypName, journal);
126
			
127
			System.out.println("Taxa of " + botanicalName + ": " + botanicalName.getTaxonBases());
128
			System.out.println("Synonyms of " + homotypName + ": " + homotypName.getSynonyms());
129
			
130
			HomotypicalGroup homotypicalGroup = taxon1.getHomotypicGroup();
131
			System.out.println("HomotypicNames of " + botanicalName + ":" + homotypicalGroup.getTypifiedNames());
132
			System.out.println("HomotypicSynonymsByGroup of " + taxon1 + ":" + taxon1.getHomotypicSynonymsByHomotypicGroup());
133
			System.out.println("HomotypicSynonymsBySynonymy of " + taxon1 + ":" + taxon1.getHomotypicSynonymsByHomotypicRelationship());
134
			
106
//		botanicalName.getTitleCache();
107
		
108
		Taxon taxon1 = Taxon.NewInstance(botanicalName,(ReferenceBase)journal);
109
		appCtr.getTaxonService().save(taxon1);
110
		BotanicalName homotypName = BotanicalName.NewInstance(Rank.SUBGENUS(), botanicalName.getHomotypicalGroup());
111
		homotypName.setGenusOrUninomial("Subgenus");
112
		homotypName.setInfraGenericEpithet("homotyp");
113
		
114
		//Synonym synonym = Synonym.NewInstance(homotypName, journal);
115
		
116
		System.out.println("Taxa of " + botanicalName + ": " + botanicalName.getTaxonBases());
117
		System.out.println("Synonyms of " + homotypName + ": " + homotypName.getSynonyms());
118
		
119
		HomotypicalGroup homotypicalGroup = taxon1.getHomotypicGroup();
120
		System.out.println("HomotypicNames of " + botanicalName + ":" + homotypicalGroup.getTypifiedNames());
121
		System.out.println("HomotypicSynonymsByGroup of " + taxon1 + ":" + taxon1.getHomotypicSynonymsByHomotypicGroup());
122
		System.out.println("HomotypicSynonymsBySynonymy of " + taxon1 + ":" + taxon1.getHomotypicSynonymsByHomotypicRelationship());
123
		
135 124
//			appCtr.getTaxonService().saveTaxon(taxon2);
136 125
//			appCtr.getTaxonService().saveTaxon(taxon);
137
			
138
			appCtr.close();
139

  
140
		} catch (DataSourceNotFoundException e) {
141
			logger.error("datasource error");
142
		} catch (TermNotFoundException e) {
143
			logger.error("defined terms not found");
144
		}
126
		
127
		appCtr.close();
145 128
	}
146 129
	
147 130
	
148 131
	public void testFacts(){
149
		try {
150
			String server = "192.168.2.10";
151
			String database = "cdm_test_andreasM";
152
			String username = "edit";
153
			String password = CdmUtils.readInputLine("Password: ");
154
			DbSchemaValidation dbSchemaValidation = DbSchemaValidation.VALIDATE;
155
			ICdmDataSource datasource = CdmDataSource.NewMySqlInstance(server, database, username, password);
156
			CdmApplicationController appCtr = CdmApplicationController.NewInstance(datasource, dbSchemaValidation);
157
			
158
			Rank genus = Rank.GENUS();
159
			BotanicalName botanicalName = BotanicalName.NewInstance(genus);
160
			botanicalName.setGenusOrUninomial("GenusName");
161
		
162
			IJournal journal = refFactory.newJournal();
163
			journal.setTitleCache("Afro+Doc", true);
164
			
165
			Taxon taxon = Taxon.NewInstance(botanicalName,(ReferenceBase)journal);
166
			appCtr.getTaxonService().save(taxon);
167
			
168
			TaxonDescription taxonDescription = TaxonDescription.NewInstance();
169
			taxon.addDescription(taxonDescription);
170
			
171
			//textData
172
			TextData textData = TextData.NewInstance();
173
			textData.putText("XXX", Language.DEFAULT());
174
			taxonDescription.addElement(textData);
175
			
176
			//commonNames
177
			String commonNameString;
178
			if (taxon.getName() != null){
179
				commonNameString = "Common " + taxon.getName().getTitleCache(); 
180
			}else{
181
				commonNameString = "Common (null)";
182
			}
183
			CommonTaxonName commonName = CommonTaxonName.NewInstance(commonNameString, Language.DEFAULT());
184
			taxonDescription.addElement(commonName);
185
			
186
			//save
187
			appCtr.getTaxonService().save(taxon);
188 132

  
189
			
190
			appCtr.close();
191

  
192
		} catch (DataSourceNotFoundException e) {
193
			logger.error("datasource error");
194
		} catch (TermNotFoundException e) {
195
			logger.error("defined terms not found");
133
		String server = "192.168.2.10";
134
		String database = "cdm_test_andreasM";
135
		String username = "edit";
136
		String password = CdmUtils.readInputLine("Password: ");
137
		DbSchemaValidation dbSchemaValidation = DbSchemaValidation.VALIDATE;
138
		ICdmDataSource datasource = CdmDataSource.NewMySqlInstance(server, database, username, password);
139
		CdmApplicationController appCtr = CdmApplicationController.NewInstance(datasource, dbSchemaValidation);
140
		
141
		Rank genus = Rank.GENUS();
142
		BotanicalName botanicalName = BotanicalName.NewInstance(genus);
143
		botanicalName.setGenusOrUninomial("GenusName");
144
	
145
		IJournal journal = refFactory.newJournal();
146
		journal.setTitleCache("Afro+Doc", true);
147
		
148
		Taxon taxon = Taxon.NewInstance(botanicalName,(ReferenceBase)journal);
149
		appCtr.getTaxonService().save(taxon);
150
		
151
		TaxonDescription taxonDescription = TaxonDescription.NewInstance();
152
		taxon.addDescription(taxonDescription);
153
		
154
		//textData
155
		TextData textData = TextData.NewInstance();
156
		textData.putText("XXX", Language.DEFAULT());
157
		taxonDescription.addElement(textData);
158
		
159
		//commonNames
160
		String commonNameString;
161
		if (taxon.getName() != null){
162
			commonNameString = "Common " + taxon.getName().getTitleCache(); 
163
		}else{
164
			commonNameString = "Common (null)";
196 165
		}
166
		CommonTaxonName commonName = CommonTaxonName.NewInstance(commonNameString, Language.DEFAULT());
167
		taxonDescription.addElement(commonName);
168
		
169
		//save
170
		appCtr.getTaxonService().save(taxon);
171

  
172
		
173
		appCtr.close();
197 174
	}
198 175
	
199 176
	
200 177
	public void testHybridRelationships(){
201
		try {
178

  
202 179
//			String database = "cdm";
203 180
//			String username = "sa";
204 181

  
205
			String server = "192.168.2.10";
206
			String database = "cdm_test_andreasM";
207
			String username = "edit";
208
			String password = CdmUtils.readInputLine("Password: ");
209
			DbSchemaValidation dbSchemaValidation = DbSchemaValidation.CREATE;
210
			ICdmDataSource datasource = CdmDataSource.NewMySqlInstance(server, database, username, password);
211
			CdmApplicationController appCtr = CdmApplicationController.NewInstance(datasource, dbSchemaValidation);
212
			
213
			Rank genus = Rank.GENUS();
214
			BotanicalName parentName = BotanicalName.NewInstance(genus);
215
			parentName.setGenusOrUninomial("parent");
182
		String server = "192.168.2.10";
183
		String database = "cdm_test_andreasM";
184
		String username = "edit";
185
		String password = CdmUtils.readInputLine("Password: ");
186
		DbSchemaValidation dbSchemaValidation = DbSchemaValidation.CREATE;
187
		ICdmDataSource datasource = CdmDataSource.NewMySqlInstance(server, database, username, password);
188
		CdmApplicationController appCtr = CdmApplicationController.NewInstance(datasource, dbSchemaValidation);
216 189
		
217
			BotanicalName childName = BotanicalName.NewInstance(genus);
218
			childName.setGenusOrUninomial("child");
219
			parentName.addHybridChild(childName, HybridRelationshipType.FIRST_PARENT(), null);
220
			
221
			//save
222
			appCtr.getNameService().save(parentName);
223

  
224
			
225
			appCtr.close();
190
		Rank genus = Rank.GENUS();
191
		BotanicalName parentName = BotanicalName.NewInstance(genus);
192
		parentName.setGenusOrUninomial("parent");
193
	
194
		BotanicalName childName = BotanicalName.NewInstance(genus);
195
		childName.setGenusOrUninomial("child");
196
		parentName.addHybridChild(childName, HybridRelationshipType.FIRST_PARENT(), null);
197
		
198
		//save
199
		appCtr.getNameService().save(parentName);
226 200

  
227
		} catch (DataSourceNotFoundException e) {
228
			logger.error("datasource error");
229
		} catch (TermNotFoundException e) {
230
			logger.error("defined terms not found");
231
		}
201
		
202
		appCtr.close();
232 203
	}
233 204
	
234 205
	public void testPaddie(){
206
		String server = "PADDIE";
207
		String database = "edit_test";
208
		String username = "andreas";
209
		String password = CdmUtils.readInputLine("Password: ");
210
		DbSchemaValidation validation = DbSchemaValidation.VALIDATE;
211
		ICdmDataSource datasource = CdmDataSource.NewSqlServer2005Instance(server, database, -1, username, password, null);
212
		CdmApplicationController appCtr = CdmApplicationController.NewInstance(datasource, validation);
235 213
		
236

  
237
		try {
238
			String server = "PADDIE";
239
			String database = "edit_test";
240
			String username = "andreas";
241
			String password = CdmUtils.readInputLine("Password: ");
242
			DbSchemaValidation validation = DbSchemaValidation.VALIDATE;
243
			ICdmDataSource datasource = CdmDataSource.NewSqlServer2005Instance(server, database, -1, username, password, null);
244
			CdmApplicationController appCtr = CdmApplicationController.NewInstance(datasource, validation);
245
			
246
			Rank genus = Rank.GENUS();
247
			BotanicalName botanicalName = BotanicalName.NewInstance(genus);
248
			botanicalName.setGenusOrUninomial("GenusName");
214
		Rank genus = Rank.GENUS();
215
		BotanicalName botanicalName = BotanicalName.NewInstance(genus);
216
		botanicalName.setGenusOrUninomial("GenusName");
217
	
218
		IJournal journal = refFactory.newJournal();
219
		journal.setTitle("JournalTitel");
249 220
		
250
			IJournal journal = refFactory.newJournal();
251
			journal.setTitle("JournalTitel");
252
			
253
			//			Taxon taxon = Taxon.NewInstance(botanicalName, journal);
221
		//			Taxon taxon = Taxon.NewInstance(botanicalName, journal);
254 222
//			Taxon taxon2 = Taxon.NewInstance(botanicalName2, null);
255
	//		botanicalName.getTitleCache();
256
			Rank.SPECIES();
257
			appCtr.getNameService().save(botanicalName);
223
//		botanicalName.getTitleCache();
224
		Rank.SPECIES();
225
		appCtr.getNameService().save(botanicalName);
258 226

  
259 227
//			appCtr.getTaxonService().saveTaxon(taxon2);
260 228
//			appCtr.getTaxonService().saveTaxon(taxon);
261
			
262
			appCtr.close();
263
		} catch (DataSourceNotFoundException e) {
264
			logger.error("datasource error");
265
		} catch (TermNotFoundException e) {
266
			logger.error("defined terms not found");
267
		}
229
		
230
		appCtr.close();
268 231
	}
269 232
	
270 233
	
271 234
	public void testContact(){
272
		try {
273 235
//			String server = "192.168.2.10";
274 236
//			String database = "cdm_test_andreasM";
275 237
//			String username = "edit";
276 238
//			String password = CdmUtils.readInputLine("Password: ");
277
			DbSchemaValidation dbSchemaValidation = DbSchemaValidation.CREATE;
239
		DbSchemaValidation dbSchemaValidation = DbSchemaValidation.CREATE;
278 240

  
279 241
//			ICdmDataSource datasource = CdmDataSource.NewMySqlInstance(server, database, username, password);
280
			//ICdmDataSource datasource = CdmDataSource.NewH2EmbeddedInstance("CDM", "sa", "");
281
			ICdmDataSource datasource = cdm_test_anahit2();
282
			CdmApplicationController appCtr = CdmApplicationController.NewInstance(datasource, dbSchemaValidation);
283
			AgentBase person = Person.NewTitledInstance("TestPerson");
284
			Contact contact1 = new Contact();
285
			Set<String> set = new HashSet<String>();
286
			set.add("email1");
287
			set.add("c@d.org");
242
		//ICdmDataSource datasource = CdmDataSource.NewH2EmbeddedInstance("CDM", "sa", "");
243
		ICdmDataSource datasource = cdm_test_anahit2();
244
		CdmApplicationController appCtr = CdmApplicationController.NewInstance(datasource, dbSchemaValidation);
245
		AgentBase person = Person.NewTitledInstance("TestPerson");
246
		Contact contact1 = new Contact();
247
		Set<String> set = new HashSet<String>();
248
		set.add("email1");
249
		set.add("c@d.org");
288 250
//			contact1.setEmail(set);
289 251
//			person.setContact(contact1);
290
			appCtr.getAgentService().save(person);
291
			appCtr.close();
292
			System.out.println("End");
293
		} catch (DataSourceNotFoundException e) {
294
			logger.error("datasource error");
295
		} catch (TermNotFoundException e) {
296
			logger.error("defined terms not found");
297
		}
252
		appCtr.getAgentService().save(person);
253
		appCtr.close();
254
		System.out.println("End");
298 255
	}
299 256
	
300 257
	
301 258
	public void testNewVersion(){
302
		try {
303
			System.out.println("Start");
304
			DbSchemaValidation dbSchemaValidation = DbSchemaValidation.CREATE;
259
		System.out.println("Start");
260
		DbSchemaValidation dbSchemaValidation = DbSchemaValidation.CREATE;
305 261

  
306 262
//			ICdmDataSource datasource = CdmDataSource.NewMySqlInstance(server, database, username, password);
307
			ICdmDataSource datasource = CdmDataSource.NewH2EmbeddedInstance("CDM", "sa", "", null);
308
			CdmApplicationController appCtr = CdmApplicationController.NewInstance(datasource, dbSchemaValidation);
309
			BotanicalName botName = BotanicalName.NewInstance(Rank.SPECIES());
310
			botName.setGenusOrUninomial("Genus");
311
			botName.setSpecificEpithet("species");
312
			appCtr.getNameService().save(botName);
313
			List<?> names = appCtr.getNameService().findNamesByTitle("Genus species");
263
		ICdmDataSource datasource = CdmDataSource.NewH2EmbeddedInstance("CDM", "sa", "", null);
264
		CdmApplicationController appCtr = CdmApplicationController.NewInstance(datasource, dbSchemaValidation);
265
		BotanicalName botName = BotanicalName.NewInstance(Rank.SPECIES());
266
		botName.setGenusOrUninomial("Genus");
267
		botName.setSpecificEpithet("species");
268
		appCtr.getNameService().save(botName);
269
		List<?> names = appCtr.getNameService().findNamesByTitle("Genus species");
314 270

  
315
			names.size();
271
		names.size();
316 272
//			AgentBase person = Person.NewTitledInstance("TestPerson");
317 273
//			Contact contact1 = new Contact();
318 274
//			Set<String> set = new HashSet<String>();
......
321 277
////			contact1.setEmail(set);
322 278
//			person.setContact(contact1);
323 279
//			appCtr.getAgentService().save(person);
324
			appCtr.close();
325
			System.out.println("End");
326
		} catch (DataSourceNotFoundException e) {
327
			logger.error("datasource error");
328
		} catch (TermNotFoundException e) {
329
			logger.error("defined terms not found");
330
		}
280
		appCtr.close();
281
		System.out.println("End");
331 282
	}
332 283
	
333 284
	public void testDataSourceWithNomenclaturalCode(){
......
358 309
	public void testLoadedAnnotationGetAnnotatedObjectCall(){
359 310
		String password = CdmUtils.readInputLine("Password: ");
360 311
		ICdmDataSource dataSource = CdmDataSource.NewMySqlInstance("192.168.2.10", "cdm_test_niels2", 3306, "edit", password, NomenclaturalCode.ICBN);
361
		try {
362
			CdmApplicationController appCtr = CdmApplicationController.NewInstance(dataSource, DbSchemaValidation.UPDATE);
363
			
364
			ConversationHolder conversation = appCtr.NewConversation();
365
			
366
			// make the taxon and description elements 
367
			Taxon taxon = Taxon.NewInstance(null, null);			
368 312

  
369
			TaxonDescription taxonDescription = TaxonDescription.NewInstance(taxon);
370
			
371
			UUID taxonDescriptionUuid = taxonDescription.getUuid();
372
			
373
			Feature featureAnatomy = Feature.ANATOMY(); 
374
			
375
			TextData textData = TextData.NewInstance();
376
			textData.addAnnotation(Annotation.NewInstance(null, null));
377
			
378
			assertNotNull(textData.getAnnotations().iterator().next().getAnnotatedObj());
379
			
380
			textData.setFeature(featureAnatomy);
381
			
382
			taxonDescription.addElement(textData);
313
		CdmApplicationController appCtr = CdmApplicationController.NewInstance(dataSource, DbSchemaValidation.UPDATE);
314
		
315
		ConversationHolder conversation = appCtr.NewConversation();
316
		
317
		// make the taxon and description elements 
318
		Taxon taxon = Taxon.NewInstance(null, null);			
383 319

  
384
			appCtr.getTaxonService().save(taxon);
385
			
386
			conversation.commit(false);
387
			// end of creation phase
388
			
389
			
390
			// load the new taxon in a new conversation to assure that it was loaded into a new session
391
			// if you are willing to blame it on conversations, please rewrite into two methods 
392
			// the result will be the same
393
			ConversationHolder newConversation = appCtr.NewConversation();
394
			DescriptionBase loadedDescription = appCtr.getDescriptionService().load(taxonDescriptionUuid);
395
			
396
			TextData descriptionElement = (TextData) loadedDescription.getElements().iterator().next();
320
		TaxonDescription taxonDescription = TaxonDescription.NewInstance(taxon);
397 321
		
398
			Annotation annotation = descriptionElement.getAnnotations().iterator().next();
399
			
400
			// this should not be null
401
			assertNotNull(annotation.getAnnotatedObj());
402
			
403
			
404
		} catch (DataSourceNotFoundException e) {
405
			// TODO Auto-generated catch block
406
			e.printStackTrace();
407
		} catch (TermNotFoundException e) {
408
			// TODO Auto-generated catch block
409
			e.printStackTrace();
410
		}
322
		UUID taxonDescriptionUuid = taxonDescription.getUuid();
323
		
324
		Feature featureAnatomy = Feature.ANATOMY(); 
325
		
326
		TextData textData = TextData.NewInstance();
327
		textData.addAnnotation(Annotation.NewInstance(null, null));
328
		
329
		assertNotNull(textData.getAnnotations().iterator().next().getAnnotatedObj());
330
		
331
		textData.setFeature(featureAnatomy);
332
		
333
		taxonDescription.addElement(textData);
334

  
335
		appCtr.getTaxonService().save(taxon);
336
		
337
		conversation.commit(false);
338
		// end of creation phase
339
		
340
		
341
		// load the new taxon in a new conversation to assure that it was loaded into a new session
342
		// if you are willing to blame it on conversations, please rewrite into two methods 
343
		// the result will be the same
344
		ConversationHolder newConversation = appCtr.NewConversation();
345
		DescriptionBase loadedDescription = appCtr.getDescriptionService().load(taxonDescriptionUuid);
346
		
347
		TextData descriptionElement = (TextData) loadedDescription.getElements().iterator().next();
348
	
349
		Annotation annotation = descriptionElement.getAnnotations().iterator().next();
350
		
351
		// this should not be null
352
		assertNotNull(annotation.getAnnotatedObj());
411 353
		
412 354
	}
413 355
	

Also available in: Unified diff