Gyanús Set<Node>

A JackRabbit-es Node, Item és Property osztályok nem implementálják az equals() és hashCode() metódusokat, azokat az Object-től öröklik. Így nem érdemes Set-be rakni ezen objektumok példányait, hiszen többször is szerepelhet ugyanarra az elemre mutató objektum a halmazban.

Emiatt a kódban minden Set lehetséges hibás viselkedésre utal.

@Test
public void testSimpleRootNodeEquals() throws RepositoryException {
	final Node rootNode1 = session.getRootNode();
	final Node rootNode2 = session.getRootNode();
	assertTrue(rootNode1.isSame(rootNode2));
	// sajnos ez false, mert a Node nem implementálta az equals/hashCode
	// metódusokat
	assertFalse(rootNode1.equals(rootNode2));
}

Érdekesebb JCR JIRA bejegyzések: JCR-1137, JCR-1535.

Tartalom átvétel