Author: stliu
Date: 2012-05-17 01:43:28 -0400 (Thu, 17 May 2012)
New Revision: 21030
Added:
core/branches/Branch_3_3_2_GA_CP/testsuite/src/test/java/org/hibernate/test/typedescriptor/
core/branches/Branch_3_3_2_GA_CP/testsuite/src/test/java/org/hibernate/test/typedescriptor/CharInNativeQueryTest.java
core/branches/Branch_3_3_2_GA_CP/testsuite/src/test/java/org/hibernate/test/typedescriptor/Issue.hbm.xml
core/branches/Branch_3_3_2_GA_CP/testsuite/src/test/java/org/hibernate/test/typedescriptor/Issue.java
Modified:
core/branches/Branch_3_3_2_GA_CP/core/src/main/java/org/hibernate/cfg/Environment.java
core/branches/Branch_3_3_2_GA_CP/core/src/main/java/org/hibernate/cfg/HbmBinder.java
core/branches/Branch_3_3_2_GA_CP/core/src/main/java/org/hibernate/cfg/NamedSQLQuerySecondPass.java
core/branches/Branch_3_3_2_GA_CP/core/src/main/java/org/hibernate/collection/PersistentArrayHolder.java
core/branches/Branch_3_3_2_GA_CP/core/src/main/java/org/hibernate/collection/PersistentIdentifierBag.java
core/branches/Branch_3_3_2_GA_CP/core/src/main/java/org/hibernate/collection/PersistentList.java
core/branches/Branch_3_3_2_GA_CP/core/src/main/java/org/hibernate/dialect/Dialect.java
core/branches/Branch_3_3_2_GA_CP/core/src/main/java/org/hibernate/dialect/HSQLDialect.java
core/branches/Branch_3_3_2_GA_CP/core/src/main/java/org/hibernate/dialect/MySQLDialect.java
core/branches/Branch_3_3_2_GA_CP/core/src/main/java/org/hibernate/dialect/TypeNames.java
core/branches/Branch_3_3_2_GA_CP/core/src/main/java/org/hibernate/dialect/function/SQLFunctionTemplate.java
core/branches/Branch_3_3_2_GA_CP/core/src/main/java/org/hibernate/engine/ActionQueue.java
core/branches/Branch_3_3_2_GA_CP/core/src/main/java/org/hibernate/engine/query/ParamLocationRecognizer.java
core/branches/Branch_3_3_2_GA_CP/core/src/main/java/org/hibernate/engine/query/ParameterParser.java
core/branches/Branch_3_3_2_GA_CP/core/src/main/java/org/hibernate/engine/query/QueryPlanCache.java
core/branches/Branch_3_3_2_GA_CP/core/src/main/java/org/hibernate/exception/CacheSQLStateConverter.java
core/branches/Branch_3_3_2_GA_CP/core/src/main/java/org/hibernate/hql/classic/FromParser.java
core/branches/Branch_3_3_2_GA_CP/core/src/main/java/org/hibernate/impl/AbstractQueryImpl.java
core/branches/Branch_3_3_2_GA_CP/core/src/main/java/org/hibernate/impl/CriteriaImpl.java
core/branches/Branch_3_3_2_GA_CP/core/src/main/java/org/hibernate/loader/custom/CustomLoader.java
core/branches/Branch_3_3_2_GA_CP/core/src/main/java/org/hibernate/mapping/Column.java
core/branches/Branch_3_3_2_GA_CP/core/src/main/java/org/hibernate/persister/entity/AbstractEntityPersister.java
core/branches/Branch_3_3_2_GA_CP/core/src/main/java/org/hibernate/persister/entity/JoinedSubclassEntityPersister.java
core/branches/Branch_3_3_2_GA_CP/core/src/main/java/org/hibernate/persister/entity/SingleTableEntityPersister.java
core/branches/Branch_3_3_2_GA_CP/core/src/main/java/org/hibernate/type/ArrayType.java
core/branches/Branch_3_3_2_GA_CP/core/src/main/java/org/hibernate/type/ListType.java
core/branches/Branch_3_3_2_GA_CP/core/src/main/java/org/hibernate/util/StringHelper.java
Log:
JBPAPP-7291 HHH-2304 - Wrong type detection for sql type char(x) columns
Modified:
core/branches/Branch_3_3_2_GA_CP/core/src/main/java/org/hibernate/cfg/Environment.java
===================================================================
---
core/branches/Branch_3_3_2_GA_CP/core/src/main/java/org/hibernate/cfg/Environment.java 2012-05-17
02:54:18 UTC (rev 21029)
+++
core/branches/Branch_3_3_2_GA_CP/core/src/main/java/org/hibernate/cfg/Environment.java 2012-05-17
05:43:28 UTC (rev 21030)
@@ -772,7 +772,7 @@
* @return a human-readable name
*/
public static String isolationLevelToString(int isolation) {
- return (String) ISOLATION_LEVELS.get( new Integer(isolation) );
+ return (String) ISOLATION_LEVELS.get( isolation );
}
public static BytecodeProvider buildBytecodeProvider(Properties properties) {
Modified:
core/branches/Branch_3_3_2_GA_CP/core/src/main/java/org/hibernate/cfg/HbmBinder.java
===================================================================
---
core/branches/Branch_3_3_2_GA_CP/core/src/main/java/org/hibernate/cfg/HbmBinder.java 2012-05-17
02:54:18 UTC (rev 21029)
+++
core/branches/Branch_3_3_2_GA_CP/core/src/main/java/org/hibernate/cfg/HbmBinder.java 2012-05-17
05:43:28 UTC (rev 21030)
@@ -2591,9 +2591,9 @@
boolean cacheable = "true".equals( queryElem.attributeValue(
"cacheable" ) );
String region = queryElem.attributeValue( "cache-region" );
Attribute tAtt = queryElem.attribute( "timeout" );
- Integer timeout = tAtt == null ? null : new Integer( tAtt.getValue() );
+ Integer timeout = tAtt == null ? null : Integer.valueOf( tAtt.getValue() );
Attribute fsAtt = queryElem.attribute( "fetch-size" );
- Integer fetchSize = fsAtt == null ? null : new Integer( fsAtt.getValue() );
+ Integer fetchSize = fsAtt == null ? null : Integer.valueOf( fsAtt.getValue() );
Attribute roAttr = queryElem.attribute( "read-only" );
boolean readOnly = roAttr != null && "true".equals( roAttr.getValue()
);
Attribute cacheModeAtt = queryElem.attribute( "cache-mode" );
Modified:
core/branches/Branch_3_3_2_GA_CP/core/src/main/java/org/hibernate/cfg/NamedSQLQuerySecondPass.java
===================================================================
---
core/branches/Branch_3_3_2_GA_CP/core/src/main/java/org/hibernate/cfg/NamedSQLQuerySecondPass.java 2012-05-17
02:54:18 UTC (rev 21029)
+++
core/branches/Branch_3_3_2_GA_CP/core/src/main/java/org/hibernate/cfg/NamedSQLQuerySecondPass.java 2012-05-17
05:43:28 UTC (rev 21030)
@@ -59,9 +59,9 @@
boolean cacheable = "true".equals( queryElem.attributeValue(
"cacheable" ) );
String region = queryElem.attributeValue( "cache-region" );
Attribute tAtt = queryElem.attribute( "timeout" );
- Integer timeout = tAtt == null ? null : new Integer( tAtt.getValue() );
+ Integer timeout = tAtt == null ? null : Integer.valueOf( tAtt.getValue() );
Attribute fsAtt = queryElem.attribute( "fetch-size" );
- Integer fetchSize = fsAtt == null ? null : new Integer( fsAtt.getValue() );
+ Integer fetchSize = fsAtt == null ? null : Integer.valueOf( fsAtt.getValue() );
Attribute roAttr = queryElem.attribute( "read-only" );
boolean readOnly = roAttr != null && "true".equals( roAttr.getValue()
);
Attribute cacheModeAtt = queryElem.attribute( "cache-mode" );
Modified:
core/branches/Branch_3_3_2_GA_CP/core/src/main/java/org/hibernate/collection/PersistentArrayHolder.java
===================================================================
---
core/branches/Branch_3_3_2_GA_CP/core/src/main/java/org/hibernate/collection/PersistentArrayHolder.java 2012-05-17
02:54:18 UTC (rev 21029)
+++
core/branches/Branch_3_3_2_GA_CP/core/src/main/java/org/hibernate/collection/PersistentArrayHolder.java 2012-05-17
05:43:28 UTC (rev 21030)
@@ -207,14 +207,14 @@
int arraySize = Array.getLength(array);
int end;
if ( snSize > arraySize ) {
- for ( int i=arraySize; i<snSize; i++ ) deletes.add( new Integer(i) );
+ for ( int i=arraySize; i<snSize; i++ ) deletes.add( i );
end = arraySize;
}
else {
end = snSize;
}
for ( int i=0; i<end; i++ ) {
- if ( Array.get(array, i)==null && Array.get(sn, i)!=null ) deletes.add( new
Integer(i) );
+ if ( Array.get(array, i)==null && Array.get(sn, i)!=null ) deletes.add( i );
}
return deletes.iterator();
}
@@ -233,7 +233,7 @@
}
public Object getIndex(Object entry, int i, CollectionPersister persister) {
- return new Integer(i);
+ return i;
}
public Object getElement(Object entry) {
Modified:
core/branches/Branch_3_3_2_GA_CP/core/src/main/java/org/hibernate/collection/PersistentIdentifierBag.java
===================================================================
---
core/branches/Branch_3_3_2_GA_CP/core/src/main/java/org/hibernate/collection/PersistentIdentifierBag.java 2012-05-17
02:54:18 UTC (rev 21029)
+++
core/branches/Branch_3_3_2_GA_CP/core/src/main/java/org/hibernate/collection/PersistentIdentifierBag.java 2012-05-17
05:43:28 UTC (rev 21030)
@@ -89,7 +89,7 @@
beforeInitialize( persister, size );
for ( int i = 0; i < size; i+=2 ) {
identifiers.put(
- new Integer(i/2),
+ i/2,
persister.getIdentifierType().assemble( array[i], getSession(), owner )
);
values.add( persister.getElementType().assemble( array[i+1], getSession(), owner ) );
@@ -97,7 +97,7 @@
}
public Object getIdentifier(Object entry, int i) {
- return identifiers.get( new Integer(i) );
+ return identifiers.get( i );
}
public boolean isWrapper(Object collection) {
@@ -202,7 +202,7 @@
int i=0;
for (int j=0; j< values.size(); j++) {
Object value = values.get(j);
- result[i++] = persister.getIdentifierType().disassemble( identifiers.get( new
Integer(j) ), getSession(), null );
+ result[i++] = persister.getIdentifierType().disassemble( identifiers.get( j ),
getSession(), null );
result[i++] = persister.getElementType().disassemble( value, getSession(), null );
}
return result;
@@ -226,7 +226,7 @@
if ( snap.size()!= values.size() ) return false;
for ( int i=0; i<values.size(); i++ ) {
Object value = values.get(i);
- Object id = identifiers.get( new Integer(i) );
+ Object id = identifiers.get( i );
if (id==null) return false;
Object old = snap.get(id);
if ( elementType.isDirty( old, value, getSession() ) ) return false;
@@ -242,7 +242,7 @@
Map snap = (Map) getSnapshot();
List deletes = new ArrayList( snap.keySet() );
for ( int i=0; i<values.size(); i++ ) {
- if ( values.get(i)!=null ) deletes.remove( identifiers.get( new Integer(i) ) );
+ if ( values.get(i)!=null ) deletes.remove( identifiers.get( i ) );
}
return deletes.iterator();
}
@@ -257,7 +257,7 @@
public Object getSnapshotElement(Object entry, int i) {
Map snap = (Map) getSnapshot();
- Object id = identifiers.get( new Integer(i) );
+ Object id = identifiers.get( i );
return snap.get(id);
}
@@ -265,7 +265,7 @@
throws HibernateException {
Map snap = (Map) getSnapshot();
- Object id = identifiers.get( new Integer(i) );
+ Object id = identifiers.get( i );
return entry!=null && ( id==null || snap.get(id)==null );
}
@@ -273,7 +273,7 @@
if (entry==null) return false;
Map snap = (Map) getSnapshot();
- Object id = identifiers.get( new Integer(i) );
+ Object id = identifiers.get( i );
if (id==null) return false;
Object old = snap.get(id);
return old!=null && elemType.isDirty( old, entry, getSession() );
@@ -289,7 +289,7 @@
Object element = persister.readElement( rs, owner,
descriptor.getSuffixedElementAliases(), getSession() );
Object old = identifiers.put(
- new Integer( values.size() ),
+ values.size(),
persister.readIdentifier( rs, descriptor.getSuffixedIdentifierAlias(), getSession() )
);
if ( old==null ) values.add(element); //maintain correct duplication if loaded in a
cartesian product
@@ -307,7 +307,7 @@
while ( iter.hasNext() ) {
Object value = iter.next();
map.put(
- identifiers.get( new Integer(i++) ),
+ identifiers.get( i++ ),
persister.getElementType().deepCopy(value, entityMode, persister.getFactory())
);
}
@@ -324,7 +324,7 @@
int i=0;
while ( iter.hasNext() ) {
Object entry = iter.next();
- Integer loc = new Integer(i++);
+ Integer loc = i++;
if ( !identifiers.containsKey(loc) ) { //TODO: native ids
Serializable id = persister.getIdentifierGenerator().generate( getSession(), entry
);
identifiers.put(loc, id);
@@ -377,25 +377,25 @@
}
private void beforeRemove(int index) {
- Object removedId = identifiers.get( new Integer(index) );
+ Object removedId = identifiers.get( (index) );
int last = values.size()-1;
for ( int i=index; i<last; i++ ) {
- Object id = identifiers.get( new Integer(i+1) );
+ Object id = identifiers.get( (i+1) );
if ( id==null ) {
- identifiers.remove( new Integer(i) );
+ identifiers.remove( (i) );
}
else {
- identifiers.put( new Integer(i), id );
+ identifiers.put( (i), id );
}
}
- identifiers.put( new Integer(last), removedId );
+ identifiers.put( (last), removedId );
}
private void beforeAdd(int index) {
for ( int i=index; i<values.size(); i++ ) {
- identifiers.put( new Integer(i+1), identifiers.get( new Integer(i) ) );
+ identifiers.put( (i+1), identifiers.get( (i) ) );
}
- identifiers.remove( new Integer(index) );
+ identifiers.remove( (index) );
}
public Object remove(int index) {
Modified:
core/branches/Branch_3_3_2_GA_CP/core/src/main/java/org/hibernate/collection/PersistentList.java
===================================================================
---
core/branches/Branch_3_3_2_GA_CP/core/src/main/java/org/hibernate/collection/PersistentList.java 2012-05-17
02:54:18 UTC (rev 21029)
+++
core/branches/Branch_3_3_2_GA_CP/core/src/main/java/org/hibernate/collection/PersistentList.java 2012-05-17
05:43:28 UTC (rev 21030)
@@ -290,7 +290,7 @@
if (index<0) {
throw new ArrayIndexOutOfBoundsException("negative index");
}
- Object result = readElementByIndex( new Integer(index) );
+ Object result = readElementByIndex( (index) );
return result==UNKNOWN ? list.get(index) : result;
}
@@ -301,7 +301,7 @@
if (index<0) {
throw new ArrayIndexOutOfBoundsException("negative index");
}
- Object old = isPutQueueEnabled() ? readElementByIndex( new Integer(index) ) : UNKNOWN;
+ Object old = isPutQueueEnabled() ? readElementByIndex( (index) ) : UNKNOWN;
if ( old==UNKNOWN ) {
write();
return list.set(index, value);
@@ -336,7 +336,7 @@
throw new ArrayIndexOutOfBoundsException("negative index");
}
Object old = isPutQueueEnabled() ?
- readElementByIndex( new Integer(index) ) : UNKNOWN;
+ readElementByIndex( (index) ) : UNKNOWN;
if ( old==UNKNOWN ) {
write();
return list.remove(index);
@@ -442,7 +442,7 @@
int end;
if ( sn.size() > list.size() ) {
for ( int i=list.size(); i<sn.size(); i++ ) {
- deletes.add( indexIsFormula ? sn.get(i) : new Integer(i) );
+ deletes.add( indexIsFormula ? sn.get(i) : (i) );
}
end = list.size();
}
@@ -451,7 +451,7 @@
}
for ( int i=0; i<end; i++ ) {
if ( list.get(i)==null && sn.get(i)!=null ) {
- deletes.add( indexIsFormula ? sn.get(i) : new Integer(i) );
+ deletes.add( indexIsFormula ? sn.get(i) : (i) );
}
}
return deletes.iterator();
@@ -469,7 +469,7 @@
}
public Object getIndex(Object entry, int i, CollectionPersister persister) {
- return new Integer(i);
+ return (i);
}
public Object getElement(Object entry) {
Modified:
core/branches/Branch_3_3_2_GA_CP/core/src/main/java/org/hibernate/dialect/Dialect.java
===================================================================
---
core/branches/Branch_3_3_2_GA_CP/core/src/main/java/org/hibernate/dialect/Dialect.java 2012-05-17
02:54:18 UTC (rev 21029)
+++
core/branches/Branch_3_3_2_GA_CP/core/src/main/java/org/hibernate/dialect/Dialect.java 2012-05-17
05:43:28 UTC (rev 21030)
@@ -206,6 +206,8 @@
registerHibernateType( Types.BINARY, Hibernate.BINARY.getName() );
registerHibernateType( Types.BIT, Hibernate.BOOLEAN.getName() );
registerHibernateType( Types.CHAR, Hibernate.CHARACTER.getName() );
+ registerHibernateType( Types.CHAR, 1, Hibernate.CHARACTER.getName() );
+ registerHibernateType( Types.CHAR, 255, Hibernate.STRING.getName() );
registerHibernateType( Types.DATE, Hibernate.DATE.getName() );
registerHibernateType( Types.DOUBLE, Hibernate.DOUBLE.getName() );
registerHibernateType( Types.FLOAT, Hibernate.FLOAT.getName() );
@@ -313,12 +315,7 @@
public String getTypeName(int code, int length, int precision, int scale) throws
HibernateException {
String result = typeNames.get( code, length, precision, scale );
if ( result == null ) {
- throw new HibernateException(
- "No type mapping for java.sql.Types code: " +
- code +
- ", length: " +
- length
- );
+ throw new HibernateException(String.format( "No type mapping for java.sql.Types
code: %s, length: %s", code, length ));
}
return result;
}
Modified:
core/branches/Branch_3_3_2_GA_CP/core/src/main/java/org/hibernate/dialect/HSQLDialect.java
===================================================================
---
core/branches/Branch_3_3_2_GA_CP/core/src/main/java/org/hibernate/dialect/HSQLDialect.java 2012-05-17
02:54:18 UTC (rev 21029)
+++
core/branches/Branch_3_3_2_GA_CP/core/src/main/java/org/hibernate/dialect/HSQLDialect.java 2012-05-17
05:43:28 UTC (rev 21030)
@@ -63,7 +63,7 @@
registerColumnType( Types.BIGINT, "bigint" );
registerColumnType( Types.BINARY, "binary" );
registerColumnType( Types.BIT, "bit" );
- registerColumnType( Types.CHAR, "char(1)" );
+ registerColumnType( Types.CHAR, "char($l)" );
registerColumnType( Types.DATE, "date" );
registerColumnType( Types.DECIMAL, "decimal" );
registerColumnType( Types.DOUBLE, "double" );
Modified:
core/branches/Branch_3_3_2_GA_CP/core/src/main/java/org/hibernate/dialect/MySQLDialect.java
===================================================================
---
core/branches/Branch_3_3_2_GA_CP/core/src/main/java/org/hibernate/dialect/MySQLDialect.java 2012-05-17
02:54:18 UTC (rev 21029)
+++
core/branches/Branch_3_3_2_GA_CP/core/src/main/java/org/hibernate/dialect/MySQLDialect.java 2012-05-17
05:43:28 UTC (rev 21030)
@@ -49,7 +49,7 @@
registerColumnType( Types.SMALLINT, "smallint" );
registerColumnType( Types.TINYINT, "tinyint" );
registerColumnType( Types.INTEGER, "integer" );
- registerColumnType( Types.CHAR, "char(1)" );
+ registerColumnType( Types.CHAR, "char($l)" );
registerColumnType( Types.FLOAT, "float" );
registerColumnType( Types.DOUBLE, "double precision" );
registerColumnType( Types.DATE, "date" );
Modified:
core/branches/Branch_3_3_2_GA_CP/core/src/main/java/org/hibernate/dialect/TypeNames.java
===================================================================
---
core/branches/Branch_3_3_2_GA_CP/core/src/main/java/org/hibernate/dialect/TypeNames.java 2012-05-17
02:54:18 UTC (rev 21029)
+++
core/branches/Branch_3_3_2_GA_CP/core/src/main/java/org/hibernate/dialect/TypeNames.java 2012-05-17
05:43:28 UTC (rev 21030)
@@ -75,7 +75,7 @@
* @return the default type name associated with specified key
*/
public String get(int typecode) throws MappingException {
- String result = (String) defaults.get( new Integer(typecode) );
+ String result = (String) defaults.get( typecode );
if (result==null) throw new MappingException("No Dialect mapping for JDBC type:
" + typecode);
return result;
}
@@ -90,7 +90,7 @@
* if available and the default type name otherwise
*/
public String get(int typecode, int size, int precision, int scale) throws
MappingException {
- Map map = (Map) weighted.get( new Integer(typecode) );
+ Map map = (Map) weighted.get( typecode );
if ( map!=null && map.size()>0 ) {
// iterate entries ordered by capacity to find first fit
Iterator entries = map.entrySet().iterator();
@@ -115,12 +115,12 @@
* @param typecode the type key
*/
public void put(int typecode, int capacity, String value) {
- TreeMap map = (TreeMap)weighted.get( new Integer(typecode) );
+ TreeMap map = (TreeMap)weighted.get( typecode );
if (map == null) {// add new ordered map
map = new TreeMap();
- weighted.put( new Integer(typecode), map );
+ weighted.put( typecode, map );
}
- map.put(new Integer(capacity), value);
+ map.put( capacity, value);
}
/**
@@ -128,7 +128,7 @@
* @param typecode the type key
*/
public void put(int typecode, String value) {
- defaults.put( new Integer(typecode), value );
+ defaults.put( typecode, value );
}
}
Modified:
core/branches/Branch_3_3_2_GA_CP/core/src/main/java/org/hibernate/dialect/function/SQLFunctionTemplate.java
===================================================================
---
core/branches/Branch_3_3_2_GA_CP/core/src/main/java/org/hibernate/dialect/function/SQLFunctionTemplate.java 2012-05-17
02:54:18 UTC (rev 21029)
+++
core/branches/Branch_3_3_2_GA_CP/core/src/main/java/org/hibernate/dialect/function/SQLFunctionTemplate.java 2012-05-17
05:43:28 UTC (rev 21030)
@@ -82,7 +82,7 @@
}
}
- paramList.add( new Integer( Integer.parseInt( index.toString() ) - 1 ) );
+ paramList.add( Integer.valueOf( index.toString() ) - 1 );
index.delete( 0, index.length() );
}
else {
Modified:
core/branches/Branch_3_3_2_GA_CP/core/src/main/java/org/hibernate/engine/ActionQueue.java
===================================================================
---
core/branches/Branch_3_3_2_GA_CP/core/src/main/java/org/hibernate/engine/ActionQueue.java 2012-05-17
02:54:18 UTC (rev 21029)
+++
core/branches/Branch_3_3_2_GA_CP/core/src/main/java/org/hibernate/engine/ActionQueue.java 2012-05-17
05:43:28 UTC (rev 21030)
@@ -547,7 +547,7 @@
// doing the batch number before adding the name to the list is
// a faster way to get an accurate number.
- batchNumber = new Integer( actionBatches.size() );
+ batchNumber = ( actionBatches.size() );
latestBatches.put( entityName, batchNumber );
}
entityBatchNumber.put( currentEntity, batchNumber );
@@ -557,7 +557,7 @@
// now rebuild the insertions list. There is a batch for each entry in the name list.
for ( int i = 0; i < actionBatches.size(); i++ ) {
- List batch = ( List ) actionBatches.get( new Integer( i ) );
+ List batch = ( List ) actionBatches.get( ( i ) );
for ( Iterator batchItr = batch.iterator(); batchItr.hasNext(); ) {
EntityInsertAction action = ( EntityInsertAction ) batchItr.next();
insertions.add( action );
@@ -591,7 +591,7 @@
Integer associationBatchNumber = ( Integer ) entityBatchNumber.get( value );
if ( associationBatchNumber != null && associationBatchNumber.compareTo(
latestBatchNumberForType ) > 0 ) {
// create a new batch for this type. The batch number is the number of current
batches.
- latestBatchNumberForType = new Integer( actionBatches.size() );
+ latestBatchNumberForType = ( actionBatches.size() );
latestBatches.put( entityName, latestBatchNumberForType );
// since this entity will now be processed in the latest possible batch,
// we can be assured that it will come after all other associations,
Modified:
core/branches/Branch_3_3_2_GA_CP/core/src/main/java/org/hibernate/engine/query/ParamLocationRecognizer.java
===================================================================
---
core/branches/Branch_3_3_2_GA_CP/core/src/main/java/org/hibernate/engine/query/ParamLocationRecognizer.java 2012-05-17
02:54:18 UTC (rev 21029)
+++
core/branches/Branch_3_3_2_GA_CP/core/src/main/java/org/hibernate/engine/query/ParamLocationRecognizer.java 2012-05-17
05:43:28 UTC (rev 21030)
@@ -52,7 +52,7 @@
}
private void add(int position) {
- positions.add( new Integer( position ) );
+ positions.add( ( position ) );
}
public int[] buildPositionsArray() {
@@ -102,7 +102,7 @@
// Recognition code ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
public void ordinalParameter(int position) {
- ordinalParameterLocationList.add( new Integer( position ) );
+ ordinalParameterLocationList.add( ( position ) );
}
public void namedParameter(String name, int position) {
Modified:
core/branches/Branch_3_3_2_GA_CP/core/src/main/java/org/hibernate/engine/query/ParameterParser.java
===================================================================
---
core/branches/Branch_3_3_2_GA_CP/core/src/main/java/org/hibernate/engine/query/ParameterParser.java 2012-05-17
02:54:18 UTC (rev 21029)
+++
core/branches/Branch_3_3_2_GA_CP/core/src/main/java/org/hibernate/engine/query/ParameterParser.java 2012-05-17
05:43:28 UTC (rev 21030)
@@ -105,7 +105,7 @@
String param = sqlString.substring( indx + 1, chopLocation );
// make sure this "name" is an integral
try {
- new Integer( param );
+ Integer.valueOf( param );
}
catch( NumberFormatException e ) {
throw new QueryException( "JPA-style positional param was not an integral
ordinal" );
Modified:
core/branches/Branch_3_3_2_GA_CP/core/src/main/java/org/hibernate/engine/query/QueryPlanCache.java
===================================================================
---
core/branches/Branch_3_3_2_GA_CP/core/src/main/java/org/hibernate/engine/query/QueryPlanCache.java 2012-05-17
02:54:18 UTC (rev 21029)
+++
core/branches/Branch_3_3_2_GA_CP/core/src/main/java/org/hibernate/engine/query/QueryPlanCache.java 2012-05-17
05:43:28 UTC (rev 21030)
@@ -274,10 +274,10 @@
final String key = (String) entry.getKey();
final Integer valueCount;
if ( Collection.class.isInstance( entry.getValue() ) ) {
- valueCount = new Integer( ( (Collection) entry.getValue() ).size() );
+ valueCount = ( (Collection) entry.getValue() ).size();
}
else {
- valueCount = new Integer( 1 );
+ valueCount = 1;
}
parameterMetadata.put( key, valueCount );
}
Modified:
core/branches/Branch_3_3_2_GA_CP/core/src/main/java/org/hibernate/exception/CacheSQLStateConverter.java
===================================================================
---
core/branches/Branch_3_3_2_GA_CP/core/src/main/java/org/hibernate/exception/CacheSQLStateConverter.java 2012-05-17
02:54:18 UTC (rev 21029)
+++
core/branches/Branch_3_3_2_GA_CP/core/src/main/java/org/hibernate/exception/CacheSQLStateConverter.java 2012-05-17
05:43:28 UTC (rev 21030)
@@ -57,14 +57,14 @@
DATA_CATEGORIES.add( "21" );
DATA_CATEGORIES.add( "02" );
- INTEGRITY_VIOLATION_CATEGORIES.add( new Integer( 119 ) );
- INTEGRITY_VIOLATION_CATEGORIES.add( new Integer( 120 ) );
- INTEGRITY_VIOLATION_CATEGORIES.add( new Integer( 121 ) );
- INTEGRITY_VIOLATION_CATEGORIES.add( new Integer( 122 ) );
- INTEGRITY_VIOLATION_CATEGORIES.add( new Integer( 123 ) );
- INTEGRITY_VIOLATION_CATEGORIES.add( new Integer( 124 ) );
- INTEGRITY_VIOLATION_CATEGORIES.add( new Integer( 125 ) );
- INTEGRITY_VIOLATION_CATEGORIES.add( new Integer( 127 ) );
+ INTEGRITY_VIOLATION_CATEGORIES.add( ( 119 ) );
+ INTEGRITY_VIOLATION_CATEGORIES.add( ( 120 ) );
+ INTEGRITY_VIOLATION_CATEGORIES.add( ( 121 ) );
+ INTEGRITY_VIOLATION_CATEGORIES.add( ( 122 ) );
+ INTEGRITY_VIOLATION_CATEGORIES.add( ( 123 ) );
+ INTEGRITY_VIOLATION_CATEGORIES.add( ( 124 ) );
+ INTEGRITY_VIOLATION_CATEGORIES.add( ( 125 ) );
+ INTEGRITY_VIOLATION_CATEGORIES.add( ( 127 ) );
CONNECTION_CATEGORIES.add( "08" );
}
@@ -83,7 +83,7 @@
*/
public JDBCException convert(SQLException sqlException, String message, String sql) {
String sqlStateClassCode = JDBCExceptionHelper.extractSqlStateClassCode( sqlException
);
- Integer errorCode = new Integer( JDBCExceptionHelper.extractErrorCode( sqlException )
);
+ Integer errorCode = ( JDBCExceptionHelper.extractErrorCode( sqlException ) );
if ( sqlStateClassCode != null ) {
if ( SQL_GRAMMAR_CATEGORIES.contains( sqlStateClassCode ) ) {
return new SQLGrammarException( message, sqlException, sql );
Modified:
core/branches/Branch_3_3_2_GA_CP/core/src/main/java/org/hibernate/hql/classic/FromParser.java
===================================================================
---
core/branches/Branch_3_3_2_GA_CP/core/src/main/java/org/hibernate/hql/classic/FromParser.java 2012-05-17
02:54:18 UTC (rev 21029)
+++
core/branches/Branch_3_3_2_GA_CP/core/src/main/java/org/hibernate/hql/classic/FromParser.java 2012-05-17
05:43:28 UTC (rev 21030)
@@ -64,10 +64,10 @@
private static final Map JOIN_TYPES = new HashMap();
static {
- JOIN_TYPES.put( "left", new Integer( JoinFragment.LEFT_OUTER_JOIN ) );
- JOIN_TYPES.put( "right", new Integer( JoinFragment.RIGHT_OUTER_JOIN ) );
- JOIN_TYPES.put( "full", new Integer( JoinFragment.FULL_JOIN ) );
- JOIN_TYPES.put( "inner", new Integer( JoinFragment.INNER_JOIN ) );
+ JOIN_TYPES.put( "left", ( JoinFragment.LEFT_OUTER_JOIN ) );
+ JOIN_TYPES.put( "right", ( JoinFragment.RIGHT_OUTER_JOIN ) );
+ JOIN_TYPES.put( "full", ( JoinFragment.FULL_JOIN ) );
+ JOIN_TYPES.put( "inner", ( JoinFragment.INNER_JOIN ) );
}
public void token(String token, QueryTranslatorImpl q) throws QueryException {
Modified:
core/branches/Branch_3_3_2_GA_CP/core/src/main/java/org/hibernate/impl/AbstractQueryImpl.java
===================================================================
---
core/branches/Branch_3_3_2_GA_CP/core/src/main/java/org/hibernate/impl/AbstractQueryImpl.java 2012-05-17
02:54:18 UTC (rev 21029)
+++
core/branches/Branch_3_3_2_GA_CP/core/src/main/java/org/hibernate/impl/AbstractQueryImpl.java 2012-05-17
05:43:28 UTC (rev 21030)
@@ -156,21 +156,21 @@
}
public Query setFirstResult(int firstResult) {
- selection.setFirstRow( new Integer(firstResult) );
+ selection.setFirstRow( (firstResult) );
return this;
}
public Query setMaxResults(int maxResults) {
- selection.setMaxRows( new Integer(maxResults) );
+ selection.setMaxRows( (maxResults) );
return this;
}
public Query setTimeout(int timeout) {
- selection.setTimeout( new Integer(timeout) );
+ selection.setTimeout( (timeout) );
return this;
}
public Query setFetchSize(int fetchSize) {
- selection.setFetchSize( new Integer(fetchSize) );
+ selection.setFetchSize( (fetchSize) );
return this;
}
@@ -505,7 +505,7 @@
}
public Query setInteger(int position, int val) {
- setParameter(position, new Integer(val), Hibernate.INTEGER);
+ setParameter(position, (val), Hibernate.INTEGER);
return this;
}
@@ -629,7 +629,7 @@
}
public Query setInteger(String name, int val) {
- setParameter(name, new Integer(val), Hibernate.INTEGER);
+ setParameter(name, (val), Hibernate.INTEGER);
return this;
}
Modified:
core/branches/Branch_3_3_2_GA_CP/core/src/main/java/org/hibernate/impl/CriteriaImpl.java
===================================================================
---
core/branches/Branch_3_3_2_GA_CP/core/src/main/java/org/hibernate/impl/CriteriaImpl.java 2012-05-17
02:54:18 UTC (rev 21029)
+++
core/branches/Branch_3_3_2_GA_CP/core/src/main/java/org/hibernate/impl/CriteriaImpl.java 2012-05-17
05:43:28 UTC (rev 21030)
@@ -232,7 +232,7 @@
}
public Criteria setMaxResults(int maxResults) {
- this.maxResults = new Integer(maxResults);
+ this.maxResults = (maxResults);
return this;
}
@@ -241,7 +241,7 @@
}
public Criteria setFirstResult(int firstResult) {
- this.firstResult = new Integer(firstResult);
+ this.firstResult = (firstResult);
return this;
}
@@ -250,7 +250,7 @@
}
public Criteria setFetchSize(int fetchSize) {
- this.fetchSize = new Integer(fetchSize);
+ this.fetchSize = (fetchSize);
return this;
}
@@ -259,7 +259,7 @@
}
public Criteria setTimeout(int timeout) {
- this.timeout = new Integer(timeout);
+ this.timeout = (timeout);
return this;
}
Modified:
core/branches/Branch_3_3_2_GA_CP/core/src/main/java/org/hibernate/loader/custom/CustomLoader.java
===================================================================
---
core/branches/Branch_3_3_2_GA_CP/core/src/main/java/org/hibernate/loader/custom/CustomLoader.java 2012-05-17
02:54:18 UTC (rev 21029)
+++
core/branches/Branch_3_3_2_GA_CP/core/src/main/java/org/hibernate/loader/custom/CustomLoader.java 2012-05-17
05:43:28 UTC (rev 21030)
@@ -27,6 +27,7 @@
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
+import java.sql.Types;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.Iterator;
@@ -140,7 +141,7 @@
lockModes.add( rootRtn.getLockMode() );
resultColumnProcessors.add( new NonScalarResultColumnProcessor( returnableCounter++ )
);
nonScalarReturnList.add( rtn );
- entityOwners.add( new Integer( -1 ) );
+ entityOwners.add( ( -1 ) );
resultTypes.add( persister.getType() );
specifiedAliases.add( rootRtn.getAlias() );
entityAliases.add( rootRtn.getEntityAliases() );
@@ -155,7 +156,7 @@
lockModes.add( collRtn.getLockMode() );
resultColumnProcessors.add( new NonScalarResultColumnProcessor( returnableCounter++ )
);
nonScalarReturnList.add( rtn );
- collectionOwners.add( new Integer( -1 ) );
+ collectionOwners.add( ( -1 ) );
resultTypes.add( persister.getType() );
specifiedAliases.add( collRtn.getAlias() );
collectionAliases.add( collRtn.getCollectionAliases() );
@@ -164,7 +165,7 @@
if ( elementType.isEntityType() ) {
Queryable elementPersister = ( Queryable ) ( ( EntityType ) elementType
).getAssociatedJoinable( factory );
entityPersisters.add( elementPersister );
- entityOwners.add( new Integer( -1 ) );
+ entityOwners.add( ( -1 ) );
entityAliases.add( collRtn.getElementEntityAliases() );
ArrayHelper.addAll( querySpaces, elementPersister.getQuerySpaces() );
}
@@ -174,7 +175,7 @@
EntityFetchReturn fetchRtn = ( EntityFetchReturn ) rtn;
NonScalarReturn ownerDescriptor = fetchRtn.getOwner();
int ownerIndex = nonScalarReturnList.indexOf( ownerDescriptor );
- entityOwners.add( new Integer( ownerIndex ) );
+ entityOwners.add( ( ownerIndex ) );
lockModes.add( fetchRtn.getLockMode() );
Queryable ownerPersister = determineAppropriateOwnerPersister( ownerDescriptor );
EntityType fetchedType = ( EntityType ) ownerPersister.getPropertyType(
fetchRtn.getOwnerProperty() );
@@ -191,7 +192,7 @@
CollectionFetchReturn fetchRtn = ( CollectionFetchReturn ) rtn;
NonScalarReturn ownerDescriptor = fetchRtn.getOwner();
int ownerIndex = nonScalarReturnList.indexOf( ownerDescriptor );
- collectionOwners.add( new Integer( ownerIndex ) );
+ collectionOwners.add( ( ownerIndex ) );
lockModes.add( fetchRtn.getLockMode() );
Queryable ownerPersister = determineAppropriateOwnerPersister( ownerDescriptor );
String role = ownerPersister.getEntityName() + '.' +
fetchRtn.getOwnerProperty();
@@ -205,7 +206,7 @@
if ( elementType.isEntityType() ) {
Queryable elementPersister = ( Queryable ) ( ( EntityType ) elementType
).getAssociatedJoinable( factory );
entityPersisters.add( elementPersister );
- entityOwners.add( new Integer( ownerIndex ) );
+ entityOwners.add( ( ownerIndex ) );
entityAliases.add( fetchRtn.getElementEntityAliases() );
ArrayHelper.addAll( querySpaces, elementPersister.getQuerySpaces() );
}
@@ -612,11 +613,15 @@
int columnType = resultSetMetaData.getColumnType( columnPos );
int scale = resultSetMetaData.getScale( columnPos );
int precision = resultSetMetaData.getPrecision( columnPos );
+ int length = precision;
+ if ( columnType == Types.CHAR && (precision == 0 || precision ==
Integer.MAX_VALUE) ) {
+ length = resultSetMetaData.getColumnDisplaySize( columnPos );
+ }
return TypeFactory.heuristicType(
factory.getDialect().getHibernateTypeName(
columnType,
+ length,
precision,
- precision,
scale
)
);
Modified:
core/branches/Branch_3_3_2_GA_CP/core/src/main/java/org/hibernate/mapping/Column.java
===================================================================
---
core/branches/Branch_3_3_2_GA_CP/core/src/main/java/org/hibernate/mapping/Column.java 2012-05-17
02:54:18 UTC (rev 21029)
+++
core/branches/Branch_3_3_2_GA_CP/core/src/main/java/org/hibernate/mapping/Column.java 2012-05-17
05:43:28 UTC (rev 21030)
@@ -152,54 +152,54 @@
this.typeIndex = typeIndex;
}
+ public boolean isUnique() {
+ return unique;
+ }
+
public int getSqlTypeCode(Mapping mapping) throws MappingException {
org.hibernate.type.Type type = getValue().getType();
try {
- int sqlTypeCode = type.sqlTypes(mapping)[ getTypeIndex() ];
- if(getSqlTypeCode()!=null && getSqlTypeCode().intValue()!=sqlTypeCode) {
- throw new MappingException("SQLType code's does not match. mapped as "
+ sqlTypeCode + " but is " + getSqlTypeCode() );
+ int sqlTypeCode = type.sqlTypes( mapping )[getTypeIndex()];
+ if ( getSqlTypeCode() != null && getSqlTypeCode() != sqlTypeCode ) {
+ throw new MappingException( "SQLType code's does not match. mapped as "
+ sqlTypeCode + " but is " + getSqlTypeCode() );
}
return sqlTypeCode;
}
- catch (Exception e) {
+ catch ( Exception e ) {
throw new MappingException(
"Could not determine type for column " +
- name +
- " of type " +
- type.getClass().getName() +
- ": " +
- e.getClass().getName(),
+ name +
+ " of type " +
+ type.getClass().getName() +
+ ": " +
+ e.getClass().getName(),
e
- );
+ );
}
}
/**
* Returns the underlying columns sqltypecode.
* If null, it is because the sqltype code is unknown.
- *
+ *
* Use #getSqlTypeCode(Mapping) to retreive the sqltypecode used
* for the columns associated Value/Type.
- *
- * @return sqltypecode if it is set, otherwise null.
+ *
+ * @return sqlTypeCode if it is set, otherwise null.
*/
public Integer getSqlTypeCode() {
return sqlTypeCode;
}
-
- public void setSqlTypeCode(Integer typecode) {
- sqlTypeCode=typecode;
+
+ public void setSqlTypeCode(Integer typeCode) {
+ sqlTypeCode=typeCode;
}
-
- public boolean isUnique() {
- return unique;
- }
-
public String getSqlType(Dialect dialect, Mapping mapping) throws HibernateException {
- return sqlType==null ?
- dialect.getTypeName( getSqlTypeCode(mapping), getLength(), getPrecision(), getScale()
) :
- sqlType;
+ if ( sqlType == null ) {
+ sqlType = dialect.getTypeName( getSqlTypeCode( mapping ), getLength(), getPrecision(),
getScale() );
+ }
+ return sqlType;
}
public boolean equals(Object object) {
Modified:
core/branches/Branch_3_3_2_GA_CP/core/src/main/java/org/hibernate/persister/entity/AbstractEntityPersister.java
===================================================================
---
core/branches/Branch_3_3_2_GA_CP/core/src/main/java/org/hibernate/persister/entity/AbstractEntityPersister.java 2012-05-17
02:54:18 UTC (rev 21029)
+++
core/branches/Branch_3_3_2_GA_CP/core/src/main/java/org/hibernate/persister/entity/AbstractEntityPersister.java 2012-05-17
05:43:28 UTC (rev 21030)
@@ -556,7 +556,7 @@
if ( lazyAvailable && prop.isLazy() ) {
lazyProperties.add( prop.getName() );
lazyNames.add( prop.getName() );
- lazyNumbers.add( new Integer( i ) );
+ lazyNumbers.add( ( i ) );
lazyTypes.add( prop.getValue().getType() );
lazyColAliases.add( colAliases );
}
@@ -711,18 +711,18 @@
int propertyNumber = getSubclassPropertyIndex( lazyPropertyNames[i] );
int tableNumber = getSubclassPropertyTableNumber( propertyNumber );
- tableNumbers.add( new Integer( tableNumber ) );
+ tableNumbers.add( ( tableNumber ) );
int[] colNumbers = subclassPropertyColumnNumberClosure[propertyNumber];
for ( int j = 0; j < colNumbers.length; j++ ) {
if ( colNumbers[j]!=-1 ) {
- columnNumbers.add( new Integer( colNumbers[j] ) );
+ columnNumbers.add( ( colNumbers[j] ) );
}
}
int[] formNumbers = subclassPropertyFormulaNumberClosure[propertyNumber];
for ( int j = 0; j < formNumbers.length; j++ ) {
if ( formNumbers[j]!=-1 ) {
- formulaNumbers.add( new Integer( formNumbers[j] ) );
+ formulaNumbers.add( ( formNumbers[j] ) );
}
}
}
Modified:
core/branches/Branch_3_3_2_GA_CP/core/src/main/java/org/hibernate/persister/entity/JoinedSubclassEntityPersister.java
===================================================================
---
core/branches/Branch_3_3_2_GA_CP/core/src/main/java/org/hibernate/persister/entity/JoinedSubclassEntityPersister.java 2012-05-17
02:54:18 UTC (rev 21029)
+++
core/branches/Branch_3_3_2_GA_CP/core/src/main/java/org/hibernate/persister/entity/JoinedSubclassEntityPersister.java 2012-05-17
05:43:28 UTC (rev 21030)
@@ -117,7 +117,7 @@
final Object discriminatorValue;
if ( persistentClass.isPolymorphic() ) {
try {
- discriminatorValue = new Integer( persistentClass.getSubclassId() );
+ discriminatorValue = ( persistentClass.getSubclassId() );
discriminatorSQLString = discriminatorValue.toString();
}
catch (Exception e) {
@@ -278,7 +278,7 @@
factory.getSettings().getDefaultCatalogName(),
factory.getSettings().getDefaultSchemaName()
);
- Integer tabnum = new Integer( getTableId(tabname, subclassTableNameClosure) );
+ Integer tabnum = ( getTableId(tabname, subclassTableNameClosure) );
propTableNumbers.add(tabnum);
Iterator citer = prop.getColumnIterator();
@@ -336,7 +336,7 @@
// we now use subclass ids that are consistent across all
// persisters for a class hierarchy, so that the use of
// "foo.class = Bar" works in HQL
- Integer subclassId = new Integer( sc.getSubclassId() );//new Integer(k+1);
+ Integer subclassId = ( sc.getSubclassId() );//(k+1);
subclassesByDiscriminatorValue.put( subclassId, sc.getEntityName() );
discriminatorValues[k] = subclassId.toString();
int id = getTableId(
Modified:
core/branches/Branch_3_3_2_GA_CP/core/src/main/java/org/hibernate/persister/entity/SingleTableEntityPersister.java
===================================================================
---
core/branches/Branch_3_3_2_GA_CP/core/src/main/java/org/hibernate/persister/entity/SingleTableEntityPersister.java 2012-05-17
02:54:18 UTC (rev 21029)
+++
core/branches/Branch_3_3_2_GA_CP/core/src/main/java/org/hibernate/persister/entity/SingleTableEntityPersister.java 2012-05-17
05:43:28 UTC (rev 21030)
@@ -362,7 +362,7 @@
iter = persistentClass.getSubclassPropertyClosureIterator();
while ( iter.hasNext() ) {
Property prop = (Property) iter.next();
- Integer join = new Integer( persistentClass.getJoinNumber(prop) );
+ Integer join = ( persistentClass.getJoinNumber(prop) );
propertyJoinNumbers.add(join);
//propertyTableNumbersByName.put( prop.getName(), join );
@@ -642,7 +642,7 @@
for ( int i=0; i<props.length; i++ ) {
int propTableNumber = getSubclassPropertyTableNumber( props[i], classes[i] );
if ( isSubclassTableSequentialSelect(propTableNumber) &&
!isSubclassTableLazy(propTableNumber) ) {
- tableNumbers.add( new Integer(propTableNumber) );
+ tableNumbers.add( (propTableNumber) );
}
}
if ( tableNumbers.isEmpty() ) return null;
@@ -651,8 +651,8 @@
ArrayList columnNumbers = new ArrayList();
final int[] columnTableNumbers = getSubclassColumnTableNumberClosure();
for ( int i=0; i<getSubclassColumnClosure().length; i++ ) {
- if ( tableNumbers.contains( new Integer( columnTableNumbers[i] ) ) ) {
- columnNumbers.add( new Integer(i) );
+ if ( tableNumbers.contains( ( columnTableNumbers[i] ) ) ) {
+ columnNumbers.add( (i) );
}
}
@@ -660,8 +660,8 @@
ArrayList formulaNumbers = new ArrayList();
final int[] formulaTableNumbers = getSubclassColumnTableNumberClosure();
for ( int i=0; i<getSubclassFormulaTemplateClosure().length; i++ ) {
- if ( tableNumbers.contains( new Integer( formulaTableNumbers[i] ) ) ) {
- formulaNumbers.add( new Integer(i) );
+ if ( tableNumbers.contains( ( formulaTableNumbers[i] ) ) ) {
+ formulaNumbers.add( (i) );
}
}
Modified:
core/branches/Branch_3_3_2_GA_CP/core/src/main/java/org/hibernate/type/ArrayType.java
===================================================================
---
core/branches/Branch_3_3_2_GA_CP/core/src/main/java/org/hibernate/type/ArrayType.java 2012-05-17
02:54:18 UTC (rev 21029)
+++
core/branches/Branch_3_3_2_GA_CP/core/src/main/java/org/hibernate/type/ArrayType.java 2012-05-17
05:43:28 UTC (rev 21030)
@@ -127,7 +127,7 @@
int length = Array.getLength(array);
for ( int i=0; i<length; i++ ) {
//TODO: proxies!
- if ( Array.get(array, i)==element ) return new Integer(i);
+ if ( Array.get(array, i)==element ) return i;
}
return null;
}
Modified:
core/branches/Branch_3_3_2_GA_CP/core/src/main/java/org/hibernate/type/ListType.java
===================================================================
---
core/branches/Branch_3_3_2_GA_CP/core/src/main/java/org/hibernate/type/ListType.java 2012-05-17
02:54:18 UTC (rev 21029)
+++
core/branches/Branch_3_3_2_GA_CP/core/src/main/java/org/hibernate/type/ListType.java 2012-05-17
05:43:28 UTC (rev 21030)
@@ -72,7 +72,7 @@
List list = (List) collection;
for ( int i=0; i<list.size(); i++ ) {
//TODO: proxies!
- if ( list.get(i)==element ) return new Integer(i);
+ if ( list.get(i)==element ) return i;
}
return null;
}
Modified:
core/branches/Branch_3_3_2_GA_CP/core/src/main/java/org/hibernate/util/StringHelper.java
===================================================================
---
core/branches/Branch_3_3_2_GA_CP/core/src/main/java/org/hibernate/util/StringHelper.java 2012-05-17
02:54:18 UTC (rev 21029)
+++
core/branches/Branch_3_3_2_GA_CP/core/src/main/java/org/hibernate/util/StringHelper.java 2012-05-17
05:43:28 UTC (rev 21030)
@@ -352,7 +352,7 @@
inQuote = true;
}
else if ( c == character ) {
- locations.add( new Integer( indx ) );
+ locations.add(indx );
}
}
return ArrayHelper.toIntArray( locations );
Added:
core/branches/Branch_3_3_2_GA_CP/testsuite/src/test/java/org/hibernate/test/typedescriptor/CharInNativeQueryTest.java
===================================================================
---
core/branches/Branch_3_3_2_GA_CP/testsuite/src/test/java/org/hibernate/test/typedescriptor/CharInNativeQueryTest.java
(rev 0)
+++
core/branches/Branch_3_3_2_GA_CP/testsuite/src/test/java/org/hibernate/test/typedescriptor/CharInNativeQueryTest.java 2012-05-17
05:43:28 UTC (rev 21030)
@@ -0,0 +1,41 @@
+package org.hibernate.test.typedescriptor;
+
+import org.hibernate.Session;
+import org.hibernate.junit.functional.FunctionalTestCase;
+
+/**
+ * @author Strong Liu <stliu(a)hibernate.org>
+ */
+public class CharInNativeQueryTest extends FunctionalTestCase {
+ public CharInNativeQueryTest(String string) {
+ super( string );
+ }
+
+ @Override
+ public String[] getMappings() {
+ return new String[] { "typedescriptor/Issue.hbm.xml" };
+ }
+
+ public void testNativeQuery() {
+ Issue issue = new Issue();
+ issue.setIssueNumber( "HHH-2304" );
+ issue.setDescription( "Wrong type detection for sql type char(x) columns" );
+
+ Session session = openSession();
+ session.beginTransaction();
+ session.persist( issue );
+ session.getTransaction().commit();
+ session.close();
+
+ session = openSession();
+ session.beginTransaction();
+ Object issueNumber = session.createSQLQuery( "select issue.issueNumber from Issue
issue" ).uniqueResult();
+ session.getTransaction().commit();
+ session.close();
+
+ assertNotNull( issueNumber );
+ assertTrue( "actual type is "+issueNumber.getClass().getName(), issueNumber
instanceof String );
+ assertEquals( "HHH-2304", issueNumber );
+
+ }
+}
Added:
core/branches/Branch_3_3_2_GA_CP/testsuite/src/test/java/org/hibernate/test/typedescriptor/Issue.hbm.xml
===================================================================
---
core/branches/Branch_3_3_2_GA_CP/testsuite/src/test/java/org/hibernate/test/typedescriptor/Issue.hbm.xml
(rev 0)
+++
core/branches/Branch_3_3_2_GA_CP/testsuite/src/test/java/org/hibernate/test/typedescriptor/Issue.hbm.xml 2012-05-17
05:43:28 UTC (rev 21030)
@@ -0,0 +1,18 @@
+<?xml version="1.0"?>
+<!DOCTYPE hibernate-mapping PUBLIC
+ "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
+ "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
+
+
+<hibernate-mapping package="org.hibernate.test.typedescriptor">
+
+ <class name="Issue">
+ <id name="id">
+ <generator class="native"/>
+ </id>
+ <property name="description"/>
+ <property name="issueNumber">
+ <column name="issueNumber" sql-type="char(8)"/>
+ </property>
+ </class>
+</hibernate-mapping>
\ No newline at end of file
Added:
core/branches/Branch_3_3_2_GA_CP/testsuite/src/test/java/org/hibernate/test/typedescriptor/Issue.java
===================================================================
---
core/branches/Branch_3_3_2_GA_CP/testsuite/src/test/java/org/hibernate/test/typedescriptor/Issue.java
(rev 0)
+++
core/branches/Branch_3_3_2_GA_CP/testsuite/src/test/java/org/hibernate/test/typedescriptor/Issue.java 2012-05-17
05:43:28 UTC (rev 21030)
@@ -0,0 +1,35 @@
+package org.hibernate.test.typedescriptor;
+
+/**
+ * @author Strong Liu <stliu(a)hibernate.org>
+ */
+public class Issue {
+ private Long id;
+ private String description;
+ private String issueNumber;
+
+
+ public String getDescription() {
+ return description;
+ }
+
+ public void setDescription(String description) {
+ this.description = description;
+ }
+
+ public Long getId() {
+ return id;
+ }
+
+ public void setId(Long id) {
+ this.id = id;
+ }
+
+ public String getIssueNumber() {
+ return issueNumber;
+ }
+
+ public void setIssueNumber(String issueNumber) {
+ this.issueNumber = issueNumber;
+ }
+}