Mike,

First, I realize the code on line 83 was not touched by you, I just included 
that since it was the line that was throwing the error,  the error only throws 
after the patch is included though.

As to how I installed the patch, I simply copied the added lines to the 
appropriate files in the perl/OpenSRF directory and commented out the deleted 
lines.  As to the reason I restarted Evergreen, that was simply because I have 
a script that rebuilds it and stops and restarts OpenSRF etc.  Just a shot gun 
approach.  I have since applied the patch and restarted OpenSRF by its self and 
it fails to start with the patch code in place.

As near as I can tell $self->session is undefined in the return statement that 
creates the new AppSubrequest.

I do appreciate you taking the time to look at this, I am not trying to be 
difficult.  I just have very little experience with this code base at this 
point and have actually never had the need to dive into the OpenSRF portion.

Thanks


From: [email protected] 
[mailto:[email protected]] On Behalf Of Mike 
Rylander
Sent: Monday, March 31, 2014 1:14 PM
To: Evergreen Development Discussion List
Subject: Re: [OPEN-ILS-DEV] ***SPAM*** RE: Boolean Search Feature Questions

Dan,

While I can't definitively  discount the possibility that the patch (which, as 
I mentioned, is untested) might be involved, the code reported in the error was 
not something I touched.  Specifically, the session() sub containing line 83 of 
Application.pm is separate from the AppSubrequest class altogether, which has 
its own session() sub.

You asked before about the OpenSRF version, so I wonder what, exactly, you did 
to install the patch and why you felt you needed to rebuild Evergreen -- it 
should have been a simple change to two files already installed on the system.


On Mon, Mar 31, 2014 at 3:47 PM, Dan Reuther 
<[email protected]<mailto:[email protected]>> wrote:
Mike,

Sorry to keep bugging you.  I tried the patch out and I get the following  
errors when I restart OpenSRF and rebuild Evergreen.

Updating fieldmapper
Exception: OpenSRF::DomainObject::oilsServerError 2014-03-31T12:27:01 
OpenILS::Utils::Cronscript 
/usr/local/share/perl/5.14.2/OpenILS/Utils/Cronscript.pm:276 <500>  Internal 
Server Error
Can't use string ("OpenSRF::Application::Settings") as a HASH ref while "strict 
refs" in use at /usr/local/share/perl/5.14.2/OpenSRF/Application.pm line 83.

-> /openils/var/web/opac/common/js//fmall.js
Updating web_fieldmapper
Exception: OpenSRF::DomainObject::oilsServerError 2014-03-31T12:27:01 
OpenILS::Utils::Cronscript 
/usr/local/share/perl/5.14.2/OpenILS/Utils/Cronscript.pm:276 <500>  Internal 
Server Error
Can't use string ("OpenSRF::Application::Settings") as a HASH ref while "strict 
refs" in use at /usr/local/share/perl/5.14.2/OpenSRF/Application.pm line 83.

-> /openils/var/web/opac/common/js//fmcore.js
Updating OrgTree
Exception: OpenSRF::DomainObject::oilsServerError 2014-03-31T12:27:02 
OpenILS::Utils::Cronscript 
/usr/local/share/perl/5.14.2/OpenILS/Utils/Cronscript.pm:276 <500>  Internal 
Server Error
Can't use string ("OpenSRF::Application::Settings") as a HASH ref while "strict 
refs" in use at /usr/local/share/perl/5.14.2/OpenSRF/Application.pm line 83.

This is the code from Application.pm

sub session {
                my $self = shift;
                my $session = shift;

                if($session) {
                                $self->{session} = $session;
                }
#line 83--->          return $self->{session};
}

I am trying to follow the ins and outs of OpenSRF but I figured I would run it 
by you.

From: 
[email protected]<mailto:[email protected]>
 
[mailto:[email protected]<mailto:[email protected]>]
 On Behalf Of Mike Rylander
Sent: Monday, March 31, 2014 10:32 AM

To: Evergreen Development Discussion List
Subject: Re: [OPEN-ILS-DEV] ***SPAM*** RE: Boolean Search Feature Questions

