Foren

Home » Liferay Portal » English » 3. Development

Kombinierte Ansicht Flache Ansicht Baumansicht
Threads [ Zurück | Nächste ]
toggle
Bug in Dynamic Query for Enterprise Edition 6 SP1 (range search) René Jurmann 22. Februar 2011 05:40
RE: Bug in Dynamic Query for Enterprise Edition 6 SP1 (range search) Ray Augé 1. März 2011 13:45
RE: Bug in Dynamic Query for Enterprise Edition 6 SP1 (range search) René Jurmann 2. März 2011 02:30
RE: Bug in Dynamic Query for Enterprise Edition 6 SP1 (range search) Vincent Vanghelle 7. März 2011 09:18
RE: Bug in Dynamic Query for Enterprise Edition 6 SP1 (range search) Vincent Vanghelle 8. März 2011 02:13
RE: Bug in Dynamic Query for Enterprise Edition 6 SP1 (range search) Aritz Galdos 10. März 2011 06:49
RE: Bug in Dynamic Query for Enterprise Edition 6 SP1 (range search) Vincent Vanghelle 10. März 2011 06:52
RE: Bug in Dynamic Query for Enterprise Edition 6 SP1 (range search) René Jurmann 10. März 2011 06:53
RE: Bug in Dynamic Query for Enterprise Edition 6 SP1 (range search) Aritz Galdos 10. März 2011 07:54
RE: Bug in Dynamic Query for Enterprise Edition 6 SP1 (range search) Ray Augé 21. März 2011 06:36
RE: Bug in Dynamic Query for Enterprise Edition 6 SP1 (range search) Aritz Galdos 21. März 2011 06:51
RE: Bug in Dynamic Query for Enterprise Edition 6 SP1 (range search) Jack Daniels 23. März 2011 09:36
RE: Bug in Dynamic Query for Enterprise Edition 6 SP1 (range search) Aritz Galdos 23. März 2011 09:45
RE: Bug in Dynamic Query for Enterprise Edition 6 SP1 (range search) Jack Daniels 23. März 2011 10:48
RE: Bug in Dynamic Query for Enterprise Edition 6 SP1 (range search) Igor Spasić 25. März 2011 08:27
RE: Bug in Dynamic Query for Enterprise Edition 6 SP1 (range search) parth barot 11. April 2011 22:22
RE: Bug in Dynamic Query for Enterprise Edition 6 SP1 (range search) parth barot 11. April 2011 22:38
RE: Bug in Dynamic Query for Enterprise Edition 6 SP1 (range search) Aritz Galdos 12. April 2011 00:13
RE: Bug in Dynamic Query for Enterprise Edition 6 SP1 (range search) Jack Daniels 12. April 2011 05:40
René Jurmann
Bug in Dynamic Query for Enterprise Edition 6 SP1 (range search)
22. Februar 2011 05:40
Antwort

René Jurmann

Rang: Junior Member

Nachrichten: 27

Eintrittsdatum: 15. November 2010

Neue Beiträge

Hi all,

I experienced a bug within the Enterprise Edition 6 SP1.
We have following scenario:

We search for users according their attributes within the custom fields. Therefore we have added one custom field "AccountID" to the user object (using Control Panel).
In order to search for users that match a range of account IDs we use following code:

 1
 2String[] accountIds = ...;
 3ThemeDisplay themeDisplay = (ThemeDisplay) request.getAttribute(WebKeys.THEME_DISPLAY);
 4long companyId = themeDisplay.getCompanyId();
 5ExpandoColumn expColumn = ExpandoColumnLocalServiceUtil.getDefaultTableColumn(companyId, User.class.getName(), "AccountID");
 6Set<Long> expValueUserIds = new HashSet<Long>();
 7ClassLoader cl = PortalClassLoaderUtil.getClassLoader();
 8dynamicQuery = DynamicQueryFactoryUtil.forClass(ExpandoValue.class, cl);
 9dynamicQuery.add(RestrictionsFactoryUtil.eq("tableId", expColumn.getTableId()));
