Author: ppoddar
Date: Fri Apr 19 00:07:41 2013
New Revision: 1469643
URL: http://svn.apache.org/r1469643
Log:
Add a warning when complex id class is non-serializable
Modified:
openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/AnnotationPersistenceMetaDataParser.java
openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.java
openjpa/trunk/openjpa-persistence/src/main/resources/org/apache/openjpa/persistence/localizer.properties
Modified:
openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/AnnotationPersistenceMetaDataParser.java
URL:
http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/AnnotationPersistenceMetaDataParser.java?rev=1469643&r1=1469642&r2=1469643&view=diff
==============================================================================
---
openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/AnnotationPersistenceMetaDataParser.java
(original)
+++
openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/AnnotationPersistenceMetaDataParser.java
Fri Apr 19 00:07:41 2013
@@ -599,8 +599,13 @@ public class AnnotationPersistenceMetaDa
warnFlushMode(meta);
break;
case ID_CLASS:
- if (isMetaDataMode())
+ if (isMetaDataMode()) {
+ Class<?> idClass = ((IdClass)anno).value();
+ if (!Serializable.class.isAssignableFrom(idClass)) {
+ _log.warn(_loc.get("id-class-not-serializable",
idClass, _cls).toString());
+ }
meta.setObjectIdType(((IdClass) anno).value(), true);
+ }
break;
case NATIVE_QUERIES:
if (isQueryMode() && (meta.getSourceMode() &
MODE_QUERY)==0)
Modified:
openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.java
URL:
http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.java?rev=1469643&r1=1469642&r2=1469643&view=diff
==============================================================================
---
openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.java
(original)
+++
openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.java
Fri Apr 19 00:07:41 2013
@@ -21,6 +21,7 @@ package org.apache.openjpa.persistence;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
+import java.io.Serializable;
import java.lang.reflect.Field;
import java.lang.reflect.Member;
import java.lang.reflect.Method;
@@ -1266,6 +1267,9 @@ public class XMLPersistenceMetaDataParse
} catch (Throwable t) {
throw getException(_loc.get("invalid-id-class", meta, cls), t);
}
+ if (!Serializable.class.isAssignableFrom(idCls)) {
+
_conf.getConfigurationLog().warn(_loc.get("id-class-not-serializable", idCls,
_cls));
+ }
meta.setObjectIdType(idCls, true);
return true;
}
Modified:
openjpa/trunk/openjpa-persistence/src/main/resources/org/apache/openjpa/persistence/localizer.properties
URL:
http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence/src/main/resources/org/apache/openjpa/persistence/localizer.properties?rev=1469643&r1=1469642&r2=1469643&view=diff
==============================================================================
---
openjpa/trunk/openjpa-persistence/src/main/resources/org/apache/openjpa/persistence/localizer.properties
(original)
+++
openjpa/trunk/openjpa-persistence/src/main/resources/org/apache/openjpa/persistence/localizer.properties
Fri Apr 19 00:07:41 2013
@@ -256,3 +256,4 @@ EntityManagers this property should not
time.
shared-cache-mode-take-precedence: The DataCache is set to {0} while the
shared-cache-mode Element or \
javax.persistence.sharedCache.mode property is set to NONE. The
shared-cache-mode takes precedence and caching is disabled.
+id-class-not-serializable: The composite identity class "{0}" for entity "{1}"
is not serializable.
\ No newline at end of file