PrivacyTest

Hi

None of the tests in the PrivacyTest class pass when running within Eclipse. The details are below just so that someone searching for these errors will find this discussion.

Several of the failures are due to:

java.lang.ClassCastException: org.jivesoftware.smack.util.PacketParserUtils$2 cannot be cast to org.jivesoftware.smack.packet.Privacy

at org.jivesoftware.smack.PrivacyListManager.getRequest(PrivacyListManager.java:19 0)

These appear to be an artefact of running in Eclipse, as these errors do not appear when running “ant test” at the cli.

There are two others that are not due to this ClassCastException.

  • testCreateActiveList, which might be timing related. Note that there is a null pointer exception in Eclipse, and a 409 conflict when running at the cli.

  • testRemoveList which results in 409 conflict both in Eclipse and at the cli.

I’ll look into these latter two.

Regards

Nathan

public void testCreateActiveList() {

try {

String listName = “testCreateActiveList”;

PrivacyListManager privacyManager = PrivacyListManager.getInstanceFor(getConnection(0));//28 privacyManager is null.

PrivacyClient client = new PrivacyClient(privacyManager);

privacyManager.addListener(client);

public void testCreateTwoLists() {

try {

// Assert the list composition.

PrivacyList[] privacyLists = privacyManager.getPrivacyLists();//97 ClassCastException caused by:

java.lang.ClassCastException: org.jivesoftware.smack.util.PacketParserUtils$2 cannot be cast to org.jivesoftware.smack.packet.Privacy

at org.jivesoftware.smack.PrivacyListManager.getRequest(PrivacyListManager.java:19 0)

at org.jivesoftware.smack.PrivacyListManager.getPrivacyWithListNames(PrivacyListMa nager.java:254)

at org.jivesoftware.smack.PrivacyListManager.getPrivacyLists(PrivacyListManager.ja va:327)

public void testCreateAndUpdateList() {

try {

// Assert the list composition.

PrivacyList list = privacyManager.getPrivacyList(listName); //178

java.lang.ClassCastException: org.jivesoftware.smack.util.PacketParserUtils$2 cannot be cast to org.jivesoftware.smack.packet.Privacy

at org.jivesoftware.smack.PrivacyListManager.getRequest(PrivacyListManager.java:19 0)

at org.jivesoftware.smack.PrivacyListManager.getPrivacyListItems(PrivacyListManage r.java:303)

at org.jivesoftware.smack.PrivacyListManager.getPrivacyList(PrivacyListManager.jav a:317)

at org.jivesoftware.smack.packet.PrivacyTest.testCreateAndUpdateList(PrivacyTest.j ava:178)

public void testDenyDefaultList() {

try {

// The list should not exist and an error will be raised

privacyManager.getDefaultList();

java.lang.ClassCastException: org.jivesoftware.smack.util.PacketParserUtils$2 cannot be cast to org.jivesoftware.smack.packet.Privacy

at org.jivesoftware.smack.PrivacyListManager.getRequest(PrivacyListManager.java:19 0)

at org.jivesoftware.smack.PrivacyListManager.getPrivacyWithListNames(PrivacyListMa nager.java:254)

at org.jivesoftware.smack.PrivacyListManager.getDefaultList(PrivacyListManager.jav a:280)

at org.jivesoftware.smack.packet.PrivacyTest.testDenyDefaultList(PrivacyTest.java: 215)

public void testDenyActiveList() {

try {

privacyManager.getActiveList();

java.lang.ClassCastException: org.jivesoftware.smack.util.PacketParserUtils$2 cannot be cast to org.jivesoftware.smack.packet.Privacy

at org.jivesoftware.smack.PrivacyListManager.getRequest(PrivacyListManager.java:19 0)

at org.jivesoftware.smack.PrivacyListManager.getPrivacyWithListNames(PrivacyListMa nager.java:254)

at org.jivesoftware.smack.PrivacyListManager.getActiveList(PrivacyListManager.java :264)

at org.jivesoftware.smack.packet.PrivacyTest.testDenyActiveList(PrivacyTest.java:2 42)

public void testCreateDefaultList() {

try {

assertEquals(listName, privacyManager.getDefaultList().toString());

java.lang.ClassCastException: org.jivesoftware.smack.util.PacketParserUtils$2 cannot be cast to org.jivesoftware.smack.packet.Privacy

at org.jivesoftware.smack.PrivacyListManager.getRequest(PrivacyListManager.java:19 0)

at org.jivesoftware.smack.PrivacyListManager.getPrivacyWithListNames(PrivacyListMa nager.java:254)

at org.jivesoftware.smack.PrivacyListManager.getDefaultList(PrivacyListManager.jav a:280)

at org.jivesoftware.smack.packet.PrivacyTest.testCreateDefaultList(PrivacyTest.jav a:280)

public void testRemoveList() {

try {…

privacyManager.deletePrivacyList(listName);

conflict(409)

at org.jivesoftware.smack.PrivacyListManager.setRequest(PrivacyListManager.java:23 7)

at org.jivesoftware.smack.PrivacyListManager.deletePrivacyList(PrivacyListManager. java:450)

at org.jivesoftware.smack.packet.PrivacyTest.testRemoveList(PrivacyTest.java:322)

public void testPrivacyItems() {

try {

List privacyItems = privacyManager.getPrivacyList(listName).getItems();

java.lang.ClassCastException: org.jivesoftware.smack.util.PacketParserUtils$2 cannot be cast to org.jivesoftware.smack.packet.Privacy

at org.jivesoftware.smack.PrivacyListManager.getRequest(PrivacyListManager.java:19 0)

at org.jivesoftware.smack.PrivacyListManager.getPrivacyListItems(PrivacyListManage r.java:303)

at org.jivesoftware.smack.PrivacyListManager.getPrivacyList(PrivacyListManager.jav a:317)

at org.jivesoftware.smack.packet.PrivacyTest.testPrivacyItems(PrivacyTest.java:430 )

Your runtime classpath is not including build/resources/META-INF/smack.providers. The META-INF directory is included as part of the classpath when the jar file is created, but from your dev environment you will have to explicitly include it in you launch config.

Yep, see attached image for how I set that.

The ClassCastException has gone away, and I now have the two 409s that I can focus on.

Thanks!