10dynamicQuery.add(RestrictionsFactoryUtil.eq("columnId", expColumn.getColumnId()));
11dynamicQuery.add(RestrictionsFactoryUtil.in("data", accountIds));
12List<ExpandoValue> expValues = ExpandoValueLocalServiceUtil.getService().dynamicQuery(dynamicQuery);
13if(expValues != null && expValues.size() > 0){
14    for(ExpandoValue expValue : expValues){
15        expValueUserIds.add(new Long(expValue.getClassPK()));
16    }
17}


This works for the CE portal version 6.0.5 (some of our development environments are running on this version).
But when we execute this code on EE portal version 6 SP1 no result is found although some should be found.
In order to get this search to work with EE version I need to rewrite the whole coding to:

 1
 2String[] accountIds = ...;
 3ThemeDisplay themeDisplay = (ThemeDisplay) request.getAttribute(WebKeys.THEME_DISPLAY);
 4long companyId = themeDisplay.getCompanyId();
 5ExpandoColumn expColumn = ExpandoColumnLocalServiceUtil.getDefaultTableColumn(companyId, User.class.getName(), "AccountID");
 6Set<Long> expValueUserIds = new HashSet<Long>();
 7for(int count = 0; count < accountIds.length; count++){
 8    ClassLoader cl = PortalClassLoaderUtil.getClassLoader();
 9    dynamicQuery = DynamicQueryFactoryUtil.forClass(ExpandoValue.class, cl);
10    dynamicQuery.add(RestrictionsFactoryUtil.eq("tableId", expColumn.getTableId()));
11    dynamicQuery.add(RestrictionsFactoryUtil.eq("columnId", expColumn.getColumnId()));
12    dynamicQuery.add(RestrictionsFactoryUtil.like("data", accountIds[count]));
13    List<ExpandoValue> expValues = ExpandoValueLocalServiceUtil.getService().dynamicQuery(dynamicQuery);
14    if(expValues != null && expValues.size() > 0){
15        for(ExpandoValue expValue : expValues){
16            expValueUserIds.add(new Long(expValue.getClassPK()));
17        }
18    }
19}


Can anyone tell me if searching for a range:
1dynamicQuery.add(RestrictionsFactoryUtil.in("data", accountIds));

works in EE version 6 SP1 and how I should configure it?

regards
René Jurmann
Ray Augé
RE: Bug in Dynamic Query for Enterprise Edition 6 SP1 (range search)
1. März 2011 13:45
Antwort

Ray Augé

LIFERAY STAFF

Rang: Liferay Legend

Nachrichten: 1206

Eintrittsdatum: 7. Februar 2005

Neue Beiträge

Can you try:
1PropertyFactoryUtil.forName("data").in(accountIds)
2
3//in placed of
4
5RestrictionsFactoryUtil.in("data", accountIds)
René Jurmann
RE: Bug in Dynamic Query for Enterprise Edition 6 SP1 (range search)
2. März 2011 02:30
Antwort

René Jurmann

Rang: Junior Member

Nachrichten: 27

Eintrittsdatum: 15. November 2010

Neue Beiträge

Hi Ray,

that still does not work.
Here as well - when I execute
1PropertyFactoryUtil.forName("data").like(accountId)

in a loop all corresponding users are found. But as soon as I want to use the range search
1PropertyFactoryUtil.forName("data").in(accountIds)

no result is returned
Vincent Vanghelle
RE: Bug in Dynamic Query for Enterprise Edition 6 SP1 (range search)
7. März 2011 09:18
Antwort

Vincent Vanghelle

Rang: New Member

Nachrichten: 3

Eintrittsdatum: 3. März 2011

Neue Beiträge

Hi.

It looks like i have the same problem..

On 6.0.5 it was OK, then I switched to a Liferay EE SP1 version..Here is the code sample :

