Revision 27723 branches/v2_0_0_prep/libraries/libFMap_dal/src-test/org/gvsig/fmap/dal/feature/BaseTestEditableFeatureStore.java

View differences:

BaseTestEditableFeatureStore.java
38 38
import org.gvsig.fmap.dal.DataTypes;
39 39
import org.gvsig.fmap.dal.exception.DataException;
40 40
import org.gvsig.fmap.dal.exception.RemoveException;
41
import org.gvsig.fmap.dal.exception.ValidateDataParametersException;
41 42
import org.gvsig.fmap.dal.feature.exception.ConcurrentDataModificationException;
42 43
import org.gvsig.fmap.dal.feature.testediting.DeleteFirstAndLastFeature;
43 44
import org.gvsig.fmap.dal.feature.testediting.DeleteLastFeature;
......
60 61
public abstract class BaseTestEditableFeatureStore extends BaseTestFeatureStore {
61 62

  
62 63
	public abstract NewFeatureStoreParameters getDefaultNewDataStoreParameters()
63
			throws DataException;
64
			throws Exception;
64 65

  
65 66
	public abstract boolean usesResources();
66 67

  
......
142 143
	}
143 144

  
144 145
	protected FeatureStore getStoreCopy(FeatureStore source,
145
			NewFeatureStoreParameters targetParams) throws DataException {
146
			NewFeatureStoreParameters targetParams) throws DataException,
147
			ValidateDataParametersException {
146 148
		DataServerExplorer explorer = source.getExplorer();
147 149
		source.export(explorer, targetParams);
148 150
		FeatureStore result = (FeatureStore) dataManager
......
152 154
	}
153 155

  
154 156
	protected void clearCopy(FeatureStore source,
155
			NewFeatureStoreParameters targetParams) throws DataException,
