See http://hudson.opengeo.org/hudson/job/geotools-2.5.x/493/changes

Changes:

[aaime] GEOT-2561, ShapefileDataStore throws exception when storing a null 
geometry

[aaime] Make simplify filter visitor work on double negation as well

------------------------------------------
[...truncated 4372 lines...]
        at junit.framework.TestCase.runTest(TestCase.java:168)
        at junit.framework.TestCase.runBare(TestCase.java:134)
        at junit.framework.TestResult$1.protect(TestResult.java:110)
        at junit.framework.TestResult.runProtected(TestResult.java:128)
        at junit.framework.TestResult.run(TestResult.java:113)
        at junit.framework.TestCase.run(TestCase.java:124)
        at junit.framework.TestSuite.runTest(TestSuite.java:232)
        at junit.framework.TestSuite.run(TestSuite.java:227)
        at 
org.junit.internal.runners.JUnit38ClassRunner.run(JUnit38ClassRunner.java:81)
        at 
org.apache.maven.surefire.junit4.JUnit4TestSet.execute(JUnit4TestSet.java:62)
        at 
org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.executeTestSet(AbstractDirectoryTestSuite.java:140)
        at 
org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.execute(AbstractDirectoryTestSuite.java:127)
        at org.apache.maven.surefire.Surefire.run(Surefire.java:177)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:585)
        at 
org.apache.maven.surefire.booter.SurefireBooter.runSuitesInProcess(SurefireBooter.java:345)
        at 
org.apache.maven.surefire.booter.SurefireBooter.main(SurefireBooter.java:1009)
Jun 22, 2009 12:25:33 PM org.geotools.data.shapefile.shp.ShapefileReader <init>
WARNING: Could not open the .shx file, continuing assuming the .shp file is not 
sparse
java.io.FileNotFoundException: 
http://hudson.opengeo.org/hudson/job/geotools-2.5.x/ws/gt_2.5.x/modules/plugin/shapefile/target/test-classes/org/geotools/data/shapefile/test-data/shapes/stream.shx
 
        at 
org.geotools.data.shapefile.ShpFiles.getReadChannel(ShpFiles.java:821)
        at org.geotools.data.shapefile.shp.IndexFile.<init>(IndexFile.java:78)
        at 
org.geotools.data.shapefile.shp.ShapefileReader.<init>(ShapefileReader.java:162)
        at 
org.geotools.data.shapefile.ShapefileDataStore.openShapeReader(ShapefileDataStore.java:425)
        at 
org.geotools.data.shapefile.ShapefileDataStore.getAttributesReader(ShapefileDataStore.java:411)
        at 
org.geotools.data.shapefile.ShapefileDataStore.getFeatureReader(ShapefileDataStore.java:331)
        at 
org.geotools.data.shapefile.ShapefileDataStoreTest.testGetCount(ShapefileDataStoreTest.java:685)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:585)
        at junit.framework.TestCase.runTest(TestCase.java:168)
        at junit.framework.TestCase.runBare(TestCase.java:134)
        at junit.framework.TestResult$1.protect(TestResult.java:110)
        at junit.framework.TestResult.runProtected(TestResult.java:128)
        at junit.framework.TestResult.run(TestResult.java:113)
        at junit.framework.TestCase.run(TestCase.java:124)
        at junit.framework.TestSuite.runTest(TestSuite.java:232)
        at junit.framework.TestSuite.run(TestSuite.java:227)
        at 
org.junit.internal.runners.JUnit38ClassRunner.run(JUnit38ClassRunner.java:81)
        at 
org.apache.maven.surefire.junit4.JUnit4TestSet.execute(JUnit4TestSet.java:62)
        at 
org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.executeTestSet(AbstractDirectoryTestSuite.java:140)
        at 
org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.execute(AbstractDirectoryTestSuite.java:127)
        at org.apache.maven.surefire.Surefire.run(Surefire.java:177)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:585)
        at 
org.apache.maven.surefire.booter.SurefireBooter.runSuitesInProcess(SurefireBooter.java:345)
        at 
