Functions for multi-phase catalog access, with retries...

See Catalog:action & Catalog:privateAction below.
These functions support iterative catalog access, to divide catalog updates into chunks...
Also, they support retries to deal with contention in case another plugin task is already accessing the catalog.
-- private method:
function Catalog:_isAccessContention( qual )
    local found = qual:find( "LrCatalog:with", 1, true ) or 0 -- return position or zero, instead of position or nil.
    if found == 1 then -- problem reported by with-catalog-do method.
        local found2 = qual:find( "already inside", 15, true )
        if found2 == nil then
            found2 = qual:find( "was blocked", 15, true ) -- Lr4b
        end
        if found2 then
            -- problem is due to catalog access contention.
            Debug.logn( 'catalog contention:', str:to( qual ) )
            return true
        else
            return false
        end
    else
        return false
    end
end
-- private method:
function Catalog:_action( catFunc, tmo, name, func, ... )
    local t = { ... }
    local tries = math.max( math.ceil( tmo * 2 ), 1 )
    local sts, msg
    local function _func( context )
        sts, msg = func( unpack( t ) )
    end
    local count = 10000000 -- ten million max, for sanity.
    repeat
        local s, other
        if name then
            s, other = LrTasks.pcall( catFunc, catalog, name, _func )
        else
            s, other = LrTasks.pcall( catFunc, catalog, _func )
        end
        if s then -- no error thrown
            if sts then
                return true -- all done.
            elseif str:is( msg ) then
                return false, "Unable to complete catalog update - " .. msg
            else
                -- continue
                count = count - 1                       
            end
        else
            if self:_isAccessContention( other ) then
                tries = tries - 1
                if tries == 0 then
                    return nil, "Unable to access catalog for " .. str:to( tmo ) .. " seconds."
                else
                    LrTasks.sleep( math.random( .1, 1 ) ) -- sleep for half second, plus or minus.
                end
            else
                return nil, "Catalog access function error: " .. str:to( other )
            end
        end
    until count == 0
    return nil, "Program failure"
