diff --git a/Code/JavaWrappers/MolOps.i b/Code/JavaWrappers/MolOps.i index 06fd4a16a..b32089fe3 100644 --- a/Code/JavaWrappers/MolOps.i +++ b/Code/JavaWrappers/MolOps.i @@ -37,3 +37,17 @@ %include +%ignore RDKit::MolOps::sanitizeMol(RWMol &,unsigned int &,unsigned int &); + +%inline %{ + int sanitizeMol(RDKit::RWMol &mol,int sanitizeOps){ + unsigned int opThatFailed; + try{ + RDKit::MolOps::sanitizeMol(mol,opThatFailed, + static_cast(sanitizeOps)); + } catch(...) { + + } + return static_cast(opThatFailed); + }; +%} diff --git a/Code/JavaWrappers/gmwrapper/src-test/org/RDKit/BasicMoleculeTests.java b/Code/JavaWrappers/gmwrapper/src-test/org/RDKit/BasicMoleculeTests.java index 46675bca4..e0fd5cb9d 100644 --- a/Code/JavaWrappers/gmwrapper/src-test/org/RDKit/BasicMoleculeTests.java +++ b/Code/JavaWrappers/gmwrapper/src-test/org/RDKit/BasicMoleculeTests.java @@ -189,6 +189,19 @@ public class BasicMoleculeTests extends GraphMolTest { public void testErrorHandling_BadKekulize() { RWMol.MolFromSmiles("c1cc1"); } + @Test(expected=MolSanitizeException.class) + public void testErrorHandling_BadKekulize2() { + RWMol mol=RWMol.MolFromSmiles("c1cc1",0,false); + RDKFuncs.sanitizeMol(mol); + } + @Test public void testErrorHandling_BadKekulize3() { + RWMol mol=RWMol.MolFromSmiles("c1cc1",0,false); + int ops=SanitizeFlags.SANITIZE_ALL.swigValue(); + int failedAt=RDKFuncs.sanitizeMol(mol,ops); + + assertEquals(failedAt,SanitizeFlags.SANITIZE_KEKULIZE.swigValue()); + } + /* @Test -- the contents of this test now in UnitTestPickling, testIssue219 public void testConformer(){ }