org.apache.maven.surefire.booter.SurefireBooter.main(SurefireBooter.java:1009)
Jun 22, 2009 12:25:33 PM org.geotools.data.shapefile.shp.ShapefileReader <init>
WARNING: Could not open the .shx file, continuing assuming the .shp file is not 
sparse
java.io.FileNotFoundException: 
http://hudson.opengeo.org/hudson/job/geotools-2.5.x/ws/gt_2.5.x/modules/plugin/shapefile/target/test-classes/org/geotools/data/shapefile/test-data/shapes/stream.shx
 
        at 
org.geotools.data.shapefile.ShpFiles.getReadChannel(ShpFiles.java:821)
        at org.geotools.data.shapefile.shp.IndexFile.<init>(IndexFile.java:78)
        at 
org.geotools.data.shapefile.shp.ShapefileReader.<init>(ShapefileReader.java:162)
        at 
org.geotools.data.shapefile.ShapefileDataStore.openShapeReader(ShapefileDataStore.java:425)
        at 
org.geotools.data.shapefile.ShapefileDataStore.getCount(ShapefileDataStore.java:987)
        at 
org.geotools.data.shapefile.ShapefileDataStoreTest.testGetCount(ShapefileDataStoreTest.java:691)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:585)
        at junit.framework.TestCase.runTest(TestCase.java:168)
        at junit.framework.TestCase.runBare(TestCase.java:134)
        at junit.framework.TestResult$1.protect(TestResult.java:110)
        at junit.framework.TestResult.runProtected(TestResult.java:128)
        at junit.framework.TestResult.run(TestResult.java:113)
        at junit.framework.TestCase.run(TestCase.java:124)
        at junit.framework.TestSuite.runTest(TestSuite.java:232)
        at junit.framework.TestSuite.run(TestSuite.java:227)
        at 
org.junit.internal.runners.JUnit38ClassRunner.run(JUnit38ClassRunner.java:81)
        at 
org.apache.maven.surefire.junit4.JUnit4TestSet.execute(JUnit4TestSet.java:62)
        at 
org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.executeTestSet(AbstractDirectoryTestSuite.java:140)
        at 
org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.execute(AbstractDirectoryTestSuite.java:127)
        at org.apache.maven.surefire.Surefire.run(Surefire.java:177)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:585)
        at 
org.apache.maven.surefire.booter.SurefireBooter.runSuitesInProcess(SurefireBooter.java:345)
        at 
org.apache.maven.surefire.booter.SurefireBooter.main(SurefireBooter.java:1009)
Jun 22, 2009 12:25:33 PM org.geotools.data.shapefile.ShapefileDataStore 
createSchema
WARNING: PRJ file not generated for null CoordinateReferenceSystem
Tests run: 23, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 1.466 sec
Running org.geotools.data.shapefile.shp.PolygonHandlerTest
Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: -0.031 sec
Running org.geotools.data.shapefile.indexed.IndexedShapefileDataStoreFactoryTest
Jun 22, 2009 12:25:33 PM org.geotools.data.DefaultTransaction finalize
SEVERE: There's code leaving transaction unclosed. Call Transaction.close() 
after using them to ensure they do not hold state such as JDCB connections or 
file handles
Jun 22, 2009 12:25:33 PM org.geotools.data.DefaultTransaction finalize
SEVERE: Unclosed transaction handle is 
'org.geotools.data.shapefile.ShapefileDataStoreTest.testWrite Transaction'
Jun 22, 2009 12:25:33 PM org.geotools.data.shapefile.ShapefileDataStoreFactory 
createNewShapefile
WARNING: File already exists: 
http://hudson.opengeo.org/hudson/job/geotools-2.5.x/ws/gt_2.5.x/modules/plugin/shapefile/target/test-classes/org/geotools/data/shapefile/test-data/shapes/statepop.shp
 
Tests run: 10, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.061 sec
Running org.geotools.index.rtree.fs.FileSystemPageStoreTest
Tests run: 3, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.122 sec
Running org.geotools.data.shapefile.StorageFileTest
Tests run: 4, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.009 sec

