Finding classes within OSGi bundles via the JNI?

As an example, I have a class com.company.bundle.myJavaClass within the OSGi bundle com.company.bundle.MyClass.
Within my C++ code, after starting the JNI and OSGi via the usual invocation (with com.company.bundle in the classpath), If I try the following within C++ code:
jclass myclass = jniEnv->FindClass("com/company/bundle/MyClass/");the FindClass call returns null, because the JNI apparently could not find the bundle.
However, if I set everything up such that once the JVM is loaded, OSGi creates an instance of MyClass which then calls the C++ library
JNIEXPORT void JNICALL Java_com_company_bundle_MyClass_c_1SimpleCall (JNIEnv * jniEnv, jobject manager)
jclass myclass = jniEnv->FindClass("com/company/bundle/MyClass");
}myclass is successfully found and I can successfully invoke MyClass methods through the JNI. However, if I ever try to do this outside of the above JNICALL function, it will fail to find the class (regardless of whether or not the bundle is loaded or if an instance of class exists.) Keeping track of the jniEnv pointer returned by the JNICALL function doesn't help, either.
How can I get my C++ code to always succesfully find MyClass?
Any insight would be appreciated!
Edited by: mmetzger on Aug 20, 2009 10:05 PM

mmetzger wrote:
Thanks, I appreciate the condescension. :)
It turns out that the actual problem is that classes loaded by OSGi do not use the system class loader like "normal" Java classes do. So the JNI cannot load the class anymore than any other non-OSGi code could.
[This page|http://blog.springsource.com/2009/01/19/exposing-the-boot-classpath-in-osgi/] Is a much better description of the issue than I could hope to write.
Interesting but nothing in there nor in a brief google look suggested anything other than that a custom class loader was used.
And one can certainly load classes in JNI via custom class loaders.
If you attempt to load a class that is only available via custom class loader and do not use that loader then the class will fail to load.

Similar Messages

  • Problem using WebRowSetImpl within OSGI bundle.

    Hallo to everyone,
    I used to use standard WebRowSetImpl in my Java programs to pass data between application layers without problem. Now, I'm facing an issue using WebRowSetImpl in an OSGI module: I get a ClassNotFound Exception while trying to instantiate it. That sounds really strange because if I just run my bundle using java interpreter (as if it were a normal executable jar), I get no errors.
    May you help me, please ?
    Thanks you in advance.

    Use the brace notation."#{usr['user.user_name.label']}"

  • Browser can't find a text file opened via the save as dialogue box

    Hi there,
    I have a servlet which outputs a file using the servlet output stream, with the following lines set:
    response.setContentType("application/msword");
    response.setHeader("Content-Disposition", "attachement; filename="+ fileName);
    servletOutStream.write(myBytes);
    servletOutStream.flush();
    It works fine for .doc files and it seems the mechanism is that it is saved to the Temporary Internet Folder and delivered from there when the user clicks on the 'open' or 'save' option in the browser popup dialogue box. However... when I try this with text files, (setting the content type to "text/plain") I get the open/save dialogue box up correctly but if I try to open the file it says it cannot find the file, and gives the path under the Temporary Interenet Folder. If I look in there the text file isn't present - though the .doc files are.
    So... it looks as if the problem is that for some reason it doesn't save the text files correctly to the Temporary Internet Folder.
    I can't deliver the text files inline as a solution as the filename is lost and it thinks it's an html file (which the client doesn't want).
    Any ideas?
    Alison

    At least also set the content length. Your browser may be configured be the default application to open textfiles. If the contentlength is not set, then most applications would refuse to open the file without choosing for 'Save' first and manually open it.

  • OSGi bundle JNI load/unload problem

    Hi everybody!!
    One more thread about the topic. I still didn't find a solution. Can anybody help me?
    I have an OSGi bundle that access native methods from a JNI library (for a medical device). I could make my bundle work once, but the second time I tried to access the methods, the dll was still in use I couldn't get data from the methods.
    This is the class I used (I even tried with a custom libloader):
    public class Omron637ITjni {
         /*Native functions from the JNI dll*/
         public native int OmronInit();
         public native int OmronClose();
         public native int OmronFinish();
         public native int OmronOpen(int disp);
         public native int OmronRead(MeasurementData MData, int pos);
         public native void OmronNumRead(DataCount DCount);
         static{
              //Using LibLoader
              /*try {
              LibLoader.loadCommLib("omron637IT");
              catch ( Exception x ) {
              // do what is necessary
                   System.out.println(x);
              //Using System Commander
              try{
                   System.out.println("Charging Library Omron");
                   System.loadLibrary("omron637IT");
              }catch(UnsatisfiedLinkError unsatisfiedlinkerror)
    System.out.println("Error loading library: " + unsatisfiedlinkerror);
    As it seems not to work, I'm trying with Singleton pattern. This is my new class:
    public class Omron637ITjni_Singleton {
              * Native functions from the JNI dll
              public native int OmronInit();
              public native int OmronClose();
              public native int OmronFinish();
              public native int OmronOpen(int disp);
              public native int OmronRead(MeasurementData MData, int pos);
              public native void OmronNumRead(DataCount DCount);
              private static Omron637ITjni_Singleton singleton;
              * Instance accessor following singleton.
              public static Omron637ITjni_Singleton getInstance() {
                   if (singleton == null){
                        System.out.println("Create Object");
                        singleton = new Omron637ITjni_Singleton();
                   else{
                        System.out.println("Object already created; use instance");
                   return singleton;
              * Private constructor to ensure that a <tt>ResourceManager</tt>
              * cannot be constructed from outside this class.
              private Omron637ITjni_Singleton() {     
              static{
                   //Using LibLoader
                   /*try {
                   LibLoader.loadCommLib("omron637IT");
                   catch ( Exception x ) {
                   // do what is necessary
                        System.out.println(x);
                   try {
                        System.out.println("Charging Omron library from Singleton");
                        System.loadLibrary("omron637IT");
                        System.out.println("Library charged");
                   } catch (UnsatisfiedLinkError ule) {
                        System.out.println("Error loading library: " + ule);
    At this very moment, when executing
    Omron637ITjni_Singleton jni = Omron637ITjni_Singleton.getInstance();
    from the Activator, I get from the Knopflerfish console:
    [stdout] omron637ITBPM starting...
    [stdout] Service registered: Omron 637IT Blood Pressure Monitor
    [stdout] Charging Library Omron desde Singleton
    [stdout] Library chatged
    [stdout] Create object
    Then, I call a services provided by the bundle:
    framework call omron637IT.Omron637ITInterface getData
    which calls the following function:
    public void getData() {
              // TODO Auto-generated method stub
              //Omron637ITjni jni = new Omron637ITjni();
              //Singleton
              Omron637ITjni_Singleton jni = Omron637ITjni_Singleton.getInstance();
              try {
                   int res = jni.OmronInit();
                   int ok_open = jni.OmronOpen(res);
                   System.out.println("The attempt of connecting the Omron637IT device ended with code: " + ok_open + " [(0) normal (1) still in process (2) error]");
                   if (ok_open == 0){ //OK
                        DataCount NumData = new DataCount();
                        jni.OmronNumRead(NumData);
                        System.out.println("DATA");
                        System.out.println("----");
                        for (int pos = 0;pos<NumData.nData1;pos++){
                             MeasurementData Data = new MeasurementData();
                             int ok_read = jni.OmronRead(Data,pos);
                             int annyo = Data.cYear + 2000;
                             int i = pos + 1;
                             if (ok_read == 0)
                                  System.out.println("Num: " + i + "; Date-> " + Data.cDay + "/" + Data.cMonth + "/" + annyo + "; Time-> " + Data.cTime + ":" + Data.cMinute + ":" + Data.cSecond + "; Sys-> " + Data.nSys + "; Dia-> " + Data.cDia + "; Pls-> " + Data.cPls);
                        int stop = jni.OmronClose();
                        System.out.println("Close with code " + stop + " Right?");
                        int finish = jni.OmronFinish();
                        System.out.println("Finish with code " + finish + " Right?");
                        System.gc();
                        System.gc();
                   else
                        System.out.println("The process of opening the device ended with error");
              }catch (UnsatisfiedLinkError ule) {
                   System.out.println("BRUTAL ERROR: " + ule);
    [stdout] The objeto already exists
    [stdout] BRUTAL ERROR: java.lang.UnsatisfiedLinkError: OmronInit
    Result: null
    which indicates that this time I'm using the same instance of the singleton class created in the activation process, but that I cannot access the method. ANY HINT??
    I also provide you the JNI dll code (because I add the exporting of the JNI_OnLoad & OnUnload methods:
    .h
    /* DO NOT EDIT THIS FILE - it is machine generated */
    #include <jni.h>
    /* Header for class omron637IT_Omron637ITjni */
    #ifndef Includedomron637IT_Omron637ITjni
    #define Includedomron637IT_Omron637ITjni
    #ifdef __cplusplus
    extern "C" {
    #endif
    * OnLoad & UnLoad
    JNIEXPORT jint JNICALL JNI_OnLoad(JavaVM vm, void reserved);
    JNIEXPORT void JNICALL JNI_OnUnload(JavaVM vm, void reserved);      
    * Class: omron637IT_Omron637ITjni
    * Method: OmronInit
    * Signature: ()I
    JNIEXPORT jint JNICALL Java_omron637IT_Omron637ITjni_OmronInit
    (JNIEnv *, jobject);
    * Class: omron637IT_Omron637ITjni
    * Method: OmronOpen
    * Signature: (I)I
    JNIEXPORT jint JNICALL Java_omron637IT_Omron637ITjni_OmronOpen
    (JNIEnv *, jobject, jint);
    * Class: omron637IT_Omron637ITjni
    * Method: OmronRead
    * Signature: (Lomron637IT/MeasurementData;I)I
    JNIEXPORT jint JNICALL Java_omron637IT_Omron637ITjni_OmronRead
    (JNIEnv *, jobject, jobject, jint);
    * Class: omron637IT_Omron637ITjni
    * Method: OmronNumRead
    * Signature: (Lomron637IT/DataCount;)V
    JNIEXPORT void JNICALL Java_omron637IT_Omron637ITjni_OmronNumRead
    (JNIEnv *, jobject, jobject);
    * Class: omron637IT_Omron637ITjni
    * Method: OmronClose
    * Signature: ()I
    JNIEXPORT jint JNICALL Java_omron637IT_Omron637ITjni_OmronClose
    (JNIEnv *, jobject);
    * Class: omron637IT_Omron637ITjni
    * Method: OmronFinish
    * Signature: ()I
    JNIEXPORT jint JNICALL Java_omron637IT_Omron637ITjni_OmronFinish
    (JNIEnv *, jobject);
    #ifdef __cplusplus
    #endif
    #endif
    and part of the code (.cpp):
    JNIEXPORT jint JNICALL JNI_OnLoad(JavaVM vm, void reserved)
         return JNI_VERSION_1_4;
    JNIEXPORT void JNICALL JNI_OnUnload(JavaVM vm, void reserved)
    JNIEXPORT jint JNICALL Java_omron637IT_Omron637ITjni_OmronInit
    (JNIEnv *env, jobject obj)
         iNumberOflist = DEVLISTMAX;
         iSpeed = USF_SPEED4800;
         iStopBit = USF_STOP2;
         iProduct = USF_BPM;
         ret = USF_Search(hDlg, iSpeed, iStopBit, iProduct, DevList, &iNumberOflist);
         return iNumberOflist;
    Can anybody tell me what I'm doing wrong???. This really drives me crazy
    BR & very thanks in advance for any input.

    This is a known bug. Check out http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4712793

  • Coherence 3.5  as OSGi bundle

    Hi,
    We are starting out on an OSGi project which will use Coherence 3.5 as a data grid for storing and manipulating application data. I see that Coherence (as a separate product) is getting released as a Jar and not as an OSGi bundle. When I looked on the web, I see that Coherence (3.4) is getting packaged along with other Oracle products (CEP 10.3) as OSGi bundle (http://blogs.oracle.com/CEP/2008/10/oracle_complex_event_processin_1.html) and Oracle Fusion Middleware 11g.
    Let us know if we can expect to see Coherence getting released as an OSGi bundle in the near future.
    Till that time, Is there any guidance/recommendation on:
    1) Running Coherence in OSGi environment
    2) Accessing Coherence from an OSGi client application
    Thanks,
    Prakash

    1. Generally, it's easiest if there is membership in only one Coherence cluster per OSGi container. In other words, one member of one cluster per container.
    2. (From Stephen Felts, note that this was pre-3.5) Coherence currently uses the context classloader of the thread to find the default configuration file (coherence-cache-config.xml) and the JMX configuration (reports/report-group.xml). This is generally not the correct thing when running in OSGi. Applications will need to reset the context classloader before getting the class.
    ClassLoader oldLoader = Thread.currentThread().getContextClassLoader();
    ClassLoader newLoader = com.tangosol.net.CacheFactory.class.getClassLoader();
    Thread.currentThread().setContextClassLoader(newLoader);
    CacheFactory.getCache(cacheName);  //Start coherence cache instance
    Thread.currentThread().setContextClassLoader(oldLoader);"
    {code}
    3. (From Hal Hildebrand) There are issues that can come up specifically with respect to serialization with complex dependencies across bundles. Basically, OSGi allows classes to be hidden through the modules, so you have to be really careful as to the class loader you use for the cache.  Here's a simple scenario showing the issue: Let's say that we're using the class loader from Bundle A.  Bundle A imports the interface FOO from Bundle B.  Bundle A uses an implementation of FOO, FooImpl, from Bundle C.  However, Bundle C either doesn't import FooImpl (i.e. it's a private class) or Bundle A doesn't import the package from Bundle C. So, if you serialize FooImpl into the cache, what happen in the above scenario is that the cache will not be able to deserialize FooImpl using Bundle A's class loader.
    4. There are various issues around the use of static fields in Coherence. These are very "non OSGI like". It's generally an issue when you are trying to create a Coherence bundle and decide what APIs to expose. Some of the "builder" work that went into 3.5 was designed to help rectify this and make Coherence easier to use in OSGi.
    5. (From Jeff Trent, in lieu of having a Coherence bundle as part of the Coherence distribution) Bundlizing Coherence jar(s) is a prerequisite for using Coherence w/ OSGi.  For this, you can essentially lift the bundles out of (e.g.) CEP.  There are tools like BND (http://www.aqute.biz/Code/Bnd) integrated into Maven that really make this quite simple to do.
    The summary I have so far is that using Coherence in OSGi is easy for easy stuff today, but there are a number of things that we're developing to make the more complex use cases simple in the future.
    Peace,
    Cameron Purdy | Oracle Coherence
    http://coherence.oracle.com/                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               

  • Interval Timing Issue On Solaris 10/Intel When The JNI Is Involved

    We've observed an odd behavior bridging to interval timers over the JNI on Solaris 10/Intel, and I was wondering if anybody here has ever seen anything like this.
    We have an interval timing facility that's implemented over a small set of platform-dependent native timing facilities. The *NIX "itimer" facility is used wherever it exists. On RedHat/Fedora we also implement a timer over the RTC device. On Windows we use a WaitableTimer.
    On all platforms there's a Java class that bridges to an appropriate timing facility via the JNI, and to date this has worked great on all platforms except for Solaris 10 on Intel. By "worked great" I mean that the clock tics end up being almost exactly what we expect for a given configured Hz update rate. So... e.g. if we set up a timer for 50 Hz, then we actually get 50 Hz +/- some minor variation much less than 1 second.
    On Solaris 10/Intel we set up a 50 Hz itimer in a plain-vanilla C app and we get ~50 Hz, but if we call the same C code from Java via the JNI we almost always end up with ~38Hz.
    The amount of Java and native code involved is almost trivial, and the hardware is a smoking fast contemporary PC. We ran over the itimer facility on an old Sparc 5 box and it worked fine.
    I've tried tweeking sundry esoteric -X and -XX JVM invocation options with no effect.
    J2SDK 1.4.2-07 in all cases.
    Thoughts?

    I'd think you should be posting in the forum for the Solaris 10 os, not a Java forum. Maybe someone in the Java Native Methods forum would have the necessary Solaris 10 expertise, also.
    If you do post elsewhere, either close this out with a final post or put a reference(s) to any other posts and say where you want replies posted, so replies aren't needlessly duplicated.

  • Unable to find class for bean

    Hello,
    At times, I keep getting this error of unable to find class for bean even though, the definition I used for the Bean in the jsp page is as follows:
    <jsp:useBean id="deptbean" class="avt.DepartmentHandler"
    scope="session"/>
    The Error I get is "Unable to find class for bean deptbean: defined by tag with class: avt.DepartmentHandler".
    I had saved the Java class file DepartmentHandler before attempting on the jsp page which used this.
    I have no clue as to why this is happening. Please do help.
    Thanks in Advance.

    Hello,
    I think I figured out why it is happening so, it was because I hadnt compiled the java class files and java bean files. Once I compiled the java files, I was able to get rid of the error.
    Thanks.

  • Can't find class when executing javabean test

    Hi,
    I've installed Sunone 6.0
    JSP is installed
    JDK is installed
    I've written and compiled a simple javabeans program
    and it generates class correctly.
    When I try to execute I get "Can't find class" error.
    Where does the class need to reside after compiling?
    Is my PATH hosed?
    Thanks for any pointer
    Willie

    hi
    did you get a chance to read this doc:
    http://docs.sun.com/source/817-6251/pwajsp.html

  • What is the best practise to provide a text file for a Java class in a OSGi bundle in CQ?

    This is probably a very basic question so please bear with me.
    What is the best way to provide a .txt file to be read by a Java class in a OSGi bundle in CQ 5.5?
    I have been able to read a file called "test.txt" that I put in a structure like this /src/resources/<any-sub-folder>/test.txt  from my java class  at /src/main/java/com/test/mytest/Test.java using the bundle's getResource and getEntry calls but I was not able to use the context.getDataFile. How is this getDataFile method call to be used?
    And what if I want to read the file located in another bundle, is it possible? or can I add the file to some repository and then access it - but I am not clear how to do this.
    And I would also like to know what is the best practise if I need to provide a large  data set in a flat file to be read by a Java class in CQ5.
    Please provide detailed steps or point me to a how to guide or other helpful resources as I am a novice.
    Thank you in advance for your time and help.
    VS

    As you can read in the OSGi Core specification (section 4.5.2), the getDataFile() method is to read/write a file in the bundle's private persistent area. It cannot be used to read files contained in the bundle. The issue Sham mentions refers to a version of Felix which is not used in CQ.
    The methods you mentioned (getResource and getEntry) are appropriate for reading files contained in a bundle.
    Reading a file from the repository is done using the JCR API. You can see a blueprint for how to do this by looking at the readFile method in http://svn.apache.org/repos/asf/jackrabbit/tags/2.4.0/jackrabbit-jcr-commons/src/main/java /org/apache/jackrabbit/commons/JcrUtils.java. Unfortunately, this method is not currently usable as it was declared incorrectly (should be a static method, but is an instance method).
    Regards,
    Justin

  • Java Inner classes within the Threading paradigm

    Hi all.
    Im familiar with static nested classes, method local classes, inner classes and anonymous classes.
    But what I am a little perplexed by, is when exactly to use inner classes or static nested classes? (forgetting anonymous classes and method local classes).
    I read this article (http://www.javaworld.com/javaworld/javaqa/2000-03/02-qa-innerclass.html) and the first point makes for a good argument, but why nest the class? Why not define it as an external class?
    Also you typically find nested classes within the Threading paradigm, but why?
    I typically would create a top level class (non nested) that would implement the Runnable interface, override run() and then
    use this class when constructing a new Thread.
    Any clarification would be greatly received.
    Thanks and Happy Friday.

    Boeing-737 wrote:
    I read this article (http://www.javaworld.com/javaworld/javaqa/2000-03/02-qa-innerclass.html) and the first point makes for a good argument, but why nest the class? Why not define it as an external class?
    I was going to provide some reasons, but when I read the article I found they were already there. Following the DRY principle I'm going to let the article speak for itself.
    Also you typically find nested classes within the Threading paradigm, but why?No, I don't. If that's where you typically find them then you haven't had a varied experience.
    I typically would create a top level class (non nested) that would implement the Runnable interface, override run() and then
    use this class when constructing a new Thread.So carry on doing that, if it works for you.

  • How to import .jar files in order to use the classes within this file

    hello guys,
    I'm just wondering how can i import .jar files in order to uses the classes within this file.
    let's take an example:
    i have a folder in which I have many .jar files which contain classes to be called. the full path of this folder is set in the Classpath inside the enviroment variables.
    so does anyone have any idea how can i import these .jar files so i can use the classes?
    thank you.

    Hi,
    My problem is that: I created a Serializable class in a project. And I added this project (first project) to another project (second project). First project is appearing in the second project' s Libraries folder. No problem. I want to create a jar file from second project. i.e. I want to Build second project (I use NetBeans IDE). I am using Build Main Project tab under Run. It is falling out. I am finding it second project' s jar file under its folder. I am clicking on it. But it is NOT WORKING. Do you know WHY. Could you help me please?
    Thanks,

  • Installation problem: I'm not finding ...\eclipse\configuration\org.eclipse.osgi\bundles\15\1\.cp\lib

    <p>I&#39;m following the PDF on &#39;Creating a Thick Client Application&#39; and I do not find a 15 folder in the ...\eclipse\configuration\org.eclipse.osgi\bundles\ folder.  What piece did I not install?  </p><p> </p><p>Thanks in advance. </p>

    You can find the JAR in question, ReportViewer.jar, in ..\eclipse\plugins\com.businessobjects.sdks.jrc.11.8.0_11.8.1.v671\lib as well.  Note that "11.8.1.v671" above denotes the version number, which increases with every update; you should always use the latest version.

  • No photos access via the Finder!

    This is in reference to using iPhoto on the iMac G5 and an iPhoto Library of about 17K images.
    Where are my photos hiding? Why can't I find them in the Finder?
    I can't find them using Adobe Bridge, either, to edit them in Photoshop and use them in newsletters laid out in InDesign. I also like to use Photoshop's web gallery features, but that is a little difficult when I can't locate my photos. The only way I can get my camera downloads to show up is by launching iPhoto; which, in no way integrates with my established workflow. I need to be able to get to my photos via the Finder.
    Some pictures that were there before the upgrade now appear as blank, rounded corner squares with a dotted outline. Where might these images have disappeared to?
    This is a disaster. How do I undo this incredible upgrade so I can get my photos back? *I don't appreciate having my options eliminated for me.*

    Kathryn
    Using Bridge to navigate an iPhoto Library increases the risk if corruption of the database exponentially.
    You can set Photoshop as an external editor in iPhoto. (Preferences -> General -> Edit Photo: Choose from the Drop Down Menu.) This way, when you double click a pic to edit in iPhoto it will open automatically in Photoshop, and when you save it it's sent back to iPhoto automatically.
    There are three ways (at least) to get files from the iPhoto Window.
    1. Drag and Drop: Drag a photo from the iPhoto Window to the desktop, there iPhoto will make a full-sized copy of the pic.
    2. File -> Export: Select the files in the iPhoto Window and go File -> Export. The dialogue will give you various options, including altering the format, naming the files and changing the size. Again, producing a copy.
    3. Show File: Right- (or Control-) Click on a pic and in the resulting dialogue choose 'Show File'. A Finder window will pop open with the file already selected.
    To upload to MySpace or any site that does not have an iPhoto Export Plug-in the recommended way is to Select the Pic in the iPhoto Window and go File -> Export and export the pic to the desktop, then upload from there. After the upload you can trash the pic on the desktop. It's only a copy and your original is safe in iPhoto.
    This is also true for emailing with Web-based services. If you're using Gmail you can use THIS
    If you use Apple's Mail, Entourage, AOL or Eudora you can email from within iPhoto.
    The change was made to the format of the iPhoto library because many users were inadvertently corrupting their library by browsing through it with other software or making changes in it themselves. If you're willing to risk database corruption, you can restore the older functionality simply by right clicking on the iPhoto Library and choosing 'Show Package Contents'. Then simply make an alias to the folders you require and put that alias on the desktop or where ever you want it. Be aware though, that this is a hack and not supported by Apple.
    Regards
    TD

  • I use light room on both my desktop and laptop, syncing catalog via google drive. I have been working on the desktop all week, editing a collection in lightroom. this morning i opened the program however to find only an old version of the catalog. All wor

    Hi all
    So I have lightroom on both my laptop and desktop and sync catalog through google drive.
    I have been working on the desktop all week on edits of high res scan in lightroom.
    Today i opened the program to find everything i have done for a week isn't there.
    Help.
    I feel it has synced to the last time i opened on my laptop and lost what ive on on the desktop.
    any help much appreciated.
    p

    I have no idea what happened, why you are seeing what you are seeing.
    My only guess at finding the missing work is to look under File->Open Recent on both computers.
    I do know that if you aren't making regular backups of your catalog file, and relying on synchronizing catalogs from one computer to another via the cloud, you are living very dangerously, and now you are possibly going to pay the consequences of not making regular backups.

  • In 6/2009 I bought iWork Family pack and have used it on two computers. Now I want to download iWork to my iMac but there is no way via the App store. How do I install the iWork bundle I paid for.

    In 6/2009 I bought iWork Family pack and have used it on two computers. Now I want to download iWork to my iMac but there is no way via the App store. How do I install the iWork bundle I paid for.i

    As of a minute ago you can still download the trial at this link. Note: clicking the link will automatically start the download.

Maybe you are looking for

  • SSO password push to another database

    We are about to enforce password expiration times at our company, which as of now we do not use. Currently, when a user chooses to change their password, we have modified the link to point ot a procedure which first updates the SSO password using cal

  • How to give the header condition type in the Sales Order for freight?

    Hi,      We are creating Sales Order(SO) using FM 'CRMXIF_ORDER_SAVE'.And we are unable to track the FREIGHT condition type in the above FM to pass value.      We want to check this value in CRMD_ORDER tcode.     Pls let us know how to make it possib

  • How to import B & W from Photoshop CS2

    Hi, I'm new to this forum, so be gentle! <g> I'm trying to make a slideshow, mixing color and black-and-white images. All of these images are scanned, from prints or slides. The b&w images are then converted from 16-bit RGB to 8-bit grayscale, then e

  • Adobe Photoshop Elements 10 searching for the update

    I have new versions Adobe Photoshop Elements 10 .  System: Windows 7 64  bit.  How I am trying to check updates: bookmark of help/updating I receive the announcement: "the server doesn't correspond to the update.  A temporal unavailability of the ser

  • Mini or iMac

    I would like to buy a new Mac but not sure if I should go with the Mac mini or iMac. I will use it to edit home videos and surf the web. I was going to either get a 1.66GHz Mac mini with 1GB ram and hook it up to my HDTV or the 17" iMac with 1GB ram.