You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@openjpa.apache.org by "Michael Vorburger (JIRA)" <ji...@apache.org> on 2008/05/22 23:29:55 UTC
[jira] Updated: (OPENJPA-468) PCEnhancer does not find meta data
for entities using pure XML annotation (or entities in JAR files, error
handling needs improvment?)
[ https://issues.apache.org/jira/browse/OPENJPA-468?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Michael Vorburger updated OPENJPA-468:
--------------------------------------
Summary: PCEnhancer does not find meta data for entities using pure XML annotation (or entities in JAR files, error handling needs improvment?) (was: PCEnhancer does not find meta data for entities using pure XML annotation)
I just found this by Googling, and wonder if this is actually an entirely different problem than the Reporter assumed...
This error "java.io.FileNotFoundException: file:C:\Users\Seba\workspace\Persistence\persistence_entities.jar!\itsm\framework\persistence\entities\PersistentObject.class (The filename, directory name, or volume label syntax is incorrect)", which I also had, is probably because it's trying to enhance a class inside a JAR, and that's not supported? Or is it supported and the JAR is not writeable or something?
Probably the error handling in case of enhancement of classes in JAR should be improved... if it's simply totally not supported, then instead of an FileNotFoundException it should say "you can not enhance class ... in JAR ... - Tip: enhance it before building the JAR" (that helped me get around this!).
> PCEnhancer does not find meta data for entities using pure XML annotation (or entities in JAR files, error handling needs improvment?)
> --------------------------------------------------------------------------------------------------------------------------------------
>
> Key: OPENJPA-468
> URL: https://issues.apache.org/jira/browse/OPENJPA-468
> Project: OpenJPA
> Issue Type: Bug
> Environment: Windows
> Reporter: Sebastian Souza
> Fix For: 1.2.0
>
>
> I had well defined my classes in the orm.xml but the enhancer at build time cant find them in the metadata
> this is part of the trace :
> Finding class itsm.framework.persistence.entities.PersistentObject
> Class itsm.framework.persistence.entities.PersistentObject loaded from parent loader
> [openjpac] 406 ITSM TRACE [Worker-10] openjpa.Tool - Enhancer running on type "class itsm.framework.persistence.entities.PersistentObject".
> [openjpac] 671 ITSM TRACE [Worker-10] openjpa.MetaData - Loading metadata for "class itsm.framework.persistence.entities.PersistentObject" under mode "[META][QUERY]".
> [openjpac] 671 ITSM TRACE [Worker-10] openjpa.MetaData - Scanning resource "META-INF/orm.xml" for persistent types.
> [openjpac] 687 ITSM TRACE [Worker-10] openjpa.MetaData - parsePersistentTypeNames() found [].
> [openjpac] 687 ITSM TRACE [Worker-10] openjpa.MetaData - Found 0 classes with metadata in 16 milliseconds.
> [openjpac] 780 ITSM TRACE [Worker-10] openjpa.MetaData - Parsing class "itsm.framework.persistence.entities.PersistentObject".
> [openjpac] 796 ITSM TRACE [Worker-10] openjpa.MetaData - Parsing package "itsm.framework.persistence.entities.PersistentObject".
> [openjpac] 796 ITSM TRACE [Worker-10] openjpa.Enhance - Enhancing type "class itsm.framework.persistence.entities.PersistentObject".
> [openjpac] 811 ITSM WARN [Worker-10] openjpa.Enhance - Type "class itsm.framework.persistence.entities.PersistentObject" has no metadata; enhancing as persistence aware. If you intended for "class itsm.framework.persistence.entities.PersistentObject" to be persistence-capable, then this means that OpenJPA could not find any metadata for "class itsm.framework.persistence.entities.PersistentObject". This can happen if the directory containing your metadata is not in your CLASSPATH, or if your metadata files are not named properly. See the documentation on metadata placement for more information.
> [openjpac] 811 ITSM TRACE [Worker-10] openjpa.Tool - The class does not have metadata - enhanced as persistence-aware.
> [openjpac] java.io.FileNotFoundException: file:C:\Users\Seba\workspace\Persistence\persistence_entities.jar!\itsm\framework\persistence\entities\PersistentObject.class (The filename, directory name, or volume label syntax is incorrect)
> this is my build.xml
> <?xml version="1.0" encoding="UTF-8"?>
> <project name="Persistence">
> <target name="enhance">
> <taskdef name="openjpac" classname="org.apache.openjpa.ant.PCEnhancerTask"/>
> <openjpac addDefaultConstructor="false" tmpClassLoader="false">
> <config propertiesFile="./src/META-INF/persistence.xml"/>
> <fileset dir=".">
> <include name="**/entities/*.java"/>
> <exclude name="**/QueryObject.java"/>
> <exclude name="**/Parameter.java"/>
> <exclude name="**/PersistentContext.java"/>
> </fileset>
> </openjpac>
> </target>
> </project>
> Complete trace:
> enhance:
> Adding reference: eclipse.progress.monitor
> [antlib:org.apache.tools.ant] Could not load definitions from resource org/apache/tools/ant/antlib.xml. It could not be found.
> Class org.apache.openjpa.ant.PCEnhancerTask loaded from parent loader (parentFirst)
> +Datatype openjpac org.apache.openjpa.ant.PCEnhancerTask
> Adding reference: eclipse.progress.monitor
> [openjpac] 16 ITSM TRACE [Worker-10] openjpa.Runtime - Setting the following properties from "file:/C:/Users/Seba/workspace/Persistence/src/META-INF/persistence.xml" into configuration: {openjpa.ConnectionPassword=12345, openjpa.ConnectionDriverName=org.postgresql.Driver, javax.persistence.provider=org.apache.openjpa.persistence.PersistenceProviderImpl, openjpa.jdbc.SchemaFactory=native(ForeignKeys=true), openjpa.Log=DefaultLevel=TRACE, SQL=TRACE, openjpa.ConnectionUserName=postgres, openjpa.ConnectionURL=jdbc:postgresql:itsm, openjpa.Id=ITSM}
> fileset: Setup scanner in dir C:\Users\Seba\workspace\Persistence with patternSet{ includes: [**/entities/*.java] excludes: [**/QueryObject.java, **/Parameter.java, **/PersistentContext.java] }
> Finding class itsm.framework.persistence.entities.PersistentObject
> Class itsm.framework.persistence.entities.PersistentObject loaded from parent loader
> [openjpac] 406 ITSM TRACE [Worker-10] openjpa.Tool - Enhancer running on type "class itsm.framework.persistence.entities.PersistentObject".
> [openjpac] 671 ITSM TRACE [Worker-10] openjpa.MetaData - Loading metadata for "class itsm.framework.persistence.entities.PersistentObject" under mode "[META][QUERY]".
> [openjpac] 671 ITSM TRACE [Worker-10] openjpa.MetaData - Scanning resource "META-INF/orm.xml" for persistent types.
> [openjpac] 687 ITSM TRACE [Worker-10] openjpa.MetaData - parsePersistentTypeNames() found [].
> [openjpac] 687 ITSM TRACE [Worker-10] openjpa.MetaData - Found 0 classes with metadata in 16 milliseconds.
> [openjpac] 780 ITSM TRACE [Worker-10] openjpa.MetaData - Parsing class "itsm.framework.persistence.entities.PersistentObject".
> [openjpac] 796 ITSM TRACE [Worker-10] openjpa.MetaData - Parsing package "itsm.framework.persistence.entities.PersistentObject".
> [openjpac] 796 ITSM TRACE [Worker-10] openjpa.Enhance - Enhancing type "class itsm.framework.persistence.entities.PersistentObject".
> [openjpac] 811 ITSM WARN [Worker-10] openjpa.Enhance - Type "class itsm.framework.persistence.entities.PersistentObject" has no metadata; enhancing as persistence aware. If you intended for "class itsm.framework.persistence.entities.PersistentObject" to be persistence-capable, then this means that OpenJPA could not find any metadata for "class itsm.framework.persistence.entities.PersistentObject". This can happen if the directory containing your metadata is not in your CLASSPATH, or if your metadata files are not named properly. See the documentation on metadata placement for more information.
> [openjpac] 811 ITSM TRACE [Worker-10] openjpa.Tool - The class does not have metadata - enhanced as persistence-aware.
> [openjpac] java.io.FileNotFoundException: file:C:\Users\Seba\workspace\Persistence\persistence_entities.jar!\itsm\framework\persistence\entities\PersistentObject.class (The filename, directory name, or volume label syntax is incorrect)
> [openjpac] at java.io.FileOutputStream.open(Native Method)
> [openjpac] at java.io.FileOutputStream.<init>(Unknown Source)
> [openjpac] at java.io.FileOutputStream.<init>(Unknown Source)
> [openjpac] at serp.bytecode.BCClass.write(BCClass.java:179)
> [openjpac] at org.apache.openjpa.enhance.PCEnhancer.record(PCEnhancer.java:526)
> [openjpac] at org.apache.openjpa.enhance.PCEnhancer.record(PCEnhancer.java:512)
> [openjpac] at org.apache.openjpa.enhance.PCEnhancer.run(PCEnhancer.java:4352)
> [openjpac] at org.apache.openjpa.ant.PCEnhancerTask.executeOn(PCEnhancerTask.java:89)
> [openjpac] at org.apache.openjpa.lib.ant.AbstractTask.execute(AbstractTask.java:172)
> [openjpac] at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288)
> [openjpac] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> [openjpac] at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
> [openjpac] at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
> [openjpac] at java.lang.reflect.Method.invoke(Unknown Source)
> [openjpac] at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:105)
> [openjpac] at org.apache.tools.ant.Task.perform(Task.java:348)
> [openjpac] at org.apache.tools.ant.Target.execute(Target.java:357)
> [openjpac] at org.apache.tools.ant.Target.performTasks(Target.java:385)
> [openjpac] at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1329)
> [openjpac] at org.apache.tools.ant.Project.executeTarget(Project.java:1298)
> [openjpac] at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
> [openjpac] at org.eclipse.ant.internal.core.ant.EclipseDefaultExecutor.executeTargets(EclipseDefaultExecutor.java:32)
> [openjpac] at org.apache.tools.ant.Project.executeTargets(Project.java:1181)
> [openjpac] at org.eclipse.ant.internal.core.ant.InternalAntRunner.run(InternalAntRunner.java:623)
> [openjpac] at org.eclipse.ant.internal.core.ant.InternalAntRunner.run(InternalAntRunner.java:456)
> [openjpac] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> [openjpac] at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
> [openjpac] at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
> [openjpac] at java.lang.reflect.Method.invoke(Unknown Source)
> [openjpac] at org.eclipse.ant.core.AntRunner.run(AntRunner.java:377)
> [openjpac] at org.eclipse.ant.internal.ui.launchConfigurations.AntLaunchDelegate.runInSameVM(AntLaunchDelegate.java:249)
> [openjpac] at org.eclipse.ant.internal.ui.launchConfigurations.AntLaunchDelegate.launch(AntLaunchDelegate.java:211)
> [openjpac] at org.eclipse.debug.internal.core.LaunchConfiguration.launch(LaunchConfiguration.java:766)
> [openjpac] at org.eclipse.debug.internal.core.LaunchConfiguration.launch(LaunchConfiguration.java:608)
> [openjpac] at org.eclipse.debug.internal.core.LaunchConfiguration.launch(LaunchConfiguration.java:601)
> [openjpac] at org.eclipse.ui.externaltools.internal.model.ExternalToolBuilder.launchBuild(ExternalToolBuilder.java:179)
> [openjpac] at org.eclipse.ui.externaltools.internal.model.ExternalToolBuilder.doBuildBasedOnScope(ExternalToolBuilder.java:167)
> [openjpac] at org.eclipse.ui.externaltools.internal.model.ExternalToolBuilder.build(ExternalToolBuilder.java:86)
> [openjpac] at org.eclipse.core.internal.events.BuildManager$2.run(BuildManager.java:624)
> [openjpac] at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:37)
> [openjpac] at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:166)
> [openjpac] at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:197)
> [openjpac] at org.eclipse.core.internal.events.BuildManager$1.run(BuildManager.java:246)
> [openjpac] at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:37)
> [openjpac] at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:249)
> [openjpac] at org.eclipse.core.internal.events.BuildManager.basicBuildLoop(BuildManager.java:302)
> [openjpac] at org.eclipse.core.internal.events.BuildManager.build(BuildManager.java:334)
> [openjpac] at org.eclipse.core.internal.events.AutoBuildJob.doBuild(AutoBuildJob.java:137)
> [openjpac] at org.eclipse.core.internal.events.AutoBuildJob.run(AutoBuildJob.java:235)
> [openjpac] at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)
> [openjpac] 843 ITSM TRACE [Worker-10] openjpa.MetaData - Clearing metadata repository "org.apache.openjpa.meta.MetaDataRepository@e26ffd".
> BUILD FAILED
> C:\Users\Seba\workspace\Persistence\build.xml:5: java.io.FileNotFoundException: file:C:\Users\Seba\workspace\Persistence\persistence_entities.jar!\itsm\framework\persistence\entities\PersistentObject.class (The filename, directory name, or volume label syntax is incorrect)
> at org.apache.openjpa.lib.ant.AbstractTask.execute(AbstractTask.java:176)
> at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
> at java.lang.reflect.Method.invoke(Unknown Source)
> at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:105)
> at org.apache.tools.ant.Task.perform(Task.java:348)
> at org.apache.tools.ant.Target.execute(Target.java:357)
> at org.apache.tools.ant.Target.performTasks(Target.java:385)
> at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1329)
> at org.apache.tools.ant.Project.executeTarget(Project.java:1298)
> at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
> at org.eclipse.ant.internal.core.ant.EclipseDefaultExecutor.executeTargets(EclipseDefaultExecutor.java:32)
> at org.apache.tools.ant.Project.executeTargets(Project.java:1181)
> at org.eclipse.ant.internal.core.ant.InternalAntRunner.run(InternalAntRunner.java:623)
> at org.eclipse.ant.internal.core.ant.InternalAntRunner.run(InternalAntRunner.java:456)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
> at java.lang.reflect.Method.invoke(Unknown Source)
> at org.eclipse.ant.core.AntRunner.run(AntRunner.java:377)
> at org.eclipse.ant.internal.ui.launchConfigurations.AntLaunchDelegate.runInSameVM(AntLaunchDelegate.java:249)
> at org.eclipse.ant.internal.ui.launchConfigurations.AntLaunchDelegate.launch(AntLaunchDelegate.java:211)
> at org.eclipse.debug.internal.core.LaunchConfiguration.launch(LaunchConfiguration.java:766)
> at org.eclipse.debug.internal.core.LaunchConfiguration.launch(LaunchConfiguration.java:608)
> at org.eclipse.debug.internal.core.LaunchConfiguration.launch(LaunchConfiguration.java:601)
> at org.eclipse.ui.externaltools.internal.model.ExternalToolBuilder.launchBuild(ExternalToolBuilder.java:179)
> at org.eclipse.ui.externaltools.internal.model.ExternalToolBuilder.doBuildBasedOnScope(ExternalToolBuilder.java:167)
> at org.eclipse.ui.externaltools.internal.model.ExternalToolBuilder.build(ExternalToolBuilder.java:86)
> at org.eclipse.core.internal.events.BuildManager$2.run(BuildManager.java:624)
> at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:37)
> at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:166)
> at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:197)
> at org.eclipse.core.internal.events.BuildManager$1.run(BuildManager.java:246)
> at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:37)
> at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:249)
> at org.eclipse.core.internal.events.BuildManager.basicBuildLoop(BuildManager.java:302)
> at org.eclipse.core.internal.events.BuildManager.build(BuildManager.java:334)
> at org.eclipse.core.internal.events.AutoBuildJob.doBuild(AutoBuildJob.java:137)
> at org.eclipse.core.internal.events.AutoBuildJob.run(AutoBuildJob.java:235)
> at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)
> Caused by: java.io.FileNotFoundException: file:C:\Users\Seba\workspace\Persistence\persistence_entities.jar!\itsm\framework\persistence\entities\PersistentObject.class (The filename, directory name, or volume label syntax is incorrect)
> at java.io.FileOutputStream.open(Native Method)
> at java.io.FileOutputStream.<init>(Unknown Source)
> at java.io.FileOutputStream.<init>(Unknown Source)
> at serp.bytecode.BCClass.write(BCClass.java:179)
> at org.apache.openjpa.enhance.PCEnhancer.record(PCEnhancer.java:526)
> at org.apache.openjpa.enhance.PCEnhancer.record(PCEnhancer.java:512)
> at org.apache.openjpa.enhance.PCEnhancer.run(PCEnhancer.java:4352)
> at org.apache.openjpa.ant.PCEnhancerTask.executeOn(PCEnhancerTask.java:89)
> at org.apache.openjpa.lib.ant.AbstractTask.execute(AbstractTask.java:172)
> ... 41 more
> --- Nested Exception ---
> java.io.FileNotFoundException: file:C:\Users\Seba\workspace\Persistence\persistence_entities.jar!\itsm\framework\persistence\entities\PersistentObject.class (The filename, directory name, or volume label syntax is incorrect)
> at java.io.FileOutputStream.open(Native Method)
> at java.io.FileOutputStream.<init>(Unknown Source)
> at java.io.FileOutputStream.<init>(Unknown Source)
> at serp.bytecode.BCClass.write(BCClass.java:179)
> at org.apache.openjpa.enhance.PCEnhancer.record(PCEnhancer.java:526)
> at org.apache.openjpa.enhance.PCEnhancer.record(PCEnhancer.java:512)
> at org.apache.openjpa.enhance.PCEnhancer.run(PCEnhancer.java:4352)
> at org.apache.openjpa.ant.PCEnhancerTask.executeOn(PCEnhancerTask.java:89)
> at org.apache.openjpa.lib.ant.AbstractTask.execute(AbstractTask.java:172)
> at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
> at java.lang.reflect.Method.invoke(Unknown Source)
> at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:105)
> at org.apache.tools.ant.Task.perform(Task.java:348)
> at org.apache.tools.ant.Target.execute(Target.java:357)
> at org.apache.tools.ant.Target.performTasks(Target.java:385)
> at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1329)
> at org.apache.tools.ant.Project.executeTarget(Project.java:1298)
> at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
> at org.eclipse.ant.internal.core.ant.EclipseDefaultExecutor.executeTargets(EclipseDefaultExecutor.java:32)
> at org.apache.tools.ant.Project.executeTargets(Project.java:1181)
> at org.eclipse.ant.internal.core.ant.InternalAntRunner.run(InternalAntRunner.java:623)
> at org.eclipse.ant.internal.core.ant.InternalAntRunner.run(InternalAntRunner.java:456)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
> at java.lang.reflect.Method.invoke(Unknown Source)
> at org.eclipse.ant.core.AntRunner.run(AntRunner.java:377)
> at org.eclipse.ant.internal.ui.launchConfigurations.AntLaunchDelegate.runInSameVM(AntLaunchDelegate.java:249)
> at org.eclipse.ant.internal.ui.launchConfigurations.AntLaunchDelegate.launch(AntLaunchDelegate.java:211)
> at org.eclipse.debug.internal.core.LaunchConfiguration.launch(LaunchConfiguration.java:766)
> at org.eclipse.debug.internal.core.LaunchConfiguration.launch(LaunchConfiguration.java:608)
> at org.eclipse.debug.internal.core.LaunchConfiguration.launch(LaunchConfiguration.java:601)
> at org.eclipse.ui.externaltools.internal.model.ExternalToolBuilder.launchBuild(ExternalToolBuilder.java:179)
> at org.eclipse.ui.externaltools.internal.model.ExternalToolBuilder.doBuildBasedOnScope(ExternalToolBuilder.java:167)
> at org.eclipse.ui.externaltools.internal.model.ExternalToolBuilder.build(ExternalToolBuilder.java:86)
> at org.eclipse.core.internal.events.BuildManager$2.run(BuildManager.java:624)
> at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:37)
> at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:166)
> at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:197)
> at org.eclipse.core.internal.events.BuildManager$1.run(BuildManager.java:246)
> at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:37)
> at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:249)
> at org.eclipse.core.internal.events.BuildManager.basicBuildLoop(BuildManager.java:302)
> at org.eclipse.core.internal.events.BuildManager.build(BuildManager.java:334)
> at org.eclipse.core.internal.events.AutoBuildJob.doBuild(AutoBuildJob.java:137)
> at org.eclipse.core.internal.events.AutoBuildJob.run(AutoBuildJob.java:235)
> at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)
> Total time: 2 seconds
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.