Here there is the snippet of code that I use to save my object:
        ...
        private AtomicReference<DataContext> context = new
AtomicReference<DataContext>(config.getDomain("PacketDomain").createDataContext());
        private <E> void CommitObjects(Class<E> objClass){
                synchronized(context){
                        try{
                                context.get().commitChanges();
                        } catch(ValidationException e){
                                log.warn("Validation failed. " + 
objClass.getName() +" discarded\n");
                                e.printStackTrace();
                                try{
                                        context.get().rollbackChanges();
                                } catch(Exception e1){
                                        e1.printStackTrace();
                                }
                        } catch(Exception e){
                                e.printStackTrace();
                                try{
                                        context.get().rollbackChanges();
                                } catch(Exception e1){
                                        e1.printStackTrace();
                                }
                                
                        }
                        log.debug("Registered Count:
"+context.get().getObjectStore().registeredObjectsCount());
                        log.debug("New Count: "+ 
context.get().newObjects().size());
                        log.debug("Delete Count: "+ 
context.get().deletedObjects().size());
                        log.debug("Modify Count: "+ 
context.get().modifiedObjects().size());
                        log.debug("Cache Size: 
"+context.get().getQueryCache().size());
                        
context.get().getObjectStore().getDataRowCache().clear();
                        context.get().getQueryCache().clear();
                }
        }


Moreover, as you can see, I tried to add a synchronization on context in the
method that commit objects: the result has been a NullPointerException in
DataObjectUtils.java, line 114:
ObjectId id = dataObject.getObjectId();
        if (!id.isTemporary()) {
            return id.getIdSnapshot();
        }
on "id" object.

Is there any other clues that may I provide?

Thank you very much
Best
cghersi


--
View this message in context: 
http://cayenne.195.n3.nabble.com/Temporary-ID-hasn-t-been-replaced-on-commit-tp3801043p3801212.html
Sent from the Cayenne - User mailing list archive at Nabble.com.

Reply via email to