[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
[eclipselink-dev] Fix for 210380: Persistence unit not found when persistence.xml is in file path with spaces
|
EclipseLink committers,
The following patch has been checked
in.
The test suite includes a new jpa
test jar with spaces in it that required a jpa.test/build.xml
change
The multibyte section of the test
has been disabled until it is run on a 64 bit OS.
New/Regression tests -test.jpa and
test.core verified on these 32 bit OS platforms:
Windows
Vista/XP (verified in a post-commit separate view
refresh)
Redhat
Enterprise Linux
Code Reviewed
by:
Andrei -
jpa
Kevin, Tom -
jpa.test
thank you
/michael
EclipseLink members,
The following jpa.test patch is
available for review for the following bug.
This change modifies the jpa.test
build.xml script.
New Jars:
eclipselink-pu with spaces.jar
eclipselink-pu-with-multibyte-á-char.jar
New Test
Cases:
Testing
for PU with names and/or paths containing %20 spaces or multibyte chars such
as &C3A1; = á
* UC1 - EM has no spaces or
multi-byte chars in name or path
* UC2 - EM has
spaces hex(20) in EM name but not in path
* UC3/4
are fixed by 210280 - the other UC tests are for
regression
* UC3 - EM has spaces in path but not
in the EM name
* UC4 - EM has spaces in path and
EM name
* UC5 - EM has multi-byte hex(C3A1) chars
in EM name but not in path
* Keep resource with
spaces and multibyte chars separate
* UC6 - EM has
multi-byte chars in path but not EM name
* UC7 -
EM has multi-byte chars in path and EM name
* UC8
- EM has spaces and multi-byte chars in EM name but not in path
* UC9 - EM has spaces and multi-byte chars in
path and EM name
thank you
/michael
EclipseLink committers,
The following JPA
patch is available for
review.
Description:
When a PU is in a path
that includes spaces, these spaces are represented internally in URL objects
as an encoded %20.
This
encoding is causing problems later when finding the
PU.
The problem turned out to
be that the key lookup was using the decoded (" ") version - while the
insert into the HashMap<String, EntityManagerSetupImpl> used an
encoded ("%20") key - the EMSetup was never found.
The fix is to replace the following line with one that reuses the
already decoded [puName] which does not use %20 for spaces.
before:
EntityManagerFactoryProvider.addEntityManagerSetupImpl(persistenceUnitInfo.getPersistenceUnitRootUrl()+persistenceUnitInfo.getPersistenceUnitName(),
emSetupImpl);
after:
EntityManagerFactoryProvider.addEntityManagerSetupImpl(puName,
emSetupImpl);
Code Reviewed
by:
Andrei I.
Please review when you
have a chance and send any feedback, thank you
thank you
/michael