openjpa-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Marina Vatkina <Marina.Vatk...@Sun.COM>
Subject Re: [jira] Commented: (OPENJPA-148) Parsing exception while using an "exploded" archive
Date Fri, 04 May 2007 17:27:30 GMT
Just one note (this problem caused us a lot of headaches in GlassFish): I'm not 
sure if url.getFile() handles spaces in the url correctly. If it doesn't, our 
solution was to use 'new File(url.toURI())'.


David Jencks (JIRA) wrote:
>     [
> David Jencks commented on OPENJPA-148:
> --------------------------------------
> Marc did not apply this part of the patch, which was actually the crucial part to get
this to work for geronimo :-).  As I noted before this may well not be the best way to solve
the problem, its only virtue is that it works:
> +                if ("file".equals(url.getProtocol())) {
> +                    File file = new File(url.getFile()).getAbsoluteFile();
> +                    if (files.contains(file)) {
> +                        continue;
> +                    }
> +                }
> For reasons that are not entirely clear to me yet, the war WEB-INF/classes directory
is showing up both in the files list (where it is processed correctly) and the urls list where
it is causing an error since the code tries to treat it as an xml file.  The patch excerpt
above is a bit of a hack but it checks each url to see if it matches a file in the files list
and if so skips it.  In particular the directory WEB-INF/classes is matched so it is skipped,
thus sidestepping the problem.
> IMO it would be better to avoid duplicating locations in the files and urls list but
I haven't figured out how to make that happen yet.  I don't see much harm in this patch in
any case since AFAICT there is never a reason to process a location twice.
>>Parsing exception while using an "exploded" archive
>>                Key: OPENJPA-148
>>                URL:
>>            Project: OpenJPA
>>         Issue Type: Bug
>>         Components: jpa
>>        Environment: Sun JDK 5.0 / EasyBeans / OpenJPA snapshot 0.9.7
>>           Reporter: Florent BENOIT
>>           Priority: Minor
>>            Fix For: 0.9.8
>>        Attachments: debug_traces_directorymode.txt, debug_traces_filemode_working.txt,
OPENJPA-148.patch, stacktrace-error.txt, steps.txt
>>This happens when using OpenJPA as persistence provider for the EasyBeans ObjectWeb
>>The error is happening with "exploded" archive.
>>Exploded means that there is a directory, named "entitybean.jar" with a folder META-INF
which contains a file named persistence.xml, and other directories/files for the classes.
>>It seems that when using this mode, OpenJPA is trying to parse the directory inputstream
(which is failing).
>>This exception is not occuring if a jar file is used instead of the "exploded" mode,
but the exploded mode is the default mode for EasyBeans.
>>Note also that this exception don't occur by using Hibernate Entity Manager or Oracle
TopLink Essentials as persistence provider.
>>I will attach to this issue a stack trace (with the exploded directory) which fails
and at the end with a jar file (which work)
>>And 4 steps used to reproduce this problem

View raw message