Results :

Failed tests: 
  testWriteNulls(org.geotools.data.shapefile.ShapefileNullHandlingTest)

Tests run: 167, Failures: 1, Errors: 0, Skipped: 0

Jun 22, 2009 12:25:34 PM org.geotools.data.shapefile.ShpFiles logCurrentLockers
SEVERE: The following locker still has a lock� read on 
file:/tmp/test-shp2485.shp by org.geotools.data.shapefile.shp.ShapefileReader
 it was created with the following stack trace
org.geotools.data.shapefile.ShpFilesLocker$Trace: Locking 
file:/tmp/test-shp2485.shp for read by 
org.geotools.data.shapefile.shp.ShapefileReader in thread main
        at 
org.geotools.data.shapefile.ShpFilesLocker.setTraceException(ShpFilesLocker.java:54)
        at 
org.geotools.data.shapefile.ShpFilesLocker.<init>(ShpFilesLocker.java:33)
        at org.geotools.data.shapefile.ShpFiles.acquireRead(ShpFiles.java:365)
        at 
org.geotools.data.shapefile.ShpFiles.getReadChannel(ShpFiles.java:813)
        at 
org.geotools.data.shapefile.shp.ShapefileReader.<init>(ShapefileReader.java:157)
        at 
org.geotools.data.shapefile.ShapefileDataStore.openShapeReader(ShapefileDataStore.java:425)
        at 
org.geotools.data.shapefile.ShapefileDataStore.getAttributesReader(ShapefileDataStore.java:411)
        at 
org.geotools.data.shapefile.ShapefileDataStore.getFeatureReader(ShapefileDataStore.java:331)
        at 
org.geotools.data.shapefile.ShapefileDataStore.getFeatureReader(ShapefileDataStore.java:326)
        at 
org.geotools.data.AbstractDataStore.getFeatureReader(AbstractDataStore.java:419)
        at 
org.geotools.data.shapefile.ShapefileDataStore.getFeatureReader(ShapefileDataStore.java:376)
        at 
org.geotools.data.TransactionStateDiff.writer(TransactionStateDiff.java:329)
        at 
org.geotools.data.AbstractDataStore.getFeatureWriter(AbstractDataStore.java:494)
        at 
org.geotools.data.AbstractDataStore.getFeatureWriter(AbstractDataStore.java:520)
        at 
org.geotools.data.shapefile.ShapefileDataStoreTest.testWrite(ShapefileDataStoreTest.java:773)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:585)
        at junit.framework.TestCase.runTest(TestCase.java:168)
        at junit.framework.TestCase.runBare(TestCase.java:134)
        at junit.framework.TestResult$1.protect(TestResult.java:110)
        at junit.framework.TestResult.runProtected(TestResult.java:128)
        at junit.framework.TestResult.run(TestResult.java:113)
        at junit.framework.TestCase.run(TestCase.java:124)
        at junit.framework.TestSuite.runTest(TestSuite.java:232)
        at junit.framework.TestSuite.run(TestSuite.java:227)
        at 
org.junit.internal.runners.JUnit38ClassRunner.run(JUnit38ClassRunner.java:81)
        at 
org.apache.maven.surefire.junit4.JUnit4TestSet.execute(JUnit4TestSet.java:62)
        at 
org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.executeTestSet(AbstractDirectoryTestSuite.java:140)
        at 
org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.execute(AbstractDirectoryTestSuite.java:127)
        at org.apache.maven.surefire.Surefire.run(Surefire.java:177)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:585)
        at 
org.apache.maven.surefire.booter.SurefireBooter.runSuitesInProcess(SurefireBooter.java:345)
        at 
org.apache.maven.surefire.booter.SurefireBooter.main(SurefireBooter.java:1009)
Jun 22, 2009 12:25:34 PM org.geotools.data.shapefile.ShpFiles logCurrentLockers
SEVERE: The following locker still has a lock� read on 
file:/tmp/test-shp2485.shx by org.geotools.data.shapefile.shp.IndexFile
 it was created with the following stack trace
