List<Unit> succs = mbug.getSuccsOf(s1);
if (succs.size() == 1) {
Stmt s2 = (Stmt) succs.get(0);
if (s1 instanceof JAssignStmt && s2 instanceof JInvokeStmt && mbug.getPredsOf(s2).size() == 1) {
JAssignStmt js1 = (JAssignStmt) s1;
JInvokeStmt js2 = (JInvokeStmt) s2;
if (js1.containsInvokeExpr()
&& (js1.getInvokeExpr().getMethod().getSignature().equals("<dk.brics.xact.XML: java.util.Map getNamespaceMap()>")
|| js1.getInvokeExpr().getMethod().getSignature().equals("<dk.brics.xact.XML: java.util.Map getThreadNamespaceMap()>"))
&& js2.getInvokeExpr().getMethod().getSignature().equals("<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>")
&& js1.getDefBoxes().size() == 1 && js1.getDefBoxes().get(0) instanceof AbstractValueBox
&& js2.getInvokeExpr() instanceof JInterfaceInvokeExpr) {
Value v = ((AbstractValueBox) js1.getDefBoxes().get(0)).getValue();
JInterfaceInvokeExpr put = (JInterfaceInvokeExpr) js2.getInvokeExpr();
if (put.getBase().equivTo(v)) {
Origin origin = new Origin(m.getDeclaringClass().getName() + "." + m.getName(), getLineNumber(u), 0);
String prefix = getConstantString(put.getArg(0), origin);
String uri = getConstantString(put.getArg(1), origin);
String oldUri = namespaces.put(prefix, uri);