end
--- Wrapper for named/undoable catalog:withWriteAccessDo method - divide to conquor func.
--  @param tmo (number) max seconds to get in.
--  @param name (string) undo title.
--  @param func (function) divided catalog writing function: returns sts, msg = true when done; false if to be continued; nil, error message if trouble.
--  @param ... (any) passed to func - often a table containing photo start index.
--  @usage example:<br>
--           local function catalogAction( t )<br>
--               if t.i > #photos then<br>
--                   return true -- done, no errors (although should pre-check for photos to process).<br>
--               else<br>
--                   local k = math.min( t.i + 1000, #photos )<br>
--                   while ( t.i <= k ) do<br>
--                       -- do something to photos[t.i]<br>
--                       -- if trouble, return nil, msg.<br>
--                       t.i = t.i + 1
--                   end<br>
--                   if t.i > #photos then<br>
--                       return true -- done, no errors.<br>
--                   else<br>
--                       return false -- continue, no errors.<br>
--                   end<br>
--               end<br>
--           end<br>
--           local sts, msg = cat:action( 10, "Test", catalogAction, { i=1 } )<br>
--           if sts then<br>
--               -- log successful message.<br>
--           else<br>
--               -- print error message...<br>
--           end<br>
function Catalog:action( tmo, name, func, ... )
    return self:_action( catalog.withWriteAccessDo, tmo, name, func, ... )
end
--- Wrapper for un-named catalog:withPrivateWriteAccessDo method - divide to conquor func.
--  @param tmo (number) max seconds to get in.
--  @param func (function) divided catalog writing function: returns sts, msg = true when done; false if to be continued; nil, error message if trouble.
--  @param ... (any) passed to func.
function Catalog:privateAction( tmo, func, ... )
    return self:_action( catalog.withPrivateWriteAccessDo, tmo, nil, func, ... ) -- no name.
end
Note: These functions were changed a bit after further testing and integration - consider them for example purposes only. The released version of these functions will be available shortly as part of the Elare Plugin Framework:
https://www.assembla.com/spaces/lrdevplugin/
PS - After some mods, the final version allows me to write code like this which I find convenient (still not released yet at assembla.com):
local coll
local s, m = cat:update( 10, "Assure Folder Collection", function( context, phase )
    if phase == 1 then
        coll = catalog:createCollection( folder:getName(), parent, true )
        return false -- keep going.
    elseif phase == 2 then
        coll:removeAllPhotos()
        return false -- keep going.
    elseif phase == 3 then
        coll:addPhotos( folder:getPhotos() )
        return true -- done (same as returning nil).
    else
        app:error( "bad phase" )
    end
end )
if s then
    app:logVerbose( "Assured collection: ^1", coll:getName() )
    return coll
else
    return nil, m
end
or
local photos = catalog:getAllPhotos()
local s, m = cat:update( 10, "Update Photos", function( context, phase )
     local i1 = (phase - 1) * 1000 + 1
     local i2 = math.min( phase * 1000, #photos )
     for i = i1, i2 do
        local photo = photos[i]
        -- do something with photo that writes catalog.
    end
    if i2 < #photos then
        return false -- keep going
    end
end )
if s then
    app:logVerbose( "Photos updated..." )
    return true
else
    return false, m
end

Hi Vladimir,
You can see the outside & inside of DevMeta for complete details, but in a nutshell , there are few things the "background" task does, including:
1. Check if the develop settings of the currently viewed photo have changed, if so update metadata for the library panel view (and Library Filter, and Smart Collections...) - this is what I call: Auto-Update.
2. Check if user has edited the metadata - in which case it updates the develop settings of the active photo (called Live-Edit).
The posted function makes sure none of my other plugins complain if they can't get at the catalog while DevMeta has it (which usually does not happen, but sometimes does). However, other peoples plugins will occasionally fail if they assume the catalog to be free for them all the time (and they have DevMeta running). There is at least one other fellow doing something similar, so I'm not the only plugin developer with the "bright idea" of doing things in the background that require catalog access.
Rob

Similar Messages

  • Logging takes in the field for multi-camera set-up with OL

    Is there any way to designate separate cameras or link shots (to be labeled as CamA or CamB) to advance takes and make notes simultaneously?
    OL doesn't really seem set up to use with documentary style shooting with multiple cameras, but maybe there is some way around this?
    I just want to be able to add takes in OL to multiple cameras without a lot of typing between each take...and add notes that are applicable to multiple cameras within one shot and one take.
    Any ideas?

    OnLocation CS5 has an entirely new feature set known as the File-Based Workflow that may be just what you are looking for. The basic steps are as follows:
    PRE-PRODUCTION (IDEALLY)
    1) Create a placeholder for one camera angle of a given scene/shot. (Consider using Adobe Story to prepare your script. Then you can hand the script off to OL and have it automatically broken down into scene-level placeholders. You will then still need to break those placeholders down to the shot level)
    2) Use the Camera Name property to designate the camera for that shot. If you use the "auto-matching" process, which you will likely want to do if you're entering notes per take, then this data point will be used to automatically mate a set of clips from, say Camera A to the correct set of placeholders.
    3) Fill in any other metadata that is common to other camera angles.
    4) Duplicate the placeholder for other camera angles & shots of the scene. To do this, you can use either the Duplicate Placeholder command or, to create multiple duplcates, the Break Out Scene command, both of which are available in the context menu when you right-click a row in the shot list. Note that both commands work with multiple rows selected.
    5) Customize each duplicate as appropriate.
    6) Repeat for your other shots.
    DURING THE SHOOT
    1) [Strongly recommended] For multi-cam shoots, synchronize the date/time on all the cameras. Ideally, synch them all to the date/time on the computer running OnLocation. This greatly simplifies the auto-matching process by saving you the hassle of repeatedly changing the camera date/time in OnLocation.
    2) Select placeholder(s) or clip(s) for the next shot.
    3) At any time between starting and stopping recording of the take, click the Timestamp button (upper left corner of the Project/Shot List panel). This step applies a timestamp to the placeholder, which makes it possible for the auto-matching mechanism to determine which clip belongs with which placeholder.
    4) Optional: Add temporal comment markers to timestamped placeholders, which will be aligned to the clip when you auto-match. (Note that PPRO does not recognize comment markers added in OnLocation.)
    5) Repeat steps 1-3 for subsequent shots
    AFTER TRANFERRING CLIPS TO THE COMPUTER
    1) In the Media Browser panel, navigate to the folder where you copied the content.
    2) Select the clips.
    3) Click the Auto-Match button at the top of the panel. This opens the Auto-Match dialog.
    4) if this is a multi-camera shoot, check the appropriate box and select the name of the camera that this content came from. The list for the Camera Name setting is populated from what you entered in the Camera Name field for all timestamped placeholders. [Be alert for unintended variants. For example, if you entered "Camera A" for some shots and "Cam A" for others, you'll see both versions in the list. Before proceeding, you should standardize the entries.]
    5) Set the Camera Date/Time. If you synched the cameras' date & time to the computer's, then this step is not necessary (unless you previously set a Camera Date/Time offset in OL, in which case you will need to reset the Date/Time to match the computer's.)
    6) Click OK to proceed with auto-matching. OnLocation will proceed to find the placeholder whose timestamp fits within the Start and Stop Recording times of one of the clips and, if relevant, whose Camera Name matches your selection. All metadata from that placeholder will be merged into the clip.
    [Please note that all of the foregoing is from memory--I don't have OL CS5 installed on this home computer--so I may have gotten the names of some of the controls wrong. I'm pretty confident that the basic workflow is sound, however.]
    Here's the help page for this feature. I'm afraid it's does not really cover the particulars for a multi-camera workflow. http://help.adobe.com/en_US/onlocation/cs/using/WS89e4fde9608114f41e5eb2de124b454ea2b-8000 .html
    As for entering the same string in the Comment field (or any other metadata property) for multiple placeholders or clips simultaneously, simply select whichever rows in the Shot List that you want to edit, then in the Metadata panel edit whichever properties you choose to. Your changes will be applied to all selected rows (assuming they're editable--i.e., not read-only or offline, both of which apply only to clips, not to placeholders)

  • How to enable Like/Unlike, paging and searchbox functions for customized blog view list with JSLink.

    Hi All
    I am trying to customizing a view list which based on a blog template( =AllPost.aspx ) bu JSLink. The view need below 3 functions.
    1. User can set Like/Unlike for each item on the list view.
    2. User can move page by standard like page navigation buttons( prev/next ).
    3. User can search the specific item by searchbox keyword.
    I tried to overrideCtx.Templates.Item and overrideCtx.Template.Footer in .js - customized footer returns RenderFooterTemplate(ctx).
    a). Like/Unlike function worked fine.
    b). Page navigation and search did not worked.
    Next, I tried to overrideCtx.Templates.Body -
    a). Like/Unlike function worked not fine. - when the user clicks Like/UnLike on the page(n>2), list view moves top(n=1) after the below code executed.
    EnsureScriptFunc('reputation.js', 'Microsoft.Office.Server.ReputationModel.Reputation', function ()
    Microsoft.Office.Server.ReputationModel.Reputation.setLike(
    ctxObj,
    listId,
    itemId,
    like);
    b). Page navigation and search worked fine.
    Finally, I override both Item and Body with almost same code(differs set for the item object).
    After that all functions work fine, but I can not understand
    why. 
    Does anyone have explanation of that or another way?

    try this links for button funcitonality:
    https://social.msdn.microsoft.com/Forums/en-US/6a19b015-83a3-4cf3-a5da-216133ce936b/need-next-previous-button-on-list-view-webpart?forum=sharepointcustomization
    http://maulikdhorajia.blogspot.com/2011/06/sharepoint-2010-customize-paging-in.html

  • Does master recipe have function for splitting phase?

    does master recipes that create from T-code C201 have funtion for splitting operation/phase? since i can't find the function splitting in master recipe.
    if it has, could anyone explain me?
    thanks
    kanapon

    Dhaval Choksi
    I'm sorry if my question not clear so splitting that i meant is,
    In routing,for example assumes that only one person/machine will be working on a job at a time. If it takes one hour to make one, and the order is for 10, the system will schedule the job at that work center to take 10 hours. However, if in the operation in the routing, you select "Required Splitting", then you put in "number of splits" as 2, then the system will assume you are having two people/machines work on the job at the same time, hence it will only schedule the job to take 5 hours, not 10
    thanks

  • Does anyone know how to use the bcc functionality for apple mail while accessing it on the cloud from my PC?

    I am currently away from my MAC and want to send an email through apple mail with the bcc functionality.  I am using the cloud to get to my mail, however, I can't figure out how to use the BCC functionality, please help.  Thanks!

    Open your mail,
    lower left corner click on settings,
    go to composing and check BCC, save and your done

  • Is DB_THREAD needed during db_env_create for multi-process db access?

    Using BDB as a transaction data store, where mutliple processes can read/modify the data. NOT creating any threads within any of the processes. Do I need to set the DB_THREAD flag during db_env_create ?

    Hi Kedar,
    Only the DB_ENV and DB handles are free-threaded if the DB_THREAD flag is used when opening these handles.
    You should specify DB_THREAD only if you intend to use the handles in more than one thread in a process. If only a single thread per process will be used there is no need to specify the DB_THREAD flag.
    Regards,
    Andrei

  • ABAP Mapping :: for multi files

    Dear Experts,
    We are doing an Idoc to file interface, using ABAP mapping.
    This is 1:n mapping i.e receiver message interface is 0..unbounded.
    We have achieved the mapping for 1:1. But when I test for multi, i get an error in moni saying
    Parsing error after multi mapping.Expected Message<i> instead of Item
    Item is the name of the node that has to be created multiple times.
    Has anyone done multi mapping in ABAP?? Any idea why this error....may be we are missing something.
    Any idea as to how we can progress???
    Thanks in advance
    Regards
    Shobha

    Hi,
    Surely u can use an ABAP mapping for this.
    Sounds like your problem is your not using correct output structure for multi mapping.
    As with any type of multi mapping your structure should reflect this. Your target payload must thus have the following structure:
    <?xml version="1.0" encoding="UTF-8"?>
    <ns0:Messages xmlns:ns0="http://sap.com/xi/XI/SplitAndMerge">
         <ns0:Message1>
              <unboundedPayload/>
         </ns0:Message1>
    </ns0:Messages>
    The <unboundedPayload> element in above should of course be replaced with your actual payload - I believe 'Item' in your case, if that is in fact the root node of your actual payload.
    Regards,
    Daniel

  • Catalog Access - Potential for Contention

    I have written a plugin that runs in the background and updates metadata in the catalog (periodically accessing for a very short time). If it can't access the catalog, it just sleeps for a while then tries again later - never complains...
    However, if it happens to be in the middle of accessing the catalog, other plugins that attempt to access the catalog may fail. For this reason, I have written the following function which solves catalog contention within my line of plugins. The moral of the story is that one should not assume another plugin is not already accessing the catalog...
            Synopsis:           Catalog access wrapper that distinquishes catalog contention errors from target function errors.
            Notes:              - Returns immediately upon target function error.
                                - The purpose of this function is so multiple concurrent tasks can access the catalog in succession without error.
                                - It uses an ethernet collision avoidance technique for arbitration (retries after a short but random amount of time).
                                tryCount is number of catalog contention errors to endure before involving the user.
                                func is catalog with-do function
                                cat is the catalog object.
                                p1 is first parameter which may be a function, an action name, or a param table.
                                p2 is second parameter which will be a function or nil.
            Returns:            itsAGoOrNot, andWhatever.
    function RcUtils.withCatalogDo( tryCount, func, cat, p1, p2 )
        while( true ) do
            for i = 1, tryCount do
                local sts, qual = LrTasks.pcall( func, cat, p1, p2 )
                if sts then
                    return true, qual
                elseif RcString.is( qual ) then
                    local found = qual:find( "LrCatalog:with", 1, true ) or 0 -- return position or zero, instead of position or nil.
                    if found == 1 then -- problem reported by with-catalog-do method.
                        local found2 = qual:find( "already inside", 15, true )
                        if found2 then
                            -- problem is due to catalog access contention.
                            if RcUtils.debugMode then
                                LrDialogs.message( 'cat contention: ' .. qual )
                            else
                                LrTasks.sleep( math.random( .1, 1 ) ) -- sleep for a half-second or so, then try again.
                            end
                        else
                            -- LrDialogs.message( 'not already inside cat: ' .. RcLua.toString( qual ) )
                            return false, qual
                        end
                    else
                        -- LrDialogs.message( 'not a cat with msg: ' .. RcLua.toString( qual ) )
                        return false, qual
                    end
                else
                    -- LrDialogs.message( 'bad cat sts, but no msg.' )
                    return false, 'Unknown error occurred accessing catalog.'
                end
            end
            local action = RcUtils.showWarning( "Unable to access catalog.", "Keep Trying", "Give Up" )
            if action == 'ok' then
                -- keep trying
                -- LrDialogs.message( "Will try again." )
            else
                -- assert( action == 'cancel', "unexpected error action: " .. RcLua.toString( action )  )
                -- LrDialogs.message( "Gave up trying to access catalog." )
                return false, "Gave up trying to access catalog."
            end
        end
        -- RcUtils.logError( "Unable to access catalog." ) - let this be done in calling context.
        -- LrDialogs.message( LOC( "$$$/X=Unable to access catalog after ^1 tries.", tryCount ) )
        return false, LOC( "$$$/X=Unable to access catalog." )
    end

    Hi Vladimir,
    You can see the outside & inside of DevMeta for complete details, but in a nutshell , there are few things the "background" task does, including:
    1. Check if the develop settings of the currently viewed photo have changed, if so update metadata for the library panel view (and Library Filter, and Smart Collections...) - this is what I call: Auto-Update.
    2. Check if user has edited the metadata - in which case it updates the develop settings of the active photo (called Live-Edit).
    The posted function makes sure none of my other plugins complain if they can't get at the catalog while DevMeta has it (which usually does not happen, but sometimes does). However, other peoples plugins will occasionally fail if they assume the catalog to be free for them all the time (and they have DevMeta running). There is at least one other fellow doing something similar, so I'm not the only plugin developer with the "bright idea" of doing things in the background that require catalog access.
    Rob

  • How to handle and Manage Multi DataBase access with LCDS in runtime ?

    Hello there
    I got several customer working with the same application and I wonder how,  with LCDS,  to manage  in a runtime a multi dataBase access; without creating a configuration "mxl" file in
    the folder catalina for each database.
    Indeed, each customer have their own dataBase, and so far, I did not find out how to avoid creating a config xml file in catalina for every single database; which force me to create as well for each customer a  folder application, since the name of the config file in catalina require a folder application to be ran under tomcat....
    Thus, my question is :
    Is there anyway to create only one configuration mxl file in catalina (in the server side) and then from the client side (application) let the user select its environment (meaning its database) to run the application.... this technic can be also used for multi database environment such as : Dev / Test / Prod   environment (or database) where the same application can access to.
    Please if any one have an idea or already delt with; just let me know, because I'm entering in a bootle neck and the situation is getting serioulsy critical....
    Regards

    Hello Ulrich,
    with compact and repair I mean the MSAccess function "Compact and Repair".
    Please follow the link below for more details:
    http://office.microsoft.com/en-us/access-help/compact-and-repair-an-access-file-HP005187449.aspx
    Normally you can execute this function directly in Access or with the Windows ODBC Data Sources Administrator  => "Control Panel" => "Administrative Tools" => "Data Sources (ODBC)"...
     I want to execute this function via cvi code and not by hand ;-).
    Thank you for your support.
    Frank

  • How can the symbol and non-English diacritical marking, etc accessed with combinations of letters and functional keys prior to Snow Leopard be achieved in Snow Leopard?

    How can the symbol and non-English diacritical marking/punctuation pallet, available in pre-Snow Leopard OSes with various combinations of letter or number keys and functional keys, be accessed in Snow Leopard?  Those pre-Snow Leopard versions worked on the fly as one was making text in any pedestrian application and its native font (Mail, Text Edit, for example).  One didn't need to dig around in font libraries, change font preferences, etc.

    > One didn't need to dig around in font libraries, change font
    > preferences, etc.
    It hasn't worked like that since the Early Chalcolithic (ie, System 7 or thereabouts).
    You've already got plenty of answers. Briefly (and grossly oversimplified),
    - Mac OS X conforms to a standard known as Unicode; in its current incarnation, it defines over 100k characters.
    - A keypress is translated into a character according to the current keyboard layout.
    - The graphic representation of a character (ie, glyph), is provided by the current font.
    - If a font lacks a glyph for the requested character, either another font will be automatically chosen (Mac OS X text engine), or some form of feedback (empty box, question mark, etc) will be used.
    - To inspect the actual key codes, use a utility such as Key Codes.
    - To inspect the current keyboard layout, invoke Keyboard Viewer.
    - To inspect the full complement of glyphs of a font, invoke Character Viewer (also accessed with the Special Characters command).
    (Remember that both these utilities are resizable and zoomable -- you can enlarge them to a comfortable viewing size, then zoom out to see more of the screen for your original task.)
    - For a more detailed look, use a utility such as UnicodeChecker.
    - The default keyboard layout depends on your Mac OS X localisation.
    (Keep in mind that there's no need to stick with the default layout; choose whichever one makes sense to you, given your language, habits, and proclivities. Mac OS X comes bundled with quite a few, including some obviously designed for the huddled masses of refugees from the Dark Side, who, in their wretched ignorance, have the unmitigated gall of labelling our native ways "really uncomfortable". Oh well, this, too, shall pass.
    If none of the supplied keyboard layouts fits your needs -- if, for instance, you write your emails in Etruscan -- go out on the 'net, you'll find quite a few. Or write your own with Ukulele, it's not really all that difficult.)
    - Use Keyboard Viewer to familiarise yourself with the current layout and to enter the odd character; but, to be proficient, you should learn your layout to the point that KV is no longer needed.
    - Use Character Viewer to enter the odd character not available in the current keyboard layout.
    Neither Keyboard Viewer nor Character Viewer are effective tools for more extensive needs, eg, for writing and editing bilingual or multilingual texts. In such a case, you should enable the respective keyboard layouts and switch between them with a keyboard shortcut.
    A few interesting layouts bundled with Mac OS X have already been mentioned. Let me add three.
    - Dvorak: several layouts based on the Dvorak keyboard. It is claimed that the latter is more productive and lessens RSI risk.
    - US Extended: based on QWERTY, it offers a more extensive set of diacritics (eg, caron, breve) via dead keys.
    - Unicode Hex Input: also based QWERTY, it allows input by Unicode codepoint (in hexadecimal), so it's the most extensive layout of all; eg, to enter the character "Parenthesized Number Twelve" (U+247F), hold down Option, type "247f", release Option.

  • Having trouble with Tiscali/TalkTalk site when accessed with 'FireFox', can't 'reply' to emails or report 'spam', other functions seem ok

    Having trouble with Tiscali/TalkTalk site when accessed with 'FireFox',
    can't 'reply' to emails or report 'spam', other functions seem ok
    == This happened ==
    Every time Firefox opened
    == On/Off few months now all time

    Try deleting cookies and cache:
    1. Tools| Clear recent history
    2. Time range to clear: Everything
    3. If it isn't already selected, select '''Cookies''' and '''Cache'''
    4. '''Clear now'''
    <u>Check cookie exceptions</u>
    1. Tools | Options | Privacy Panel
    2. Set '''Firefox will: Use custom settings for history''' Insure Accept cookies for sites and accept third-party cookies is selected
    3. Click '''Exceptions'''. If the misbehaving site is in that list, select it and click '''Remove site'''
    Also see [[Updating Firefox]]

  • JNI to access functions of a dll to deal with a data aquision pci card

    i am trying to do an applicattion to access the functions of a dll
    to deal with a data aquision pci card (Analogig/Digital pci card).
    i�m using jni of course, but i have some problems.
    first i did a class called "TesteDll" witch contains all the native methods to access the functions of the pci card.
    after, i did a "TesteDll.jar" to use these methods in another applicattions.
    everything was fine until there. so created a single program like this:
    TesteDll td = new TesteDll();
    short res1 = td.P1602_DriverInit(wTotalBoards);
    short r = td.P1602_ActiveBoard((short)0); // ativa a placa
    short res2 = td.P1602_GetConfigAddressSpace((short)0,wAddrTimer,wAddrCtrl,wAddrDio,wAddrAdda);
    int dwRepeat;
    for(dwRepeat=0 ; dwRepeat<100 ; dwRepeat++)
    short wRetVal;
    wRetVal = td.P1602_ClearScan();
    wRetVal += td.P1602_AddToScan((short)0,(short)0,(short)1,(short)0,(short)0,(short)0);     // CH:0 to scan
    wRetVal += td.P1602_SaveScan((short)0,wV0);
    wRetVal += td.P1602_AddToScan((short)2,(short)0,(short)1,(short)0,(short)0,(short)0);     // CH:2 to scan
    /* ->error here!*/ wRetVal += td.P1602_SaveScan((short)1,wV2);      
    the programs compile correctly, but in the execution the folowing error was descripted:
    An unexpected exception has been detected in native code outside the VM.
    Unexpected Signal : EXCEPTION_ACCESS_VIOLATION (0xc0000005) occurred at PC=0x8079A50
    Function=[Unknown.]
    Library=(N/A)
    NOTE: We are unable to locate the function name symbol for the error
    just occurred. Please refer to release documentation for possible
    reason and solutions.
    Current Java thread:
    at TesteDll.P1602_SaveScan(Native Method)
    at Teste2.main(Teste2.java:119)
    Dynamic libraries:
    0x7CD80000 - 0x7CD9D000      C:\WINDOWS\SYSTEM\IMAGEHLP.DLL
    Heap at VM Abort:
    Heap
    def new generation total 576K, used 161K [0x10010000, 0x100b0000, 0x104f0000)
    eden space 512K, 31% used [0x10010000, 0x100385c0, 0x10090000)
    from space 64K, 0% used [0x10090000, 0x10090000, 0x100a0000)
    to space 64K, 0% used [0x100a0000, 0x100a0000, 0x100b0000)
    tenured generation total 1408K, used 0K [0x104f0000, 0x10650000, 0x14010000)
    the space 1408K, 0% used [0x104f0000, 0x104f0000, 0x104f0200, 0x10650000)
    compacting perm gen total 4096K, used 1044K [0x14010000, 0x14410000, 0x18010000)
    the space 4096K, 25% used [0x14010000, 0x141152e8, 0x14115400, 0x14410000)
    Local Time = Wed Jun 01 10:21:14 2005
    Elapsed Time = 0
    # The exception above was detected in native code outside the VM
    # Java VM: Java HotSpot(TM) Client VM (1.4.2_06-b03 mixed mode)
    functions like "P1602_DriverInit(wTotalBoards)","P1602_ActiveBoard((short)0)" functions correctly.
    i run the same program in c++ builder and everythings goes fine, but i need to do it in java. i don�t know what to do,can you help me?
    thanks

    i almost forgot, i�m using win 98.
    First i used Dev C++ to make the JNI dll and the error ocurred at the first call of "P1602_AddToScan()" function. after i made the jni dll using C++ Builder, and the error ocurred at the second call of "P1602_SaveScan()" function. but the error message in both cases was the same.
    for(dwRepeat=0 ; dwRepeat<100 ; dwRepeat++)
    short wRetVal;
    wRetVal = td.P1602_ClearScan();
    /*First Error - Dev C++*/ wRetVal += td.P1602_AddToScan((short)0,(short)0,(short)1,(short)0,(short)0,(short)0); // CH:0 to scan
    wRetVal += td.P1602_SaveScan((short)0,wV0);
    wRetVal += td.P1602_AddToScan((short)2,(short)0,(short)1,(short)0,(short)0,(short)0); // CH:2 to scan
    /* Second error C++ Builder */ wRetVal += td.P1602_SaveScan((short)1,wV2);
    ...

  • How do I get the Speech function for accessibility to work in the Windows 8 version?

    How do I get the Speech function for accessibility to work in the Windows 8 version? There is no "File" option where you would normally find it. I tried using Narrator from Windows however it cannot read "explorable text" I guess

    Adobe Reader Touch (Windows Store app with "modern" UI) is not really accessible.
    If you have a device running the Windows 8 operating system (as opposed to the Windows RT operating system), you can install and run Adobe Reader XI (desktop app with classic UI), which offers better accessibility support for screen readers.  It also has the "Read Out Loud" functionality.

  • My system preferences not offering multi-touch functions for new magic mouse

    I just bought a magic mouse for my Mac OS X 10.5.8 desktop. It is not letting me set up the multi-touch gesture funtions.  When I go into my 'system preferences / keyboard & mouse' it does not offer the set up of the multi-touch functions for the magic mouse.  Do you know how I can set these functions up on my computer???  The instruction manual says it works with Mac OS X 10.5.8???  I want to be able to use the magic mouse to scroll and swipe. 
    Thanks for your help!

    I see the requirements are:
    Mac computer with Bluetooth wireless technology
    OS X v10.5.8 or later with Wireless Mouse Software Update 1.0* or OS X v10.6.1 or later with Wireless Mouse Software Update 1.0
    Existing keyboard and mouse for setup
    Two AA batteries (included)
    Are you using a Mac with a Bluetooth wireless transmitter?

  • I have multiple devices with the same cerificate, once I have a an exception for one, FF denys access to the others. I cannot change the certificates, I need to stop FF blocking them.

    I have multiple devices with the same cerificate, once I have an exception for one, FF denys access to the others. I cannot change the certificates, I need to stop FF blocking them.
    == This happened ==
    Every time Firefox opened
    == I attempt to access a web front end on an IBM SVC device

    You can't use the same certificate more than once.
    See also [[Certificate contains the same serial number as another certificate]]

Maybe you are looking for

  • Ipod touch not syncing as already synced with another library

    I Pod Touch just purchased 4th one in family. Whilst away i set up itunes in another win computer and synced new  ipod touch to this one. Now i,m home trying to sync with my mac at home but getting error; "This Ipod is synced with another library" Th

  • Pdf attachments won't open from outlook?

    I have adobe reader version 10.1.6 and for the last few weeks, when I double click on a attachment in outlook nothing happens.  Sometimes after clicking 10 to 20 times it will finally open.  This problem does not exist if I am simply opening a pdf fr

  • All-in-One Photosmart C5180 not working correctly Airport Express

    I am new at this so please bare with me. Last night I installed all the software etc and hooked the printer up via usb into my airport express. I did all the instructions as instructed. As I began to use the HP software, it would not recognize the pr

  • Customer Number in PCA

    Can someone tell me how to determne what the source us for the Customer Number field is in the PCA Line Items?   I am specifically looking for PCA line items that come from Sales Order Billing Documents.

  • LMS 4.2.1 - unidentified traps in fault monitor

    MY LMS, under fault monitor, shows many messages (actually hundreds), "Unidentified Trap Generic Trap:6 Specific Target:1 EnterpriseOid:.1.3.6.1.4.1.9.9.41.2" This OID leads me down the CISCO-SYSLOG-MIB.my, to ciscoSyslogMIBNotification. vestigaiton