org.geotools.data.shapefile.ShpFilesLocker$Trace: Locking 
file:/tmp/test-shp2485.shx for read by 
org.geotools.data.shapefile.shp.IndexFile in thread main
        at 
org.geotools.data.shapefile.ShpFilesLocker.setTraceException(ShpFilesLocker.java:54)
        at 
org.geotools.data.shapefile.ShpFilesLocker.<init>(ShpFilesLocker.java:33)
        at org.geotools.data.shapefile.ShpFiles.acquireRead(ShpFiles.java:365)
        at 
org.geotools.data.shapefile.ShpFiles.getReadChannel(ShpFiles.java:813)
        at org.geotools.data.shapefile.shp.IndexFile.<init>(IndexFile.java:78)
        at 
org.geotools.data.shapefile.shp.ShapefileReader.<init>(ShapefileReader.java:162)
        at 
org.geotools.data.shapefile.ShapefileDataStore.openShapeReader(ShapefileDataStore.java:425)
        at 
org.geotools.data.shapefile.ShapefileDataStore.getAttributesReader(ShapefileDataStore.java:411)
        at 
org.geotools.data.shapefile.ShapefileDataStore.getFeatureReader(ShapefileDataStore.java:331)
        at 
org.geotools.data.shapefile.ShapefileDataStore.getFeatureReader(ShapefileDataStore.java:326)
        at 
org.geotools.data.AbstractDataStore.getFeatureReader(AbstractDataStore.java:419)
        at 
org.geotools.data.shapefile.ShapefileDataStore.getFeatureReader(ShapefileDataStore.java:376)
        at 
org.geotools.data.TransactionStateDiff.writer(TransactionStateDiff.java:329)
        at 
org.geotools.data.AbstractDataStore.getFeatureWriter(AbstractDataStore.java:494)
        at 
org.geotools.data.AbstractDataStore.getFeatureWriter(AbstractDataStore.java:520)
        at 
org.geotools.data.shapefile.ShapefileDataStoreTest.testWrite(ShapefileDataStoreTest.java:773)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:585)
        at junit.framework.TestCase.runTest(TestCase.java:168)
        at junit.framework.TestCase.runBare(TestCase.java:134)
        at junit.framework.TestResult$1.protect(TestResult.java:110)
        at junit.framework.TestResult.runProtected(TestResult.java:128)
        at junit.framework.TestResult.run(TestResult.java:113)
        at junit.framework.TestCase.run(TestCase.java:124)
        at junit.framework.TestSuite.runTest(TestSuite.java:232)
        at junit.framework.TestSuite.run(TestSuite.java:227)
        at 
org.junit.internal.runners.JUnit38ClassRunner.run(JUnit38ClassRunner.java:81)
        at 
org.apache.maven.surefire.junit4.JUnit4TestSet.execute(JUnit4TestSet.java:62)
        at 
org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.executeTestSet(AbstractDirectoryTestSuite.java:140)
        at 
org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.execute(AbstractDirectoryTestSuite.java:127)
        at org.apache.maven.surefire.Surefire.run(Surefire.java:177)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:585)
        at 
org.apache.maven.surefire.booter.SurefireBooter.runSuitesInProcess(SurefireBooter.java:345)
        at 
org.apache.maven.surefire.booter.SurefireBooter.main(SurefireBooter.java:1009)
Jun 22, 2009 12:25:34 PM org.geotools.data.shapefile.ShpFiles logCurrentLockers
SEVERE: The following locker still has a lock� read on 
file:/tmp/test-shp2485.dbf by org.geotools.data.shapefile.dbf.DbaseFileReader
 it was created with the following stack trace
org.geotools.data.shapefile.ShpFilesLocker$Trace: Locking 
file:/tmp/test-shp2485.dbf for read by 
org.geotools.data.shapefile.dbf.DbaseFileReader in thread main
        at 
