I am not using create account but creating account using my custom method as i need to pass more attributes than just username and password.
it was working all good until 4.0.5 however in 4.1 alpha 4 when i am using
result=createPacketCollectorAndSend(reg).nextResultOrThrow(SmackConfiguration.ge tDefaultPacketReplyTimeout());
on any error like conflict or flooding / resource-constraint error it goes in catch which is exptected as its nextResultOrThrow but in catch the exception is always null instead of the error.
when i use nextResult i can use if else to get the error response using IQ.type.error.
Registration reg = new Registration(accountattribs); reg.setType(IQ.Type.set); reg.setTo(ConnectionsManager.getInstance().getConnection().getServiceName()); result=createPacketCollectorAndSend(reg).nextResultOrThrow(SmackConfiguration.getDefaultPacketReplyTimeout()); if (result == null) { FileLog.d(log_tag, "No response from server."); response = "No response from server"; } else if (result.getType() == IQ.Type.error) { FileLog.d(log_tag, result.getError().toString()); response = result.getError().toString(); } else if (result.getType() == IQ.Type.result) { response = "Successful"; } } else { FileLog.d(log_tag, "Account creation not supported"); response = "Could not reach datacenter"; } } catch (SmackException.NotConnectedException nE ) { FileLog.e(log_tag, nE); } catch (XMPPException.XMPPErrorException xe){ FileLog.e(log_tag, xe); // XE is ALWAYS NULL on error }catch (SmackException.NoResponseException nR){ FileLog.e(log_tag, nR); } }