1DynamicQuery queryRegion = DynamicQueryFactoryUtil.forClass(ExpandoValue.class, cl);
2queryRegion.setProjection(ProjectionFactoryUtil.property("classPK"));
3queryRegion.add(RestrictionsFactoryUtil.eq("tableId",columnRegions.getTableId()));
4queryRegion.add(RestrictionsFactoryUtil.eq("columnId",columnRegions.getColumnId()));
5queryRegion.add(RestrictionsFactoryUtil.in("data", codesRegion));
6/*codesRegion = array of string, also tried with the propertyFactoryUtil.forname("data").in() method */


Doesn't work, but this one works :
1
2DynamicQuery queryRegion = DynamicQueryFactoryUtil.forClass(ExpandoValue.class, cl);
3queryRegion.setProjection(ProjectionFactoryUtil.property("classPK"));
4queryRegion.add(RestrictionsFactoryUtil.eq("tableId",columnRegions.getTableId()));
5queryRegion.add(RestrictionsFactoryUtil.eq("columnId",columnRegions.getColumnId()));
6queryRegion.add(RestrictionsFactoryUtil.eq("data",codesRegion[0]));
Vincent Vanghelle
RE: Bug in Dynamic Query for Enterprise Edition 6 SP1 (range search)
8. März 2011 02:13
Antwort

Vincent Vanghelle

Rang: New Member

Nachrichten: 3

Eintrittsdatum: 3. März 2011

Neue Beiträge

Okey, I found this while debugging :


In class com.liferay.portal.dao.orm.hibernate.StringType :
1
2public Object getPropertyValue(Object component, int property) {
3    return null;
4}


With this method, a "in" restrictions construct a prepared statement with null values...
Aritz Galdos
RE: Bug in Dynamic Query for Enterprise Edition 6 SP1 (range search)
10. März 2011 06:49
Antwort

Aritz Galdos

Rang: Expert

Nachrichten: 382

Eintrittsdatum: 15. Mai 2007

Neue Beiträge

Hi,

Has it been reported as a bug?

regards!
Vincent Vanghelle
RE: Bug in Dynamic Query for Enterprise Edition 6 SP1 (range search)
10. März 2011 06:52
Antwort

Vincent Vanghelle

Rang: New Member

Nachrichten: 3

Eintrittsdatum: 3. März 2011

Neue Beiträge

Hi Aritz,

I haven't done anything yet, no much time (and never reported a bug on Liferay)

Where can we report this bug?
René Jurmann
RE: Bug in Dynamic Query for Enterprise Edition 6 SP1 (range search)
10. März 2011 06:53
Antwort

René Jurmann

Rang: Junior Member

Nachrichten: 27

Eintrittsdatum: 15. November 2010

Neue Beiträge

Hi Aritz,

no, I haven't done anything like this up to now.
(Would need second logon to issues.liferay.com, correct?)

regards
René
Aritz Galdos
RE: Bug in Dynamic Query for Enterprise Edition 6 SP1 (range search)
10. März 2011 07:54
Antwort

Aritz Galdos

Rang: Expert

Nachrichten: 382

Eintrittsdatum: 15. Mai 2007

Neue Beiträge

HI,

I can not report for Sp1 with my user.

I contacted Juan (Liferay Staff) and alerted him about the possible bug.

Hopefully (if it is a bug) will be solved soon.

Regards!!
Ray Augé
RE: Bug in Dynamic Query for Enterprise Edition 6 SP1 (range search)
21. März 2011 06:36
Antwort

Ray Augé

LIFERAY STAFF

Rang: Liferay Legend

Nachrichten: 1206

Eintrittsdatum: 7. Februar 2005

Neue Beiträge

I just tested again with 6.0.6 CE and a simple hook, and it worked exactly as expected.

The hook is attached.
Anhänge: test-dynamic-query-hook-6.0.6.1.war (5,1k)
Aritz Galdos
RE: Bug in Dynamic Query for Enterprise Edition 6 SP1 (range search)
21. März 2011 06:51
Antwort