156
			RemoveException {
157
			NewFeatureStoreParameters targetParams) throws Exception {
157 158
		DataServerExplorer explorer = source.getExplorer();
158 159
		explorer.remove(targetParams);
159 160

  
......
252 253

  
253 254

  
254 255

  
255
	public void testExport() {
256
	public void testExport() throws Exception {
256 257
		DataStoreParameters parameters = null;
257 258

  
258
		try {
259 259
			parameters = getDefaultDataStoreParameters();
260 260

  
261 261

  
......
300 300
			this.clearCopy(store, newParams);
301 301
			store.dispose();
302 302

  
303
		} catch (DataException e3) {
304
			e3.printStackTrace();
305
			fail();
306
			return;
307
		}
308

  
309 303
	}
310 304

  
311
	public void testRemove() {
305
	public void testRemove() throws Exception {
312 306
		DataStoreParameters parameters = null;
313 307

  
314
		try {
315 308
			parameters = getDefaultDataStoreParameters();
316 309

  
317 310
			FeatureStore store = (FeatureStore) dataManager
......
394 387
			this.clearCopy(store, newParams);
395 388
			store.dispose();
396 389

  
397
		} catch (DataException e3) {
398
			e3.printStackTrace();
399
			fail();
400
			return;
401
		}
402 390

  
403 391
	}
404 392

  
405
	public void testInsert() {
393
	public void testInsert() throws Exception {
406 394
		DataStoreParameters parameters = null;
407 395

  
408
		try {
409
			parameters = getDefaultDataStoreParameters();
396
		parameters = getDefaultDataStoreParameters();
410 397

  
411 398

  
412
			FeatureStore store = (FeatureStore) dataManager
413
					.createStore(parameters);
399
		FeatureStore store = (FeatureStore) dataManager
400
		.createStore(parameters);
414 401

  
415
			NewFeatureStoreParameters newParams = this
416
					.getDefaultNewDataStoreParameters();
417
			try {
418
				this.clearCopy(store, newParams);
419
			} catch (RemoveException e) {
420
				//Do nothing
421
			}
402
		NewFeatureStoreParameters newParams = this
403
		.getDefaultNewDataStoreParameters();
404
		try {
405
			this.clearCopy(store, newParams);
406
		} catch (RemoveException e) {
407
			//Do nothing
408
		}
422 409

  
423
			FeatureStore result = this.getStoreCopy(store, newParams);
410
		FeatureStore result = this.getStoreCopy(store, newParams);
424 411

  
425
			result.edit(FeatureStore.MODE_FULLEDIT);
412
		result.edit(FeatureStore.MODE_FULLEDIT);
426 413

  
427
			FeatureSet set = result.getFeatureSet();
428
			FeatureSet originalSet = store.getFeatureSet();
429
			assertEquals(set.getSize(), originalSet.getSize());
414
		FeatureSet set = result.getFeatureSet();
415
		FeatureSet originalSet = store.getFeatureSet();
416
		assertEquals(set.getSize(), originalSet.getSize());
430 417

  
431
			set.insert(result.createNewFeature(true));
432
			DisposableIterator originalIter = originalSet.iterator();
433
			DisposableIterator iter = set.iterator();
434
			int i = 0;
435
			while (originalIter.hasNext()) {
436
				assertTrue("" + i, compareFeatures((Feature) originalIter
437
						.next(), (Feature) iter.next()));
438
				i++;
439
			}
440
			assertTrue(iter.hasNext());
441
			assertNotNull(iter.next());
442
			assertFalse(iter.hasNext());
418
		set.insert(result.createNewFeature(true));
419
		DisposableIterator originalIter = originalSet.iterator();
420
		DisposableIterator iter = set.iterator();
421
		int i = 0;
422
		while (originalIter.hasNext()) {
423
			assertTrue("" + i, compareFeatures((Feature) originalIter
424
					.next(), (Feature) iter.next()));
425
			i++;
426
		}
427
		assertTrue(iter.hasNext());
428
		assertNotNull(iter.next());
429
		assertFalse(iter.hasNext());
443 430

  
444
			assertEquals(originalSet.getSize() + 1, set.getSize());
431
		assertEquals(originalSet.getSize() + 1, set.getSize());
445 432

  
446
			iter.dispose();
447
			originalIter.dispose();
433
		iter.dispose();
434
		originalIter.dispose();
448 435

  
449
			originalIter = originalSet.iterator();
450
			iter = set.iterator();
451
			i = 0;
452
			while (originalIter.hasNext()) {
453
				assertTrue("" + i, compareFeatures((Feature) originalIter
454
						.next(), (Feature) iter.next()));
455
				i++;
456
			}
457
			assertTrue(iter.hasNext());
458
			assertNotNull(iter.next());
436
		originalIter = originalSet.iterator();
437
		iter = set.iterator();
438
		i = 0;
439
		while (originalIter.hasNext()) {
440
			assertTrue("" + i, compareFeatures((Feature) originalIter
441
					.next(), (Feature) iter.next()));
442
			i++;
443
		}
444
		assertTrue(iter.hasNext());
445
		assertNotNull(iter.next());
459 446

  
460
			set.insert(result.createNewFeature(true));
447
		set.insert(result.createNewFeature(true));
461 448

  
462
			assertEquals(originalSet.getSize() + 2, set.getSize());
449
		assertEquals(originalSet.getSize() + 2, set.getSize());
463 450

  
464
			iter.dispose();
465
			originalIter.dispose();
451
		iter.dispose();
452
		originalIter.dispose();
466 453

  
467
			set.dispose();
454
		set.dispose();
468 455

  
469
			result.finishEditing();
456
		result.finishEditing();
470 457

  
471
			set = result.getFeatureSet();
472
			assertEquals(originalSet.getSize() + 2, set.getSize());
458
		set = result.getFeatureSet();
459
		assertEquals(originalSet.getSize() + 2, set.getSize());
473 460

  
474
			originalIter = originalSet.iterator();
475
			iter = set.iterator();
476
			i = 0;
477
			while (originalIter.hasNext()) {
478
				assertTrue("" + i, compareFeatures((Feature) originalIter
479
						.next(), (Feature) iter.next()));
480
				i++;
481
			}
461
		originalIter = originalSet.iterator();
462
		iter = set.iterator();
463
		i = 0;
464
		while (originalIter.hasNext()) {
465
			assertTrue("" + i, compareFeatures((Feature) originalIter
466
					.next(), (Feature) iter.next()));
467
			i++;
468
		}
482 469

  
483
			assertNotNull(iter.next());
484
			assertNotNull(iter.next());
485
			assertFalse(iter.hasNext());
470
		assertNotNull(iter.next());
471
		assertNotNull(iter.next());
472
		assertFalse(iter.hasNext());
486 473

  
487
			iter.dispose();
488
			originalIter.dispose();
474
		iter.dispose();
475
		originalIter.dispose();
489 476

  
490
			set.dispose();
491
			originalSet.dispose();
477
		set.dispose();
478
		originalSet.dispose();
492 479

  
493
			result.dispose();
494
			this.clearCopy(store, newParams);
495
			store.dispose();
480
		result.dispose();
481
		this.clearCopy(store, newParams);
482
		store.dispose();
496 483

  
497
		} catch (DataException e3) {
498
			e3.printStackTrace();
499
			fail();
500
			return;
501
		}
502 484

  
503 485
	}
504 486

  
505 487

  
506 488

  
507
	public void testConcurrentRemove() {
489
	public void testConcurrentRemove() throws Exception {
508 490
		DataStoreParameters parameters = null;
509 491

  
510
		try {
511
			parameters = getDefaultDataStoreParameters();
492
		parameters = getDefaultDataStoreParameters();
512 493

  
513 494

  
514
			FeatureStore store = (FeatureStore) dataManager
515
					.createStore(parameters);
495
		FeatureStore store = (FeatureStore) dataManager.createStore(parameters);
516 496

  
517
			NewFeatureStoreParameters newParams = this
518
					.getDefaultNewDataStoreParameters();
519
			try {
520
				this.clearCopy(store, newParams);
521
			} catch (RemoveException e) {
522
				//Dp nothing
523
			}
497
		NewFeatureStoreParameters newParams = this
498
				.getDefaultNewDataStoreParameters();
499
		try {
500
			this.clearCopy(store, newParams);
501
		} catch (RemoveException e) {
502
			// Dp nothing
503
		}
524 504

  
525
			FeatureStore result = this.getStoreCopy(store, newParams);
505
		FeatureStore result = this.getStoreCopy(store, newParams);
526 506

  
527
			result.edit(FeatureStore.MODE_FULLEDIT);
507
		result.edit(FeatureStore.MODE_FULLEDIT);
528 508

  
529
			DeleteFirstAndLastFeature deleteFeature = new DeleteFirstAndLastFeature(
530
					"1", result, EditStore.TIME_TO_WAIT_NO_WAIT);
509
		DeleteFirstAndLastFeature deleteFeature = new DeleteFirstAndLastFeature(
510
				"1", result, EditStore.TIME_TO_WAIT_NO_WAIT);
531 511

  
532
			FeatureSet set = result.getFeatureSet();
512
		FeatureSet set = result.getFeatureSet();
533 513

  
534
			DisposableIterator iter = set.iterator();
535
			assertTrue(iter.hasNext());
536
			assertNotNull(iter.next());
514
		DisposableIterator iter = set.iterator();
515
		assertTrue(iter.hasNext());
516
		assertNotNull(iter.next());
537 517

  
538
			deleteFeature.start();
518
		deleteFeature.start();
539 519

  
540
			while (deleteFeature.getCurrentStatus() <= EditStore.STATUS_RUNING) {
541
				Thread.yield();
542
				Thread.sleep(100);
543
				if (deleteFeature.isOutOfDate()) {
544
					break;
545
				}
520
		while (deleteFeature.getCurrentStatus() <= EditStore.STATUS_RUNING) {
521
			Thread.yield();
522
			Thread.sleep(100);
523
			if (deleteFeature.isOutOfDate()) {
524
				break;
546 525
			}
526
		}
547 527

  
548
			assertEquals(deleteFeature.getCurrentStatus(),
549
					EditStore.STATUS_FINISHED_OK);
528
		assertEquals(deleteFeature.getCurrentStatus(),
529
				EditStore.STATUS_FINISHED_OK);
550 530

  
551
			Exception ex = null;
552
			try {
553
				iter.next();
554
			} catch (Exception e) {
555
				ex = e;
556
			}
557
			assertNotNull(ex);
558
			assertEquals(ConcurrentDataModificationException.class, ex
559
					.getClass());
531
		Exception ex = null;
532
		try {
533
			iter.next();
534
		} catch (Exception e) {
535
			ex = e;
536
		}
537
		assertNotNull(ex);
538
		assertEquals(ConcurrentDataModificationException.class, ex.getClass());
560 539

  
561
			ex = null;
562
			try {
563
				set.getSize();
564
			} catch (Exception e) {
565
				ex = e;
566
			}
567
			assertNotNull(ex);
568
			assertEquals(ConcurrentDataModificationException.class, ex
569
					.getClass());
540
		ex = null;
541
		try {
542
			set.getSize();
543
		} catch (Exception e) {
544
			ex = e;
545
		}
546
		assertNotNull(ex);
547
		assertEquals(ConcurrentDataModificationException.class, ex.getClass());
570 548

  
571
			iter.dispose();
572
			result.dispose();
573
			this.clearCopy(store, newParams);
574
			store.dispose();
549
		iter.dispose();
550
		result.dispose();
551
		this.clearCopy(store, newParams);
552
		store.dispose();
575 553

  
576

  
577
		} catch (DataException e3) {
578
			e3.printStackTrace();
579
			fail();
580
			return;
581
		} catch (InterruptedException e) {
582
			e.printStackTrace();
583
			fail();
584
			return;
585
		}
586 554
	}
587 555

  
588
	public void testConcurrentInsert() {
556
	public void testConcurrentInsert() throws Exception{
589 557
		DataStoreParameters parameters = null;
590 558

  
591
		try {
592
			parameters = getDefaultDataStoreParameters();
559
		parameters = getDefaultDataStoreParameters();
593 560

  
594 561

  
595
			FeatureStore store = (FeatureStore) dataManager
596
					.createStore(parameters);
562
		FeatureStore store = (FeatureStore) dataManager.createStore(parameters);
597 563

  
598
			NewFeatureStoreParameters newParams = this
599
					.getDefaultNewDataStoreParameters();
600
			try {
601
				this.clearCopy(store, newParams);
602
			} catch (RemoveException e) {
603
				//Dp nothing
604
			}
564
		NewFeatureStoreParameters newParams = this
565
				.getDefaultNewDataStoreParameters();
566
		try {
567
			this.clearCopy(store, newParams);
568
		} catch (RemoveException e) {
569
			// Dp nothing
570
		}
605 571

  
606
			FeatureStore result = this.getStoreCopy(store, newParams);
572
		FeatureStore result = this.getStoreCopy(store, newParams);
607 573

  
608
			result.edit(FeatureStore.MODE_FULLEDIT);
574
		result.edit(FeatureStore.MODE_FULLEDIT);
609 575

  
610
			InsertFeature insertFeature = new InsertFeature("1", result,
611
					EditStore.TIME_TO_WAIT_NO_WAIT);
576
		InsertFeature insertFeature = new InsertFeature("1", result,
577
				EditStore.TIME_TO_WAIT_NO_WAIT);
612 578

  
613
			FeatureSet set = result.getFeatureSet();
579
		FeatureSet set = result.getFeatureSet();
614 580

  
615
			DisposableIterator iter = set.iterator();
616
			assertTrue(iter.hasNext());
617
			assertNotNull(iter.next());
581
		DisposableIterator iter = set.iterator();
582
		assertTrue(iter.hasNext());
583
		assertNotNull(iter.next());
618 584

  
619
			insertFeature.start();
585
		insertFeature.start();
620 586

  
621
			while (insertFeature.getCurrentStatus() <= EditStore.STATUS_RUNING) {
622
				Thread.yield();
623
				Thread.sleep(100);
624
				if (insertFeature.isOutOfDate()) {
625
					break;
626
				}
587
		while (insertFeature.getCurrentStatus() <= EditStore.STATUS_RUNING) {
588
			Thread.yield();
589
			Thread.sleep(100);
590
			if (insertFeature.isOutOfDate()) {
591
				break;
627 592
			}
593
		}
628 594

  
629
			assertEquals(EditStore.STATUS_FINISHED_OK, insertFeature
630
					.getCurrentStatus());
595
		assertEquals(EditStore.STATUS_FINISHED_OK, insertFeature
596
				.getCurrentStatus());
631 597

  
632
			Exception ex = null;
633
			try {
634
				iter.next();
635
			} catch (Exception e) {
636
				ex = e;
637
			}
638
			assertNotNull(ex);
639
			assertEquals(ConcurrentDataModificationException.class, ex
640
					.getClass());
598
		Exception ex = null;
599
		try {
600
			iter.next();
601
		} catch (Exception e) {
602
			ex = e;
603
		}
604
		assertNotNull(ex);
605
		assertEquals(ConcurrentDataModificationException.class, ex.getClass());
641 606

  
642
			ex = null;
643
			try {
644
				set.getSize();
645
			} catch (Exception e) {
646
				ex = e;
647
			}
648
			assertNotNull(ex);
649
			assertEquals(ConcurrentDataModificationException.class, ex
650
					.getClass());
651

  
652
			iter.dispose();
653
			result.dispose();
654
			this.clearCopy(store, newParams);
655
			store.dispose();
656

  
657
		} catch (DataException e3) {
658
			e3.printStackTrace();
659
			fail();
660
			return;
661
		} catch (InterruptedException e) {
662
			e.printStackTrace();
663
			fail();
664
			return;
607
		ex = null;
608
		try {
609
			set.getSize();
610
		} catch (Exception e) {
611
			ex = e;
665 612
		}
613
		assertNotNull(ex);
614
		assertEquals(ConcurrentDataModificationException.class, ex.getClass());
615

  
616
		iter.dispose();
617
		result.dispose();
618
		this.clearCopy(store, newParams);
619
		store.dispose();
666 620
	}
667 621

  
668
	public void testConcurrentUpdate() {
622
	public void testConcurrentUpdate() throws Exception {
669 623
		DataStoreParameters parameters = null;
670 624

  
671
		try {
672
			parameters = getDefaultDataStoreParameters();
625
		parameters = getDefaultDataStoreParameters();
673 626

  
674 627

  
675
			FeatureStore store = (FeatureStore) dataManager
676
					.createStore(parameters);
628
		FeatureStore store = (FeatureStore) dataManager.createStore(parameters);
677 629

  
678
			NewFeatureStoreParameters newParams = this
679
					.getDefaultNewDataStoreParameters();
680
			try {
681
				this.clearCopy(store, newParams);
682
			} catch (RemoveException e) {
683
				//Dp nothing
684
			}
630
		NewFeatureStoreParameters newParams = this
631
				.getDefaultNewDataStoreParameters();
632
		try {
633
			this.clearCopy(store, newParams);
634
		} catch (RemoveException e) {
635
			// Dp nothing
636
		}
685 637

  
686
			FeatureStore result = this.getStoreCopy(store, newParams);
638
		FeatureStore result = this.getStoreCopy(store, newParams);
687 639

  
688 640

  
689
			result.edit(FeatureStore.MODE_FULLEDIT);
641
		result.edit(FeatureStore.MODE_FULLEDIT);
690 642

  
691
			UpdateFeature updateFeature = new UpdateFeature("1", result,
692
					EditStore.TIME_TO_WAIT_NO_WAIT);
643
		UpdateFeature updateFeature = new UpdateFeature("1", result,
644
				EditStore.TIME_TO_WAIT_NO_WAIT);
693 645

  
694
			updateFeature.addUpdate(UpdateFeature.UPDATE_ALL_FEATURES,
695
					"OTRO_IDIOM", "XXX");
646
		updateFeature.addUpdate(UpdateFeature.UPDATE_ALL_FEATURES,
647
				"OTRO_IDIOM", "XXX");
696 648

  
697
			FeatureSet set = result.getFeatureSet();
649
		FeatureSet set = result.getFeatureSet();
698 650

  
699
			DisposableIterator iter = set.iterator();
700
			assertTrue(iter.hasNext());
701
			assertNotNull(iter.next());
651
		DisposableIterator iter = set.iterator();
652
		assertTrue(iter.hasNext());
653
		assertNotNull(iter.next());
702 654

  
703
			updateFeature.start();
655
		updateFeature.start();
704 656

  
705
			while (updateFeature.getCurrentStatus() <= EditStore.STATUS_RUNING) {
706
				Thread.yield();
707
				Thread.sleep(100);
708
				if (updateFeature.isOutOfDate()) {
709
					break;
710
				}
657
		while (updateFeature.getCurrentStatus() <= EditStore.STATUS_RUNING) {
658
			Thread.yield();
659
			Thread.sleep(100);
660
			if (updateFeature.isOutOfDate()) {
661
				break;
711 662
			}
663
		}
712 664

  
713
			assertEquals(EditStore.STATUS_FINISHED_OK, updateFeature
714
					.getCurrentStatus());
665
		assertEquals(EditStore.STATUS_FINISHED_OK, updateFeature
666
				.getCurrentStatus());
715 667

  
716
			Exception ex = null;
717
			try {
718
				iter.next();
719
			} catch (Exception e) {
720
				ex = e;
721
			}
722
			assertNotNull(ex);
723
			assertEquals(ConcurrentDataModificationException.class, ex
724
					.getClass());
668
		Exception ex = null;
669
		try {
670
			iter.next();
671
		} catch (Exception e) {
672
			ex = e;
673
		}
674
		assertNotNull(ex);
675
		assertEquals(ConcurrentDataModificationException.class, ex.getClass());
725 676

  
726
			ex = null;
727
			try {
728
				set.getSize();
729
			} catch (Exception e) {
730
				ex = e;
731
			}
732
			assertNotNull(ex);
733
			assertEquals(ConcurrentDataModificationException.class, ex
734
					.getClass());
677
		ex = null;
678
		try {
679
			set.getSize();
680
		} catch (Exception e) {
681
			ex = e;
682
		}
683
		assertNotNull(ex);
684
		assertEquals(ConcurrentDataModificationException.class, ex.getClass());
735 685

  
736
			iter.dispose();
737
			result.dispose();
738
			this.clearCopy(store, newParams);
739
			store.dispose();
686
		iter.dispose();
687
		result.dispose();
688
		this.clearCopy(store, newParams);
689
		store.dispose();
740 690

  
741 691

  
742
		} catch (DataException e3) {
743
			e3.printStackTrace();
744
			fail();
745
			return;
746
		} catch (InterruptedException e) {
747
			e.printStackTrace();
748
			fail();
749
			return;
750
		}
692

  
751 693
	}
752 694

  
753
	public void testSequencedRemove() {
695
	public void testSequencedRemove() throws Exception {
754 696
		DataStoreParameters parameters = null;
755 697

  
756 698
		int ntimes = 3;
757 699

  
758
		try {
759
			parameters = getDefaultDataStoreParameters();
700
		parameters = getDefaultDataStoreParameters();
760 701

  
761
			FeatureStore store = (FeatureStore) dataManager
762
					.createStore(parameters);
702
		FeatureStore store = (FeatureStore) dataManager.createStore(parameters);
763 703

  
764
			NewFeatureStoreParameters newParams = this
765
					.getDefaultNewDataStoreParameters();
766
			try {
767
				this.clearCopy(store, newParams);
768
			} catch (RemoveException e) {
769
				//Dp nothing
770
			}
704
		NewFeatureStoreParameters newParams = this
705
				.getDefaultNewDataStoreParameters();
706
		try {
707
			this.clearCopy(store, newParams);
708
		} catch (RemoveException e) {
709
			// Dp nothing
710
		}
771 711

  
772
			FeatureStore result = this.getStoreCopy(store, newParams);
712
		FeatureStore result = this.getStoreCopy(store, newParams);
773 713

  
774
			result.edit(FeatureStore.MODE_FULLEDIT);
714
		result.edit(FeatureStore.MODE_FULLEDIT);
775 715

  
776
			DeleteLastFeature[] deletesFeature = new DeleteLastFeature[ntimes];
777
			int i;
778
			for (i = 0; i < deletesFeature.length; i++) {
779
				deletesFeature[i] = new DeleteLastFeature("DeleteLastFeature:"
780
						+ i, result, 300 * i);
781
			}
716
		DeleteLastFeature[] deletesFeature = new DeleteLastFeature[ntimes];
717
		int i;
718
		for (i = 0; i < deletesFeature.length; i++) {
719
			deletesFeature[i] = new DeleteLastFeature("DeleteLastFeature:" + i,
720
					result, 300 * i);
721
		}
782 722

  
783
			for (i = 0; i < deletesFeature.length; i++) {
784
				deletesFeature[i].start();
785
			}
723
		for (i = 0; i < deletesFeature.length; i++) {
724
			deletesFeature[i].start();
725
		}
786 726

  
787
			try {
788
				for (int x = 0; x < (deletesFeature.length + 2); x++) {
789
					Thread.yield();
790
					Thread.sleep(500);
791
				}
792

  
793
			} catch (InterruptedException e) {
794
				e.printStackTrace();
795
				result.dispose();
796
				fail();
797
				return;
727
		try {
728
			for (int x = 0; x < (deletesFeature.length + 2); x++) {
729
				Thread.yield();
730
				Thread.sleep(500);
798 731
			}
799 732

  
800
			boolean testAll = false;
801
			boolean restart;
802
			DeleteLastFeature item;
803
			while (!testAll) {
804
				restart = false;
805
				for (i = 0; i < deletesFeature.length; i++) {
806
					item = deletesFeature[i];
807
					if (item.getCurrentStatus() <= EditStore.STATUS_RUNING) {
808
						if (item.isOutOfDate()) {
809
							result.dispose();
810
							fail("OutOfDate: " + i);
811
							return;
812
						}
813
						try {
814
							Thread.yield();
815
							Thread.sleep(400);
816
						} catch (InterruptedException e) {
817
							e.printStackTrace();
818
							result.dispose();
819
							fail();
820
							return;
821
						}
822
						restart = true;
823
						break;
824
					} else if (item.getCurrentStatus() == EditStore.STATUS_ERROR) {
825
						item.getException().printStackTrace();
733
		} catch (InterruptedException e) {
734
			e.printStackTrace();
735
			result.dispose();
736
			fail();
737
			return;
738
		}
739

  
740
		boolean testAll = false;
741
		boolean restart;
742
		DeleteLastFeature item;
743
		while (!testAll) {
744
			restart = false;
745
			for (i = 0; i < deletesFeature.length; i++) {
746
				item = deletesFeature[i];
747
				if (item.getCurrentStatus() <= EditStore.STATUS_RUNING) {
748
					if (item.isOutOfDate()) {
826 749
						result.dispose();
827
						fail("ERROR: " + i);
750
						fail("OutOfDate: " + i);
828 751
						return;
829
					} else if (item.getCurrentStatus() != EditStore.STATUS_FINISHED_OK) {
830
						item.getException().printStackTrace();
752
					}
753
					try {
754
						Thread.yield();
755
						Thread.sleep(400);
756
					} catch (InterruptedException e) {
757
						e.printStackTrace();
831 758
						result.dispose();
832
						fail("Data ERROR: " + i);
759
						fail();
833 760
						return;
834 761
					}
762
					restart = true;
763
					break;
764
				} else if (item.getCurrentStatus() == EditStore.STATUS_ERROR) {
765
					item.getException().printStackTrace();
766
					result.dispose();
767
					fail("ERROR: " + i);
768
					return;
769
				} else if (item.getCurrentStatus() != EditStore.STATUS_FINISHED_OK) {
770
					item.getException().printStackTrace();
771
					result.dispose();
772
					fail("Data ERROR: " + i);
773
					return;
835 774
				}
836
				if (restart) {
837
					continue;
838
				}
839
				testAll = true;
840 775
			}
841

  
842
			FeatureSet set = result.getFeatureSet();
843
			FeatureSet originalSet = store.getFeatureSet();
844
			assertEquals(originalSet.getSize() - deletesFeature.length, set
845
					.getSize());
846

  
847
			DisposableIterator originalIter = originalSet.iterator();
848
			DisposableIterator iter = set.iterator();
849

  
850
			i = 0;
851
			while (iter.hasNext()) {
852
				assertTrue("" + i, compareFeatures((Feature) originalIter
853
						.next(), (Feature) iter.next()));
854
				i++;
776
			if (restart) {
777
				continue;
855 778
			}
779
			testAll = true;
780
		}
856 781

  
857
			originalIter.dispose();
858
			iter.dispose();
782
		FeatureSet set = result.getFeatureSet();
783
		FeatureSet originalSet = store.getFeatureSet();
784
		assertEquals(originalSet.getSize() - deletesFeature.length, set
785
				.getSize());
859 786

  
860
			set.dispose();
787
		DisposableIterator originalIter = originalSet.iterator();
788
		DisposableIterator iter = set.iterator();
861 789

  
862
			result.finishEditing();
790
		i = 0;
791
		while (iter.hasNext()) {
792
			assertTrue("" + i, compareFeatures((Feature) originalIter.next(),
793
					(Feature) iter.next()));
794
			i++;
795
		}
863 796

  
864
			set = result.getFeatureSet();
865
			assertEquals(originalSet.getSize() - deletesFeature.length, set
866
					.getSize());
797
		originalIter.dispose();
798
		iter.dispose();
867 799

  
868
			originalIter = originalSet.iterator();
869
			iter = set.iterator();
870
			i = 0;
871
			while (iter.hasNext()) {
872
				assertTrue("" + i, compareFeatures((Feature) originalIter
873
						.next(), (Feature) iter.next()));
874
				i++;
875
			}
800
		set.dispose();
876 801

  
802
		result.finishEditing();
877 803

  
878
			originalIter.dispose();
879
			iter.dispose();
804
		set = result.getFeatureSet();
805
		assertEquals(originalSet.getSize() - deletesFeature.length, set
806
				.getSize());
880 807

  
881
			set.dispose();
882
			originalSet.dispose();
808
		originalIter = originalSet.iterator();
809
		iter = set.iterator();
810
		i = 0;
811
		while (iter.hasNext()) {
812
			assertTrue("" + i, compareFeatures((Feature) originalIter.next(),
813
					(Feature) iter.next()));
814
			i++;
815
		}
883 816

  
884
			result.dispose();
885
			this.clearCopy(store, newParams);
886
			store.dispose();
887 817

  
888
		} catch (DataException e3) {
889
			e3.printStackTrace();
890
			fail();
891
			return;
892
		}
818
		originalIter.dispose();
819
		iter.dispose();
893 820

  
821
		set.dispose();
822
		originalSet.dispose();
823

  
824
		result.dispose();
825
		this.clearCopy(store, newParams);
826
		store.dispose();
894 827
	}
895 828

  
896
	public void testSequencedInsert() {
829
	public void testSequencedInsert() throws Exception {
897 830
		DataStoreParameters parameters = null;
898 831

  
899 832
		int ntimes = 3;
900 833

  
901
		try {
902
			parameters = getDefaultDataStoreParameters();
834
		parameters = getDefaultDataStoreParameters();
903 835

  
904 836

  
905
			FeatureStore store = (FeatureStore) dataManager
906
					.createStore(parameters);
837
		FeatureStore store = (FeatureStore) dataManager.createStore(parameters);
907 838

  
908
			NewFeatureStoreParameters newParams = this
909
					.getDefaultNewDataStoreParameters();
910
			try {
911
				this.clearCopy(store, newParams);
912
			} catch (RemoveException e) {
913
				//Dp nothing
914
			}
839
		NewFeatureStoreParameters newParams = this
840
				.getDefaultNewDataStoreParameters();
841
		try {
842
			this.clearCopy(store, newParams);
843
		} catch (RemoveException e) {
844
			// Dp nothing
845
		}
915 846

  
916
			FeatureStore result = this.getStoreCopy(store, newParams);
847
		FeatureStore result = this.getStoreCopy(store, newParams);
917 848

  
918
			result.edit(FeatureStore.MODE_FULLEDIT);
849
		result.edit(FeatureStore.MODE_FULLEDIT);
919 850

  
920
			InsertFeature[] insertsFeature = new InsertFeature[ntimes];
921
			int i;
922
			for (i = 0; i < insertsFeature.length; i++) {
923
				insertsFeature[i] = new InsertFeature("InsertFeature:" + i,
924
						result, 300 * i);
925
			}
851
		InsertFeature[] insertsFeature = new InsertFeature[ntimes];
852
		int i;
853
		for (i = 0; i < insertsFeature.length; i++) {
854
			insertsFeature[i] = new InsertFeature("InsertFeature:" + i, result,
855
					300 * i);
856
		}
926 857

  
927
			for (i = 0; i < insertsFeature.length; i++) {
928
				insertsFeature[i].start();
929
			}
858
		for (i = 0; i < insertsFeature.length; i++) {
859
			insertsFeature[i].start();
860
		}
930 861

  
931
			try {
862
		try {
932 863

  
933
				for (int x = 0; x < (insertsFeature.length + 2); x++) {
934
					Thread.yield();
935
					Thread.sleep(500);
936
				}
937

  
938
			} catch (InterruptedException e) {
939
				e.printStackTrace();
940
				result.dispose();
941
				fail();
942
				return;
864
			for (int x = 0; x < (insertsFeature.length + 2); x++) {
865
				Thread.yield();
866
				Thread.sleep(500);
943 867
			}
944 868

  
945
			boolean testAll = false;
946
			boolean restart;
947
			InsertFeature item;
948
			while (!testAll) {
949
				restart = false;
950
				for (i = 0; i < insertsFeature.length; i++) {
951
					item = insertsFeature[i];
952
					if (item.getCurrentStatus() <= EditStore.STATUS_RUNING) {
953
						if (item.isOutOfDate()) {
954
							result.dispose();
955
							fail("OutOfDate: " + i);
956
							return;
957
						}
958
						try {
959
							Thread.yield();
960
							Thread.sleep(400);
961
						} catch (InterruptedException e) {
962
							e.printStackTrace();
963
							result.dispose();
964
							fail();
965
							return;
966
						}
967
						restart = true;
968
						break;
969
					} else if (item.getCurrentStatus() == EditStore.STATUS_ERROR) {
970
						item.getException().printStackTrace();
869
		} catch (InterruptedException e) {
870
			e.printStackTrace();
871
			result.dispose();
872
			fail();
873
			return;
874
		}
875

  
876
		boolean testAll = false;
877
		boolean restart;
878
		InsertFeature item;
879
		while (!testAll) {
880
			restart = false;
881
			for (i = 0; i < insertsFeature.length; i++) {
882
				item = insertsFeature[i];
883
				if (item.getCurrentStatus() <= EditStore.STATUS_RUNING) {
884
					if (item.isOutOfDate()) {
971 885
						result.dispose();
972
						fail("ERROR: " + i);
886
						fail("OutOfDate: " + i);
973 887
						return;
974
					} else if (item.getCurrentStatus() == EditStore.STATUS_FINISHED_NO_OK) {
888
					}
889
					try {
890
						Thread.yield();
891
						Thread.sleep(400);
892
					} catch (InterruptedException e) {
893
						e.printStackTrace();
975 894
						result.dispose();
976
						fail("No OK: " + i);
895
						fail();
977 896
						return;
978
					} else if (item.getCurrentStatus() != EditStore.STATUS_FINISHED_OK) {
979
						item.getException().printStackTrace();
980
						result.dispose();
981
						fail("Data ERROR: " + i);
982
						return;
983

  
984 897
					}
898
					restart = true;
899
					break;
900
				} else if (item.getCurrentStatus() == EditStore.STATUS_ERROR) {
901
					item.getException().printStackTrace();
902
					result.dispose();
903
					fail("ERROR: " + i);
904
					return;
905
				} else if (item.getCurrentStatus() == EditStore.STATUS_FINISHED_NO_OK) {
906
					result.dispose();
907
					fail("No OK: " + i);
908
					return;
909
				} else if (item.getCurrentStatus() != EditStore.STATUS_FINISHED_OK) {
910
					item.getException().printStackTrace();
911
					result.dispose();
912
					fail("Data ERROR: " + i);
913
					return;
914

  
985 915
				}
986
				if (restart) {
987
					continue;
988
				}
989
				testAll = true;
990 916
			}
991

  
992
			FeatureSet set = result.getFeatureSet();
993
			FeatureSet originalSet = store.getFeatureSet();
994
			assertEquals(originalSet.getSize() + insertsFeature.length, set
995
					.getSize());
996

  
997
			DisposableIterator originalIter = originalSet.iterator();
998
			DisposableIterator iter = set.iterator();
999

  
1000
			i = 0;
1001
			while (originalIter.hasNext()) {
1002
				assertTrue("" + i, compareFeatures((Feature) originalIter
1003
						.next(), (Feature) iter.next()));
1004
				i++;
917
			if (restart) {
918
				continue;
1005 919
			}
1006
			for (; i < insertsFeature.length; i++) {
1007
				iter.next();
1008
			}
920
			testAll = true;
921
		}
1009 922

  
923
		FeatureSet set = result.getFeatureSet();
924
		FeatureSet originalSet = store.getFeatureSet();
925
		assertEquals(originalSet.getSize() + insertsFeature.length, set
926
				.getSize());
1010 927

  
1011
			originalIter.dispose();
1012
			iter.dispose();
928
		DisposableIterator originalIter = originalSet.iterator();
929
		DisposableIterator iter = set.iterator();
1013 930

  
1014
			set.dispose();
931
		i = 0;
932
		while (originalIter.hasNext()) {
933
			assertTrue("" + i, compareFeatures((Feature) originalIter.next(),
934
					(Feature) iter.next()));
935
			i++;
936
		}
937
		for (; i < insertsFeature.length; i++) {
938
			iter.next();
939
		}
1015 940

  
1016
			result.finishEditing();
1017 941

  
1018
			set = result.getFeatureSet();
1019
			assertEquals(originalSet.getSize() + insertsFeature.length, set
1020
					.getSize());
942
		originalIter.dispose();
943
		iter.dispose();
1021 944

  
1022
			originalIter = originalSet.iterator();
1023
			iter = set.iterator();
1024
			i = 0;
1025
			while (originalIter.hasNext()) {
1026
				assertTrue("" + i, compareFeatures((Feature) originalIter
1027
						.next(), (Feature) iter.next()));
1028
				i++;
1029
			}
1030
			for (; i < insertsFeature.length; i++) {
1031
				iter.next();
1032
			}
945
		set.dispose();
1033 946

  
1034
			set.dispose();
1035
			originalSet.dispose();
947
		result.finishEditing();
1036 948

  
1037
			result.dispose();
1038
			this.clearCopy(store, newParams);
1039
			store.dispose();
949
		set = result.getFeatureSet();
950
		assertEquals(originalSet.getSize() + insertsFeature.length, set
951
				.getSize());
1040 952

  
1041

  
1042
		} catch (DataException e3) {
1043
			e3.printStackTrace();
1044
			fail();
1045
			return;
953
		originalIter = originalSet.iterator();
954
		iter = set.iterator();
955
		i = 0;
956
		while (originalIter.hasNext()) {
957
			assertTrue("" + i, compareFeatures((Feature) originalIter.next(),
958
					(Feature) iter.next()));
959
			i++;
1046 960
		}
961
		for (; i < insertsFeature.length; i++) {
962
			iter.next();
963
		}
1047 964

  
965
		set.dispose();
966
		originalSet.dispose();
967

  
968
		result.dispose();
969
		this.clearCopy(store, newParams);
970
		store.dispose();
971

  
1048 972
	}
1049 973

  
1050 974

  
1051
	public void testUpdate() {
975
	public void testUpdate() throws Exception {
1052 976
		DataStoreParameters parameters = null;
1053 977

  
1054
		try {
1055
			parameters = getDefaultDataStoreParameters();
978
		parameters = getDefaultDataStoreParameters();
1056 979

  
1057
			FeatureStore store = (FeatureStore) dataManager
1058
					.createStore(parameters);
980
		FeatureStore store = (FeatureStore) dataManager.createStore(parameters);
1059 981

  
1060
			NewFeatureStoreParameters newParams = this
1061
					.getDefaultNewDataStoreParameters();
1062
			try {
1063
				this.clearCopy(store, newParams);
1064
			} catch (RemoveException e) {
1065
				//Dp nothing
1066
			}
982
		NewFeatureStoreParameters newParams = this
983
				.getDefaultNewDataStoreParameters();
984
		try {
985
			this.clearCopy(store, newParams);
986
		} catch (RemoveException e) {
987
			// Dp nothing
988
		}
1067 989

  
1068
			FeatureStore result = this.getStoreCopy(store, newParams);
990
		FeatureStore result = this.getStoreCopy(store, newParams);
1069 991

  
1070
			result.edit(FeatureStore.MODE_FULLEDIT);
992
		result.edit(FeatureStore.MODE_FULLEDIT);
1071 993

  
1072
			FeatureSet set = result.getFeatureSet();
1073
			long size = set.getSize();
994
		FeatureSet set = result.getFeatureSet();
995
		long size = set.getSize();
1074 996

  
1075
			set.dispose();
997
		set.dispose();
1076 998

  
1077
			UpdateFeature updater = new UpdateFeature("1", result,
1078
					UpdateFeature.TIME_TO_WAIT_NO_WAIT);
1079
			FeatureAttributeDescriptor attr = getFirstAttributeOfType(result.getDefaultFeatureType(), DataTypes.STRING);
1080
			assertNotNull("No String attributes found", attr);
999
		UpdateFeature updater = new UpdateFeature("1", result,
1000
				UpdateFeature.TIME_TO_WAIT_NO_WAIT);
1001
		FeatureAttributeDescriptor attr = getFirstAttributeOfType(result
1002
				.getDefaultFeatureType(), DataTypes.STRING);
1003
		assertNotNull("No String attributes found", attr);
1081 1004

  
1082
			updater.addUpdate(UpdateFeature.UPDATE_ALL_FEATURES,
1083
					attr.getName(), getEvaluatorToLower(attr.getName()));
1005
		updater.addUpdate(UpdateFeature.UPDATE_ALL_FEATURES, attr.getName(),
1006
				getEvaluatorToLower(attr.getName()));
1084 1007

  
1085
			updater.run();
1086
			while (updater.getCurrentStatus() < EditStore.STATUS_FINISHED_OK
1087
					&& !updater.isOutOfDate()) {
1088
				Thread.yield();
1089
				try {
1090
					Thread.sleep(200);
1091
				} catch (InterruptedException e) {
1092
					e.printStackTrace();
1093
					fail();
1094
				}
1008
		updater.run();
1009
		while (updater.getCurrentStatus() < EditStore.STATUS_FINISHED_OK
1010
				&& !updater.isOutOfDate()) {
1011
			Thread.yield();
1012
			try {
1013
				Thread.sleep(200);
1014
			} catch (InterruptedException e) {
1015
				e.printStackTrace();
1016
				fail();
1095 1017
			}
1096
			set = result.getFeatureSet();
1097
			DisposableIterator iter = set.iterator();
1018
		}
1019
		set = result.getFeatureSet();
1020
		DisposableIterator iter = set.iterator();
1098 1021

  
1099
			printFeatureTypeColNames(set.getDefaultFeatureType(), 15);
1100
			Feature f;
1101
			while (iter.hasNext()) {
1102
				f = (Feature) iter.next();
1103
				this.printFeature(f,false, 15);
1104
			}
1022
		printFeatureTypeColNames(set.getDefaultFeatureType(), 15);
1023
		Feature f;
1024
		while (iter.hasNext()) {
1025
			f = (Feature) iter.next();
1026
			this.printFeature(f, false, 15);
1027
		}
1105 1028

  
1106
			iter.dispose();
1029
		iter.dispose();
1107 1030

  
1108
			FeatureSet originalSet = store.getFeatureSet();
1031
		FeatureSet originalSet = store.getFeatureSet();
1109 1032

  
1110
			DisposableIterator originalIter = originalSet.iterator();
1033
		DisposableIterator originalIter = originalSet.iterator();
1111 1034

  
1112
			iter = set.iterator();
1035
		iter = set.iterator();
1113 1036

  
1114
			long i = 0;
1115
			while (originalIter.hasNext()) {
1116
				try {
1117
					assertTrue("" + i, compareFeatures((Feature) originalIter
1118
							.next(), (Feature) iter.next(), updater, i, size));
1119
				} catch (EvaluatorException e) {
1120
					e.printStackTrace();
1121
					fail();
1122
				}
1123
				i++;
1037
		long i = 0;
1038
		while (originalIter.hasNext()) {
1039
			try {
1040
				assertTrue("" + i, compareFeatures((Feature) originalIter
1041
						.next(), (Feature) iter.next(), updater, i, size));
1042
			} catch (EvaluatorException e) {
1043
				e.printStackTrace();
1044
				fail();
1124 1045
			}
1125
			iter.dispose();
1126
			originalIter.dispose();
1046
			i++;
1047
		}
1048
		iter.dispose();
1049
		originalIter.dispose();
1127 1050

  
1128 1051

  
1129
			set.dispose();
1052
		set.dispose();
1130 1053

  
1131
			result.finishEditing();
1054
		result.finishEditing();
1132 1055

  
1133
			set = result.getFeatureSet();
1134
			assertEquals(originalSet.getSize(), set.getSize());
1056
		set = result.getFeatureSet();
1057
		assertEquals(originalSet.getSize(), set.getSize());
1135 1058

  
1136
			originalIter = originalSet.iterator();
1137
			iter = set.iterator();
1138
			i = 0;
1139
			while (originalIter.hasNext()) {
1140
				try {
1141
					assertTrue("" + i, compareFeatures((Feature) originalIter
1142
							.next(), (Feature) iter.next(), updater, i, size));
1143
				} catch (EvaluatorException e) {
1144
					e.printStackTrace();
1145
					fail();
1146
				}
1147
				i++;
1059
		originalIter = originalSet.iterator();
1060
		iter = set.iterator();
1061
		i = 0;
1062
		while (originalIter.hasNext()) {
1063
			try {
1064
				assertTrue("" + i, compareFeatures((Feature) originalIter
1065
						.next(), (Feature) iter.next(), updater, i, size));
1066
			} catch (EvaluatorException e) {
1067
				e.printStackTrace();
1068
				fail();
1148 1069
			}
1070
			i++;
1071
		}
1149 1072

  
1150 1073

  
1151
			iter.dispose();
1152
			originalIter.dispose();
1153
			set.dispose();
1074
		iter.dispose();
1075
		originalIter.dispose();
1076
		set.dispose();
1154 1077

  
1155 1078

  
1156
			updater = new UpdateFeature("1", result,
1157
					UpdateFeature.TIME_TO_WAIT_NO_WAIT);
1079
		updater = new UpdateFeature("1", result,
1080
				UpdateFeature.TIME_TO_WAIT_NO_WAIT);
1158 1081

  
1159
			updater.addUpdate(UpdateFeature.UPDATE_ALL_FEATURES,
1160
					attr.getName(), getEvaluatorToLower(attr.getName()));
1082
		updater.addUpdate(UpdateFeature.UPDATE_ALL_FEATURES, attr.getName(),
1083
				getEvaluatorToLower(attr.getName()));
1161 1084

  
1162
			updater.run();
1163
			while (updater.getCurrentStatus() < EditStore.STATUS_FINISHED_OK
1164
					&& !updater.isOutOfDate()) {
1165
				Thread.yield();
1166
				try {
1167
					Thread.sleep(200);
1168
				} catch (InterruptedException e) {
1169
					e.printStackTrace();
1170
					fail();
1171
				}
1085
		updater.run();
1086
		while (updater.getCurrentStatus() < EditStore.STATUS_FINISHED_OK
1087
				&& !updater.isOutOfDate()) {
1088
			Thread.yield();
1089
			try {
1090
				Thread.sleep(200);
1091
			} catch (InterruptedException e) {
1092
				e.printStackTrace();
1093
				fail();
1172 1094
			}
1173
			set = result.getFeatureSet();
1095
		}
1096
		set = result.getFeatureSet();
1174 1097

  
1175
			iter = set.iterator();
1176
			originalIter = originalSet.iterator();
1177
			i = 0;
1178
			while (originalIter.hasNext()) {
1179
				try {
1180
					assertTrue("" + i, compareFeatures((Feature) originalIter
1181
							.next(), (Feature) iter.next(), updater, i, size));
1182
				} catch (EvaluatorException e) {
1183
					e.printStackTrace();
1184
					fail();
1185
				}
1186
				i++;
1098
		iter = set.iterator();
1099
		originalIter = originalSet.iterator();
1100
		i = 0;
1101
		while (originalIter.hasNext()) {
1102
			try {
1103
				assertTrue("" + i, compareFeatures((Feature) originalIter
1104
						.next(), (Feature) iter.next(), updater, i, size));
1105
			} catch (EvaluatorException e) {
1106
				e.printStackTrace();
1107
				fail();
1187 1108
			}
1109
			i++;
1110
		}
1188 1111

  
1189
			iter.dispose();
1190
			originalIter.dispose();
1191
			set.dispose();
1112
		iter.dispose();
1113
		originalIter.dispose();
1114
		set.dispose();
1192 1115

  
1193 1116

  
1194 1117

  
1195 1118

  
1196 1119

  
1197
			originalSet.dispose();
1120
		originalSet.dispose();
1198 1121

  
1199
			result.dispose();
1200
			this.clearCopy(store, newParams);
1201
			store.dispose();
1122
		result.dispose();
1123
		this.clearCopy(store, newParams);
1124
		store.dispose();
1202 1125

  
1203
		} catch (DataException e3) {
1204
			e3.printStackTrace();
1205
			fail();
1206
			return;
1207
		}
1208

  
1209 1126
	}
1210 1127

  
1211 1128

  
1212
	public void testResourceChangeNotification() {
1129
	public void testResourceChangeNotification() throws Exception{
1213 1130
		DataStoreParameters parameters = null;
1214 1131

  
1215
		try {
1216
			parameters = getDefaultDataStoreParameters();
1132
		parameters = getDefaultDataStoreParameters();
1217 1133

  
1218
			FeatureStore store = (FeatureStore) dataManager
1219
					.createStore(parameters);
1134
		FeatureStore store = (FeatureStore) dataManager.createStore(parameters);
1220 1135

  
1221
			NewFeatureStoreParameters newParams = this
1222
					.getDefaultNewDataStoreParameters();
1223
			try {
1224
				this.clearCopy(store, newParams);
1225
			} catch (RemoveException e) {
1226
				//Dp nothing
1227
			}
1136
		NewFeatureStoreParameters newParams = this
1137
				.getDefaultNewDataStoreParameters();
1138
		try {
1139
			this.clearCopy(store, newParams);
1140
		} catch (RemoveException e) {
1141
			// Dp nothing
1142
		}
1228 1143

  
1229
			FeatureStore result = this.getStoreCopy(store, newParams);
1144
		FeatureStore result = this.getStoreCopy(store, newParams);
1230 1145

  
1231
			FeatureStore result2 = (FeatureStore) dataManager
1146
		FeatureStore result2 = (FeatureStore) dataManager
1232 1147
				.createStore(newParams);
1233 1148

  
1234
			FeatureAttributeDescriptor attr = getFirstAttributeOfType(result.getDefaultFeatureType(), DataTypes.STRING);
1235
			assertNotNull("No String attributes found", attr);
1149
		FeatureAttributeDescriptor attr = getFirstAttributeOfType(result
1150
				.getDefaultFeatureType(), DataTypes.STRING);
1151
		assertNotNull("No String attributes found", attr);
1236 1152

  
1237 1153

  
1238
			UpdateFeature updater = new UpdateFeature("1", result,
1239
					UpdateFeature.TIME_TO_WAIT_NO_WAIT);
1154
		UpdateFeature updater = new UpdateFeature("1", result,
1155
				UpdateFeature.TIME_TO_WAIT_NO_WAIT);
1240 1156

  
1241
			updater.addUpdate(UpdateFeature.UPDATE_LAST_FEATURE,
1242
					attr.getName(), getEvaluatorToLower(attr.getName()));
1157
		updater.addUpdate(UpdateFeature.UPDATE_LAST_FEATURE, attr.getName(),
1158
				getEvaluatorToLower(attr.getName()));
1243 1159

  
1244
			StoreObserverForNotify observer = new StoreObserverForNotify(result2,FeatureStoreNotification.RESOURCE_CHANGED);
1245
			result2.addObserver(observer);
1160
		StoreObserverForNotify observer = new StoreObserverForNotify(result2,
1161
				FeatureStoreNotification.RESOURCE_CHANGED);
1162
		result2.addObserver(observer);
1246 1163

  
1247
			result.edit();
1248
			updater.run();
1249
			while (updater.getCurrentStatus() < EditStore.STATUS_FINISHED_OK
1250
					&& !updater.isOutOfDate()) {
1251
				Thread.yield();
1252
				try {
1253
					Thread.sleep(200);
1254
				} catch (InterruptedException e) {
1255
					e.printStackTrace();
1256
					fail();
1257
				}
1164
		result.edit();
1165
		updater.run();
1166
		while (updater.getCurrentStatus() < EditStore.STATUS_FINISHED_OK
1167
				&& !updater.isOutOfDate()) {
1168
			Thread.yield();
1169
			try {
1170
				Thread.sleep(200);
1171
			} catch (InterruptedException e) {
1172
				e.printStackTrace();
1173
				fail();
1258 1174
			}
1175
		}
... This diff was truncated because it exceeds the maximum size that can be displayed.

Also available in: Unified diff