Google Website Translator Gadget

Mostrando entradas con la etiqueta Exception. Mostrar todas las entradas
Mostrando entradas con la etiqueta Exception. Mostrar todas las entradas

jueves, 28 de marzo de 2013

Java 7: TreeSet add error

Quan programes, qualsevol detall es molt important.

Si detectes que al afegir un objecte a la llista, aquest no s'afegeix, revisa els següents punts:


TreeSet (http://docs.oracle.com/javase/7/docs/api/java/util/TreeSet.html) permet la creació de conjunts ordenats d'objectes. Amb la funció add es permet afegir objectes al conjunt.

add(E e)
Adds the specified element to this set if it is not already present.

En el cas que sigui un objecte creat per tu, cal generar una funció CompareTo (http://docs.oracle.com/javase/7/docs/api/java/lang/Comparable.html) que permeti saber si l'objecte existeix o no.

int compareTo(T o)
Compares this object with the specified object for order. Returns a negative integer, zero, or a positive integer as this object is less than, equal to, or greater than the specified object.

En el meu cas particular, he perdut 1 dia de feina per un error en la implementació de la funció de comparació d'un objecte. A veure si descobreixes on es l'error d'implementació:


if (IDUsuari!=null && pUsuari.IDUsuari!=null)
{ IDUsuari.compareToIgnoreCase(pUsuari.IDUsuari);}

Un cop revisat les diferents funcionalitats, t'adonaràs que el resultat de la comparació no es retorna!! . Vet aquí! l'error que tant va costar trobar!

Assegura't que la funció de comparació retorna correctament el valor de comparació.



lunes, 12 de noviembre de 2012

Oracle i Java: Com programar commit i rollback

www.oracle.com

Commit i Rollback amb Oracle i Java

Quan programes aplicacions i tens informació a grabar en diverses taules et cal tractar totes les sentències SQL com a un única transacció per a mantenir la integritat de la informació.
Per exemple: Si actualitzes la informació de la venda, i del stock disponible, han de ser efectuades al mateix temps.
La transacció es un conjunt de execucions que es tracten de manera única de manera que totes les instruccions son confirmades o denegades de manera conjunta.

Pas 1: Desactivar el auto commit.
Per defecte totes les instruccions es tracten com transaccions individuals, per tant cal desactivar-ho amb la instrucció:
con.setAutoCommit(false);


Pas 2: Activació manual de commit.
Un cop desactivat les instruccions SQL només seran confirmades si explicitament invoquem el mètode commit.
conn.commit();


Pas 3: Activació manual de rollback.
Si per alguna raó hi ha una incidència es pot evitar la grabació del tots els registres amb la instrucció rollback:
conn.rollback();


Enllaços relacionats:
http://docs.oracle.com/javase/tutorial/jdbc/basics/transactions.html

domingo, 12 de febrero de 2012

El misteriós error java.lang.ClassNotFoundException: com.sun.jndi.ldap.LdapcontextADFactory

Al món del IS et trobes de tant en tant un error al que li dones voltes i fas "googling" sense cap mena de resultat....
Errors que no hi eren abans...
Errors inexplicables en SW que sempre ha funcionat bé...
 i aquest era un d'aquests casos.

Fins que t'adones que el misterios missatge:
java.lang.ClassNotFoundException

No es més que la causa de un Find/Replace erròni...

Tot torna feliçment a la normalitat :-)
: com.sun.jndi.ldap.LdapcontextADFactory