-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/35528/
-----------------------------------------------------------

(Updated June 16, 2015, 8:21 p.m.)


Review request for Ambari, Jonathan Hurley and Nate Cole.


Changes
-------

Update diff to map String fields to CLOB type.


Bugs: AMBARI-11957
    https://issues.apache.org/jira/browse/AMBARI-11957


Repository: ambari


Description
-------

In one case we are seeing this exception while trying to store data from a view 
...

    java.lang.IllegalStateException:
    Exception Description: No transaction is currently active
        at 
org.eclipse.persistence.internal.jpa.transaction.EntityTransactionImpl.rollback(EntityTransactionImpl.java:176)
        at 
org.apache.ambari.server.view.persistence.DataStoreImpl.store(DataStoreImpl.java:135)
        at 
org.apache.ambari.view.hive.persistence.DataStoreStorage.store(DataStoreStorage.java:76)
        at 
org.apache.ambari.view.hive.resources.CRUDResourceManager.save(CRUDResourceManager.java:117)
        at 

The underlying exception ...

    Exception [EclipseLink-4002] (Eclipse Persistence Services - 
2.5.2.v20140319-9ad6abd): org.eclipse.persistence.exceptions.DatabaseException
    Internal Exception: org.postgresql.util.PSQLException: ERROR: value too 
long for type character varying(255)
    Error Code: 0
    Call: UPDATE DS_JOBIMPL_4 SET DS_applicationId = ?, DS_duration = ?, 
DS_sqlState = ?, DS_status = ?, DS_statusMessage = ? WHERE (DS_id = ?)
            bind => [6 parameters bound]


This occurs because the view tries to save an entity with a String type 
attribute which is mapped to a VARCHAR(255).  The dynamic entity code maps the 
String to a VARCHAR using the database default length.

Also, once the exception is thrown, the DataStore catches it and tries to 
rollback the transaction.  It looks like the tx is already inactive at this 
point so a different exception is thrown out.  The original exception should at 
least be logged by the DataStoreImpl.


Diffs (updated)
-----

  
ambari-server/src/main/java/org/apache/ambari/server/view/persistence/DataStoreImpl.java
 8353d63 
  
ambari-server/src/test/java/org/apache/ambari/server/view/persistence/DataStoreImplTest.java
 2b19b0a 

Diff: https://reviews.apache.org/r/35528/diff/


Testing
-------

Manual tested.

New unit tests added.

mvn clean test

all pass

[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 46:25 min
[INFO] Finished at: 2015-06-16T13:42:50-04:00
[INFO] Final Memory: 54M/1453M
[INFO] ------------------------------------------------------------------------


Thanks,

Tom Beerbower

Reply via email to