Aritz Galdos

Rang: Expert

Nachrichten: 382

Eintrittsdatum: 15. Mai 2007

Neue Beiträge

Hi Ray:

I think it affects 6.0.11 (SP1) and trunk.

AS vincent says here, there is a suspicious "return null"
Jack Daniels
RE: Bug in Dynamic Query for Enterprise Edition 6 SP1 (range search)
23. März 2011 09:36
Antwort

Jack Daniels

Rang: New Member

Nachrichten: 19

Eintrittsdatum: 17. Mai 2010

Neue Beiträge

Has this been verified yet by any Liferay staff member in EE 6.0 SP1 as originally reported?

Thanks.
Aritz Galdos
RE: Bug in Dynamic Query for Enterprise Edition 6 SP1 (range search)
23. März 2011 09:45
Antwort

Aritz Galdos

Rang: Expert

Nachrichten: 382

Eintrittsdatum: 15. Mai 2007

Neue Beiträge

Hi,

Seems to be a bug and I´ve been told Liferay guys are workin' on it. Surely will be solved in short.
Jack Daniels
RE: Bug in Dynamic Query for Enterprise Edition 6 SP1 (range search)
23. März 2011 10:48
Antwort

Jack Daniels

Rang: New Member

Nachrichten: 19

Eintrittsdatum: 17. Mai 2010

Neue Beiträge

Thanks for the quick response Aritz, I appreciate it.

Cheers.
Igor Spasić
RE: Bug in Dynamic Query for Enterprise Edition 6 SP1 (range search)
25. März 2011 08:27
Antwort

Igor Spasić

LIFERAY STAFF

Rang: New Member

Nachrichten: 8

Eintrittsdatum: 26. April 2010

Neue Beiträge

We filed the issue: http://issues.liferay.com/browse/LPS-16064

The core problem is in the StringType:

1public Object getPropertyValue(Object component, int property) {
2    return null;
3}


Hibernate v3.6.x uses this method when populating IN section while generating SQL. This issue was introduced when we migrated to Hibernate 3.6.0. Fix is committed to svn. For more details, please check the LPS.
parth barot
RE: Bug in Dynamic Query for Enterprise Edition 6 SP1 (range search)
11. April 2011 22:22
Antwort

parth barot

Rang: Junior Member

Nachrichten: 42

Eintrittsdatum: 30. April 2010

Neue Beiträge

Then what is the solution for this? Do we have any patch for this? Please reply, i need this urgently..stuck at IN operator.

Thanks
parth barot
RE: Bug in Dynamic Query for Enterprise Edition 6 SP1 (range search)
11. April 2011 22:38
Antwort

parth barot

Rang: Junior Member

Nachrichten: 42

Eintrittsdatum: 30. April 2010

Neue Beiträge

I am trying using the latest StringType in ext plugin...

http://svn.liferay.com/browse/portal/trunk/portal-impl/src/com/liferay/portal/dao/orm/hibernate/StringType.java?r1=69338&r2=76173&u=3

Thanks
Aritz Galdos
RE: Bug in Dynamic Query for Enterprise Edition 6 SP1 (range search)
12. April 2011 00:13
Antwort

Aritz Galdos

Rang: Expert

Nachrichten: 382

Eintrittsdatum: 15. Mai 2007

Neue Beiträge

Hi

If you are enterprise user, you should report the incident in the tool Liferay offers to its clients.

Our client, which is enterprise client of Liferay, already got the patch for this issue from liferay.
Jack Daniels
RE: Bug in Dynamic Query for Enterprise Edition 6 SP1 (range search)
12. April 2011 05:40
Antwort

Jack Daniels

Rang: New Member

Nachrichten: 19

Eintrittsdatum: 17. Mai 2010

Neue Beiträge

Too bad they only send the patch to customers that ask for it as opposed to publishing it through the customer or partner portal.

I'll have to ask for it for our EE customer as well. Thanks for mentioning this.