Index: entity-persistence/src/java/oracle/toplink/essentials/internal/helper/ConversionManager.java =================================================================== RCS file: /cvs/glassfish/entity-persistence/src/java/oracle/toplink/essentials/internal/helper/ConversionManager.java,v retrieving revision 1.7 diff -c -w -r1.7 ConversionManager.java *** entity-persistence/src/java/oracle/toplink/essentials/internal/helper/ConversionManager.java 4 Jan 2007 14:31:01 -0000 1.7 --- entity-persistence/src/java/oracle/toplink/essentials/internal/helper/ConversionManager.java 22 Mar 2007 15:06:45 -0000 *************** *** 401,407 **** // bug # 2799318 theClass = getPrimitiveClass((String)sourceObject); if (theClass == null) { ! theClass = getLoader().loadClass((String)sourceObject); } } catch (Exception exception) { throw ConversionException.couldNotBeConvertedToClass(sourceObject, ClassConstants.CLASS, exception); --- 401,407 ---- // bug # 2799318 theClass = getPrimitiveClass((String)sourceObject); if (theClass == null) { ! theClass = Class.forName((String)sourceObject, true, getLoader()); } } catch (Exception exception) { throw ConversionException.couldNotBeConvertedToClass(sourceObject, ClassConstants.CLASS, exception); Index: entity-persistence-tests/src/java/oracle/toplink/essentials/testing/models/cmp3/advanced/AdvancedTableCreator.java =================================================================== RCS file: /cvs/glassfish/entity-persistence-tests/src/java/oracle/toplink/essentials/testing/models/cmp3/advanced/AdvancedTableCreator.java,v retrieving revision 1.20 diff -c -w -r1.20 AdvancedTableCreator.java *** entity-persistence-tests/src/java/oracle/toplink/essentials/testing/models/cmp3/advanced/AdvancedTableCreator.java 1 Mar 2007 12:50:09 -0000 1.20 --- entity-persistence-tests/src/java/oracle/toplink/essentials/testing/models/cmp3/advanced/AdvancedTableCreator.java 22 Mar 2007 15:06:45 -0000 *************** *** 761,792 **** fieldNAME.setName("VEGETABLE_NAME"); fieldNAME.setTypeName("VARCHAR"); fieldNAME.setSize(30); ! fieldNAME.setIsPrimaryKey(false); ! fieldNAME.setIsIdentity(true); ! fieldNAME.setUnique(false); ! fieldNAME.setShouldAllowNull(false); table.addField(fieldNAME); FieldDefinition fieldCOLOR = new FieldDefinition(); fieldCOLOR.setName("VEGETABLE_COLOR"); fieldCOLOR.setTypeName("VARCHAR"); fieldCOLOR.setSize(30); ! fieldCOLOR.setIsPrimaryKey(false); ! fieldCOLOR.setIsIdentity(true); ! fieldCOLOR.setUnique(false); ! fieldCOLOR.setShouldAllowNull(false); table.addField(fieldCOLOR); FieldDefinition fieldCOST = new FieldDefinition(); fieldCOST.setName("COST"); fieldCOST.setTypeName("DOUBLE PRECIS"); fieldCOST.setSize(32); - fieldCOST.setIsPrimaryKey(true); - fieldCOST.setIsIdentity(true); - fieldCOST.setUnique(false); - fieldCOST.setShouldAllowNull(false); table.addField(fieldCOST); return table; } --- 761,786 ---- fieldNAME.setName("VEGETABLE_NAME"); fieldNAME.setTypeName("VARCHAR"); fieldNAME.setSize(30); ! fieldNAME.setIsPrimaryKey(true); table.addField(fieldNAME); FieldDefinition fieldCOLOR = new FieldDefinition(); fieldCOLOR.setName("VEGETABLE_COLOR"); fieldCOLOR.setTypeName("VARCHAR"); fieldCOLOR.setSize(30); ! fieldCOLOR.setIsPrimaryKey(true); table.addField(fieldCOLOR); FieldDefinition fieldCOST = new FieldDefinition(); fieldCOST.setName("COST"); fieldCOST.setTypeName("DOUBLE PRECIS"); fieldCOST.setSize(32); table.addField(fieldCOST); + FieldDefinition fieldTAGS = new FieldDefinition(); + fieldTAGS.setName("TAGS"); + fieldTAGS.setTypeName("BLOB"); + table.addField(fieldTAGS); return table; } Index: entity-persistence-tests/src/java/oracle/toplink/essentials/testing/models/cmp3/advanced/Vegetable.java =================================================================== RCS file: /cvs/glassfish/entity-persistence-tests/src/java/oracle/toplink/essentials/testing/models/cmp3/advanced/Vegetable.java,v retrieving revision 1.1 diff -c -w -r1.1 Vegetable.java *** entity-persistence-tests/src/java/oracle/toplink/essentials/testing/models/cmp3/advanced/Vegetable.java 19 Jan 2007 19:16:33 -0000 1.1 --- entity-persistence-tests/src/java/oracle/toplink/essentials/testing/models/cmp3/advanced/Vegetable.java 22 Mar 2007 15:06:45 -0000 *************** *** 34,39 **** --- 34,40 ---- public class Vegetable implements Serializable { private VegetablePK id; private double cost; + private String[] tags; public Vegetable() {} *************** *** 70,75 **** --- 71,84 ---- public void setId(VegetablePK id) { this.id = id; + } + + public String[] getTags() { + return this.tags; + } + + public void setTags(String[] tags) { + this.tags = tags; } public String toString() { Index: entity-persistence-tests/src/java/oracle/toplink/essentials/testing/tests/cmp3/advanced/AdvancedJunitTest.java =================================================================== RCS file: /cvs/glassfish/entity-persistence-tests/src/java/oracle/toplink/essentials/testing/tests/cmp3/advanced/AdvancedJunitTest.java,v retrieving revision 1.3 diff -c -w -r1.3 AdvancedJunitTest.java *** entity-persistence-tests/src/java/oracle/toplink/essentials/testing/tests/cmp3/advanced/AdvancedJunitTest.java 6 Mar 2007 16:27:06 -0000 1.3 --- entity-persistence-tests/src/java/oracle/toplink/essentials/testing/tests/cmp3/advanced/AdvancedJunitTest.java 22 Mar 2007 15:06:46 -0000 *************** *** 21,26 **** --- 21,28 ---- // Copyright (c) 1998, 2007, Oracle. All rights reserved. package oracle.toplink.essentials.testing.tests.cmp3.advanced; + import java.util.Arrays; + import javax.persistence.EntityManager; import junit.framework.*; *************** *** 56,67 **** } public static Test suite() { ! TestSuite suite = new TestSuite(); ! suite.setName("AdvancedJunitTest"); ! ! suite.addTest(new AdvancedJunitTest("testGF894")); ! suite.addTest(new AdvancedJunitTest("testGF1818")); ! suite.addTest(new AdvancedJunitTest("testGF1894")); return new TestSetup(suite) { protected void setUp() { --- 58,64 ---- } public static Test suite() { ! TestSuite suite = new TestSuite(AdvancedJunitTest.class); return new TestSetup(suite) { protected void setUp() { *************** *** 153,157 **** --- 150,198 ---- } em.close(); + } + + // GF1673, 2674 Java SE 6 classloading error for String[] field + public void testStringArrayField() { + EntityManager em = createEntityManager(); + em.getTransaction().begin(); + + VegetablePK pk = new VegetablePK("Tomato", "Red"); + String[] tags = {"California", "XE"}; + try { + Vegetable vegetable = new Vegetable(); + vegetable.setId(pk); + vegetable.setCost(2.09); + vegetable.setTags(tags); + + em.persist(vegetable); + em.getTransaction().commit(); + + } catch (RuntimeException e) { + if (em.getTransaction().isActive()){ + em.getTransaction().rollback(); + } + throw e; + } finally { + em.close(); + } + + em = createEntityManager(); + em.getTransaction().begin(); + Vegetable vegetable; + try { + vegetable = em.find(Vegetable.class, pk); + + assertNotNull(vegetable); + assertTrue(Arrays.equals(tags, vegetable.getTags())); + + } catch (RuntimeException e) { + if (em.getTransaction().isActive()){ + em.getTransaction().rollback(); + } + throw e; + } finally { + em.close(); + } } }