1 23 package org.hammurapi.inspectors; 24 25 import org.hammurapi.InspectorBase; 26 27 import com.pavelvlasov.jsel.JselException; 28 import com.pavelvlasov.jsel.OperationNameSpace.OperationNameSpaceEntry; 29 30 31 37 public class SynchronizedRunnableRunMethodRule 38 extends InspectorBase { 39 40 public void visit(com.pavelvlasov.jsel.Class clazz) { 41 try { 42 if (clazz.isKindOf("java.lang.Runnable")) { 43 OperationNameSpaceEntry entry = clazz.getOperationNamespace().find("run()"); 44 if (entry!=null && !entry.getInfo().getModifiers().contains("synchronized") && clazz.getName().equals(entry.getInfo().getDeclaringType().getName())) { 45 context.reportViolation(clazz); 46 } 47 } 48 } catch (JselException e) { 49 context.warn(clazz, e); 50 } 51 } 52 } 53 | Popular Tags |