Dan,

I wrote it in a clone of the master branch, but it will apply (perhaps with 
fuzz) to pretty much any version ... the code being touched is ancient.

--
Mike Rylander
 | Director of Research and Development
 | Equinox Software, Inc. / Your Library's Guide to Open Source
 | phone:  1-877-OPEN-ILS (673-6457)
 | email:  [email protected]<mailto:[email protected]>
 | web:  http://www.esilibrary.com<http://www.esilibrary.com/>

On Mon, Mar 31, 2014 at 12:50 PM, Dan Reuther 
<[email protected]<mailto:[email protected]>> wrote:
Mike,

What version of openSRF did you write this patch for?  I currently have 2.2.0.  
Do I need to upgrade or do you see an issue with the version I have?

Thanks


From: 
[email protected]<mailto:[email protected]>
 
[mailto:[email protected]<mailto:[email protected]>]
 On Behalf Of Mike Rylander
Sent: Tuesday, March 25, 2014 2:08 PM
To: Evergreen Development Discussion List
Subject: Re: [OPEN-ILS-DEV] ***SPAM*** Boolean Search Feature Questions

Dan,

The code you mention isn't involved (it's not dealing with the layer that knows 
about the client-selected locale, and that comment is referring to the 
disconnect between MARC-prescribed language codes and 
everyone-else-in-the-world locale codes), but I think I see the issue.  The 
short version is that method_lookup() in OpenSRF does not return an object that 
knows about the current session, which is needed to find the locale, thus the 
locale is forgotten at that point in the process. Attached is an OpenSRF patch 
for you try out ... note that it is entirely untested, but it should be 
something in the right direction.  The point of it is to create the 
OpenSRF::AppSubrequest shim earlier, and stash the session there for use in the 
eventual call to run().

If that works out for you I'll create a launchpad bug and post a pullrequest 
branch.  OpenSRF 2.4 is planned for Soon(tm).



On Tue, Mar 25, 2014 at 1:35 PM, Dan Reuther 
<[email protected]<mailto:[email protected]>> wrote:
This question is in regards to https://bugs.launchpad.net/evergreen/+bug/1152863

I am tracking a bug in this implementation and could use some assistance.  The 
feature seems to work as expected for English language searches.  The problem 
is when we switch to say French Canadian the operators are not translated.  I 
admit to not fully understanding how the localization system works in 
Evergreen.  Does Evergreen currently have the ability to translate search 
queries?

The behavior I am expecting is the following.  Language is set to en-US  and 
the user enters      book or moon    on the Boolean search tab and they are 
given the results that match book  and  the results that match moon.    If the 
language is set to fr-CA  and the user enters       book  ou moon       they 
should see the same results.   Currently the first works as expected the second 
returns no matches.

I set the language to French (Canada)  and then trace the locale through the 
program. I find that it switches to en-US in 
Application::Search::Biblio::multiclass_query.

At line 950 in OpenILS/Application/Search/Biblio.pm I find the following 
comments

# XXX This stops the session locale from doing the right thing.
                # XXX Revisit this and have it translate to a lang instead of a 
locale.
                #$arghash->{preferred_language} = 
$U->get_org_locale($arghash->{org_unit})
                #    unless $arghash->{preferred_language};

So I am curious if this is a known bug or just an unimplemented feature in 
Evergreen at this time and I am chasing a bug for functionality that does not 
exist?

Any help would be appreciated.  Thanks


Dan Reuther
Developer
[Catalyst Logo]




--
Mike Rylander
 | Director of Research and Development
 | Equinox Software, Inc. / Your Library's Guide to Open Source
 | phone:  1-877-OPEN-ILS (673-6457)
 | email:  [email protected]<mailto:[email protected]>
 | web:  http://www.esilibrary.com






--
Mike Rylander
 | Director of Research and Development
 | Equinox Software, Inc. / Your Library's Guide to Open Source
 | phone:  1-877-OPEN-ILS (673-6457)
 | email:  [email protected]<mailto:[email protected]>
 | web:  http://www.esilibrary.com

<<inline: image001.png>>

Reply via email to