]> source.dussan.org Git - aspectj.git/commitdiff
test and fix for 120527 and test (commented out) for 127299
authoraclement <aclement>
Wed, 15 Feb 2006 11:10:46 +0000 (11:10 +0000)
committeraclement <aclement>
Wed, 15 Feb 2006 11:10:46 +0000 (11:10 +0000)
tests/bugs151/pr127299/ModelErrorConversion.aj [new file with mode: 0644]
tests/src/org/aspectj/systemtest/ajc151/Ajc151Tests.java
tests/src/org/aspectj/systemtest/ajc151/ajc151.xml

diff --git a/tests/bugs151/pr127299/ModelErrorConversion.aj b/tests/bugs151/pr127299/ModelErrorConversion.aj
new file mode 100644 (file)
index 0000000..3366e15
--- /dev/null
@@ -0,0 +1,51 @@
+aspect ModelErrorConversion {
+
+
+  // convert exception types
+  after(Entity entity) throwing (HibernateException e): modelExec(entity) {
+      convertException(e, entity, thisJoinPoint);
+  }
+  after(Entity entity) throwing (ServiceException e): modelExec(entity) {
+      convertException(e, entity, thisJoinPoint);
+  }
+  after(Entity entity) throwing (SOAPException e): modelExec(entity) {
+      convertException(e, entity, thisJoinPoint);
+  }
+  after(Entity entity) throwing (SOAPFaultException e): modelExec(entity) {
+      convertException(e, entity, thisJoinPoint);
+  }
+
+  /** execution of any method in the model */
+  pointcut modelExecStatic() : 
+      execution(* model..*(..));
+
+  pointcut modelExec(Entity entity) : 
+      modelExecStatic() && this(entity);
+  // soften the checked exceptions
+  declare soft: ServiceException: modelExecStatic(); 
+  declare soft: SOAPException: modelExecStatic(); 
+
+
+  /** Converts exceptions to model exceptions, storing context */
+  private void convertException(Exception e, Entity entity, 
+          JoinPoint jp) {
+      ModelException me = new ModelException(e);
+      me.setEntity(entity);
+      me.setArgs(jp.getArgs());
+      // ModelException extends RuntimeException, so this is unchecked
+      throw me;
+  }
+}
+
+class HibernateException extends RuntimeException {}
+class ServiceException extends Exception {}
+class SOAPException extends Exception {}
+class SOAPFaultException extends RuntimeException {}
+
+class Entity {}
+
+class ModelException extends RuntimeException {
+    public ModelException(Throwable t) { super(t); }
+    public void setEntity(Entity entity) {}
+    public void setArgs(Object[] argz) {}
+}
index 4407a8106dee4bc2755fe8dc0c586912bdac2595..b15102fa2ae5091dffae52b459be35094549ac35 100644 (file)
@@ -37,6 +37,8 @@ public class Ajc151Tests extends org.aspectj.testing.XMLBasedAjcTestCase {
   public void testIncorrectlyReferencingPointcuts_pr122452_2()    { runTest("incorrectly referencing pointcuts - 2");}
   public void testInlinevisitorNPE_pr123901() { runTest("inlinevisitor NPE");}
   //public void testExposingWithintype_enh123423() { runTest("exposing withintype");}
+  //public void testMissingImport_pr127299() { runTest("missing import gives funny message");}
+  public void testUnusedInterfaceMessage_pr120527() { runTest("incorrect unused interface message");}
   
   public void testMixingNumbersOfTypeParameters_pr125080()   { 
          runTest("mixing numbers of type parameters");    
index 10102fc77773fe0e0916bd05ed41156f6418decd..140d66e225bfb58308b6abae45c98d1fc39dd508 100644 (file)
@@ -7,6 +7,14 @@
         <compile files="pr122458.aj" options="-1.5 -emacssym"/>
     </ajc-test>  
     
+    <ajc-test dir="bugs151/pr127299" title="missing import gives funny message">
+        <compile files="ModelErrorConversion.aj" options="-1.5"/>
+    </ajc-test>  
+    
+    <ajc-test dir="bugs151/pr120527" title="incorrect unused interface message">
+        <compile files="Bugs.aj" options="-warn:unusedPrivate"/>
+    </ajc-test>  
+    
     <ajc-test dir="bugs151/pr123901" title="inlinevisitor NPE">
         <compile files="A.java,B.java" options="-1.5">
           <message kind="error" line="5" text="a.A cannot be resolved or is not a field"/>