[appengine-java] Generic type in GAE JDO. Howto?

2010-02-08 Thread Alex Lui
As java.util.Map isn't supported by GAE, I'm trying to create a class

@PersistenceCapable(identityType = IdentityType.APPLICATION,
detachable="true")
public class DAOMap implements
Map {
...

however, got such exception in Eclipse console

DataNucleus Enhancer (version 1.1.4) : Enhancement of classes
Errors were encountered when loading the specified MetaData files and
classes. See the nested exceptions for details
DataNucleus Enhancer completed with an error. Please review the
enhancer log for full details. Some classes may have been enhanced but
some caused errors
Feb 8, 2010 2:55:53 PM org.datanucleus.enhancer.DataNucleusEnhancer
main
SEVERE: DataNucleus Enhancer completed with an error. Please review
the enhancer log for full details. Some classes may have been enhanced
but some caused errors
Errors were encountered when loading the specified MetaData files and
classes. See the nested exceptions for details
org.datanucleus.exceptions.NucleusUserException: Errors were
encountered when loading the specified MetaData files and classes. See
the nested exceptions for details
at
org.datanucleus.metadata.MetaDataManager.loadClasses(MetaDataManager.java:
426)
at
org.datanucleus.enhancer.DataNucleusEnhancer.getFileMetadataForInput(DataNucleusEnhancer.java:
743)
at
org.datanucleus.enhancer.DataNucleusEnhancer.enhance(DataNucleusEnhancer.java:
545)
at
org.datanucleus.enhancer.DataNucleusEnhancer.main(DataNucleusEnhancer.java:
1252)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:
39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:
25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.google.appengine.tools.enhancer.Enhancer.execute(Enhancer.java:
57)
at com.google.appengine.tools.enhancer.Enhance.(Enhance.java:
60)
at com.google.appengine.tools.enhancer.Enhance.main(Enhance.java:41)
Caused by: java.lang.IllegalStateException: Unknown type: K
at
org.datanucleus.jdo.metadata.JDOAnnotationReader.processMemberAnnotations(JDOAnnotationReader.java:
1748)
at
org.datanucleus.metadata.annotations.AbstractAnnotationReader.getMetaDataForClass(AbstractAnnotationReader.java:
169)
at
org.datanucleus.metadata.annotations.AnnotationManagerImpl.getMetaDataForClass(AnnotationManagerImpl.java:
136)
at
org.datanucleus.metadata.MetaDataManager.loadAnnotationsForClass(MetaDataManager.java:
2278)
at
org.datanucleus.metadata.MetaDataManager.loadClasses(MetaDataManager.java:
385)
... 10 more
Nested Throwables StackTrace:
java.lang.IllegalStateException: Unknown type: K
at
org.datanucleus.jdo.metadata.JDOAnnotationReader.processMemberAnnotations(JDOAnnotationReader.java:
1748)
at
org.datanucleus.metadata.annotations.AbstractAnnotationReader.getMetaDataForClass(AbstractAnnotationReader.java:
169)
at
org.datanucleus.metadata.annotations.AnnotationManagerImpl.getMetaDataForClass(AnnotationManagerImpl.java:
136)
at
org.datanucleus.metadata.MetaDataManager.loadAnnotationsForClass(MetaDataManager.java:
2278)
at
org.datanucleus.metadata.MetaDataManager.loadClasses(MetaDataManager.java:
385)
at
org.datanucleus.enhancer.DataNucleusEnhancer.getFileMetadataForInput(DataNucleusEnhancer.java:
743)
at
org.datanucleus.enhancer.DataNucleusEnhancer.enhance(DataNucleusEnhancer.java:
545)
at
org.datanucleus.enhancer.DataNucleusEnhancer.main(DataNucleusEnhancer.java:
1252)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:
39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:
25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.google.appengine.tools.enhancer.Enhancer.execute(Enhancer.java:
57)
at com.google.appengine.tools.enhancer.Enhance.(Enhance.java:
60)
at com.google.appengine.tools.enhancer.Enhance.main(Enhance.java:41)
DataNucleus Enhancer completed and no classes were enhanced. Consult
the log for full details


Any idea?

-- 
You received this message because you are subscribed to the Google Groups 
"Google App Engine for Java" group.
To post to this group, send email to google-appengine-j...@googlegroups.com.
To unsubscribe from this group, send email to 
google-appengine-java+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine-java?hl=en.



Re: [appengine-java] Generic type in GAE JDO. Howto?

2010-02-11 Thread Ikai L (Google)
I'm a bit curious as you why you are trying to persist a collection class.
Why not create an entity and persist the Map as a field on the entity?

On Sun, Feb 7, 2010 at 10:57 PM, Alex Lui  wrote:

> As java.util.Map isn't supported by GAE, I'm trying to create a class
>
> @PersistenceCapable(identityType = IdentityType.APPLICATION,
> detachable="true")
> public class DAOMap implements
> Map {
> ...
>
> however, got such exception in Eclipse console
>
> DataNucleus Enhancer (version 1.1.4) : Enhancement of classes
> Errors were encountered when loading the specified MetaData files and
> classes. See the nested exceptions for details
> DataNucleus Enhancer completed with an error. Please review the
> enhancer log for full details. Some classes may have been enhanced but
> some caused errors
> Feb 8, 2010 2:55:53 PM org.datanucleus.enhancer.DataNucleusEnhancer
> main
> SEVERE: DataNucleus Enhancer completed with an error. Please review
> the enhancer log for full details. Some classes may have been enhanced
> but some caused errors
> Errors were encountered when loading the specified MetaData files and
> classes. See the nested exceptions for details
> org.datanucleus.exceptions.NucleusUserException: Errors were
> encountered when loading the specified MetaData files and classes. See
> the nested exceptions for details
>at
> org.datanucleus.metadata.MetaDataManager.loadClasses(MetaDataManager.java:
> 426)
>at
>
> org.datanucleus.enhancer.DataNucleusEnhancer.getFileMetadataForInput(DataNucleusEnhancer.java:
> 743)
>at
>
> org.datanucleus.enhancer.DataNucleusEnhancer.enhance(DataNucleusEnhancer.java:
> 545)
>at
> org.datanucleus.enhancer.DataNucleusEnhancer.main(DataNucleusEnhancer.java:
> 1252)
>at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:
> 39)
>at
>
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:
> 25)
>at java.lang.reflect.Method.invoke(Method.java:597)
>at
> com.google.appengine.tools.enhancer.Enhancer.execute(Enhancer.java:
> 57)
>at com.google.appengine.tools.enhancer.Enhance.(Enhance.java:
> 60)
>at com.google.appengine.tools.enhancer.Enhance.main(Enhance.java:41)
> Caused by: java.lang.IllegalStateException: Unknown type: K
>at
>
> org.datanucleus.jdo.metadata.JDOAnnotationReader.processMemberAnnotations(JDOAnnotationReader.java:
> 1748)
>at
>
> org.datanucleus.metadata.annotations.AbstractAnnotationReader.getMetaDataForClass(AbstractAnnotationReader.java:
> 169)
>at
>
> org.datanucleus.metadata.annotations.AnnotationManagerImpl.getMetaDataForClass(AnnotationManagerImpl.java:
> 136)
>at
>
> org.datanucleus.metadata.MetaDataManager.loadAnnotationsForClass(MetaDataManager.java:
> 2278)
>at
> org.datanucleus.metadata.MetaDataManager.loadClasses(MetaDataManager.java:
> 385)
>... 10 more
> Nested Throwables StackTrace:
> java.lang.IllegalStateException: Unknown type: K
>at
>
> org.datanucleus.jdo.metadata.JDOAnnotationReader.processMemberAnnotations(JDOAnnotationReader.java:
> 1748)
>at
>
> org.datanucleus.metadata.annotations.AbstractAnnotationReader.getMetaDataForClass(AbstractAnnotationReader.java:
> 169)
>at
>
> org.datanucleus.metadata.annotations.AnnotationManagerImpl.getMetaDataForClass(AnnotationManagerImpl.java:
> 136)
>at
>
> org.datanucleus.metadata.MetaDataManager.loadAnnotationsForClass(MetaDataManager.java:
> 2278)
>at
> org.datanucleus.metadata.MetaDataManager.loadClasses(MetaDataManager.java:
> 385)
>at
>
> org.datanucleus.enhancer.DataNucleusEnhancer.getFileMetadataForInput(DataNucleusEnhancer.java:
> 743)
>at
>
> org.datanucleus.enhancer.DataNucleusEnhancer.enhance(DataNucleusEnhancer.java:
> 545)
>at
> org.datanucleus.enhancer.DataNucleusEnhancer.main(DataNucleusEnhancer.java:
> 1252)
>at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:
> 39)
>at
>
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:
> 25)
>at java.lang.reflect.Method.invoke(Method.java:597)
>at
> com.google.appengine.tools.enhancer.Enhancer.execute(Enhancer.java:
> 57)
>at com.google.appengine.tools.enhancer.Enhance.(Enhance.java:
> 60)
>at com.google.appengine.tools.enhancer.Enhance.main(Enhance.java:41)
> DataNucleus Enhancer completed and no classes were enhanced. Consult
> the log for full details
>
>
> Any idea?
>
> --
> You received this message because you are subscribed to the Google Groups
> "Google App Engine for Java" group.
> To post to this group, send email to
> google-appengine-j...@googlegroups.com.
> To unsubscribe from this group, send email to
> google-appengine-java+unsubscr...@googlegroups.com