org.geotools.data.shapefile.ShpFilesLocker.setTraceException(ShpFilesLocker.java:54)
        at 
org.geotools.data.shapefile.ShpFilesLocker.<init>(ShpFilesLocker.java:33)
        at org.geotools.data.shapefile.ShpFiles.acquireRead(ShpFiles.java:365)
        at 
org.geotools.data.shapefile.ShpFiles.getReadChannel(ShpFiles.java:813)
        at 
org.geotools.data.shapefile.dbf.DbaseFileReader.<init>(DbaseFileReader.java:130)
        at 
org.geotools.data.shapefile.ShapefileDataStore.openDbfReader(ShapefileDataStore.java:450)
        at 
org.geotools.data.shapefile.ShapefileDataStore.getAttributesReader(ShapefileDataStore.java:411)
        at 
org.geotools.data.shapefile.ShapefileDataStore.getFeatureReader(ShapefileDataStore.java:331)
        at 
org.geotools.data.shapefile.ShapefileDataStore.getFeatureReader(ShapefileDataStore.java:326)
        at 
org.geotools.data.AbstractDataStore.getFeatureReader(AbstractDataStore.java:419)
        at 
org.geotools.data.shapefile.ShapefileDataStore.getFeatureReader(ShapefileDataStore.java:376)
        at 
org.geotools.data.TransactionStateDiff.writer(TransactionStateDiff.java:329)
        at 
org.geotools.data.AbstractDataStore.getFeatureWriter(AbstractDataStore.java:494)
        at 
org.geotools.data.AbstractDataStore.getFeatureWriter(AbstractDataStore.java:520)
        at 
org.geotools.data.shapefile.ShapefileDataStoreTest.testWrite(ShapefileDataStoreTest.java:773)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:585)
        at junit.framework.TestCase.runTest(TestCase.java:168)
        at junit.framework.TestCase.runBare(TestCase.java:134)
        at junit.framework.TestResult$1.protect(TestResult.java:110)
        at junit.framework.TestResult.runProtected(TestResult.java:128)
        at junit.framework.TestResult.run(TestResult.java:113)
        at junit.framework.TestCase.run(TestCase.java:124)
        at junit.framework.TestSuite.runTest(TestSuite.java:232)
        at junit.framework.TestSuite.run(TestSuite.java:227)
        at 
org.junit.internal.runners.JUnit38ClassRunner.run(JUnit38ClassRunner.java:81)
        at 
org.apache.maven.surefire.junit4.JUnit4TestSet.execute(JUnit4TestSet.java:62)
        at 
org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.executeTestSet(AbstractDirectoryTestSuite.java:140)
        at 
org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.execute(AbstractDirectoryTestSuite.java:127)
        at org.apache.maven.surefire.Surefire.run(Surefire.java:177)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:585)
        at 
org.apache.maven.surefire.booter.SurefireBooter.runSuitesInProcess(SurefireBooter.java:345)
        at 
org.apache.maven.surefire.booter.SurefireBooter.main(SurefireBooter.java:1009)
[INFO] ------------------------------------------------------------------------
[ERROR] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] There are test failures.

Please refer to 
http://hudson.opengeo.org/hudson/job/geotools-2.5.x/ws/gt_2.5.x/modules/plugin/shapefile/target/surefire-reports
  for the individual test results.
[INFO] ------------------------------------------------------------------------
[INFO] For more information, run Maven with the -e switch
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 4 minutes 34 seconds
[INFO] Finished at: Mon Jun 22 12:25:34 EDT 2009
[INFO] Final Memory: 45M/63M
[INFO] ------------------------------------------------------------------------


------------------------------------------------------------------------------
Are you an open source citizen? Join us for the Open Source Bridge conference!
Portland, OR, June 17-19. Two days of sessions, one day of unconference: $250.
Need another reason to go? 24-hour hacker lounge. Register today!
http://ad.doubleclick.net/clk;215844324;13503038;v?http://opensourcebridge.org
_______________________________________________
Geotools-devel mailing list
Geotools-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geotools-devel

Reply via email to