Kodo enhancer throws ConcurrentModificationException

Attached is the stacktrace i get during enhancement, inside ant build
process.
Kodo suddenly fails on classes that were enhanced correctly before, so I
guess its some internal bug.
Does anyone know why it happens?
raczer.
I use:
- kodo 2.4.0
- ant 1.5.1
begin 666 stacktrace.txt
M6RXN+ET-"B @(" @6VID;V-=(&IA=F$N=71I;"Y#;VYC=7)R96YT36]D:69I
M8V%T:6]N17AC97!T:6]N#0H@(" @(%MJ9&]C72 @(" @870@:F%V82YU=&EL
M+E1R965-87 D16YT<GE)=&5R871O<BYN97AT16YT<GDH5')E94UA<"YJ879A
M.C$P,C(I#0H@(" @(%MJ9&]C72 @(" @870@:F%V82YU=&EL+E1R965-87 D
M2V5Y271E<F%T;W(N;F5X="A4<F5E36%P+FIA=F$Z,3 T-RD-"B @(" @6VID
M;V-=(" @("!A="!C;VTN<V]L87)M971R:6,N:V]D;RYM971A+D-L87-S365T
M841A=&$N9FEN:7-H*$-L87-S365T841A=&$N:F%V83HS-#4I#0H@(" @(%MJ
M9&]C72 @(" @870@8V]M+G-O;&%R;65T<FEC+FMO9&\N;65T82Y#;&%S<TUE
M=&%$871A+FYE=TEN<W1A;F-E*$-L87-S365T841A=&$N:F%V83HR-C@I#0H@
M(" @(%MJ9&]C72 @(" @870@8V]M+G-O;&%R;65T<FEC+FMO9&\N;65T82Y#
M;&%S<TUE=&%$871A+F=E=$EN<W1A;F-E*$-L87-S365T841A=&$N:F%V83HQ
M.3(I#0H@(" @(%MJ9&]C72 @(" @870@8V]M+G-O;&%R;65T<FEC+FMO9&\N
M;65T82Y#;&%S<TUE=&%$871A+G9A;&ED871E4W5P97)C;&%S<RA#;&%S<TUE
M=&%$871A+FIA=F$Z-#0V*0T*(" @("!;:F1O8UT@(" @(&%T(&-O;2YS;VQA
M<FUE=')I8RYK;V1O+FUE=&$N0VQA<W--971A1&%T82YF:6YI<V@H0VQA<W--
M971A1&%T82YJ879A.C,S,RD-"B @(" @6VID;V-=(" @("!A="!C;VTN<V]L
M87)M971R:6,N:V]D;RYM971A+D-L87-S365T841A=&$N;F5W26YS=&%N8V4H
M0VQA<W--971A1&%T82YJ879A.C(V."D-"B @(" @6VID;V-=(" @("!A="!C
M;VTN<V]L87)M971R:6,N:V]D;RYM971A+D-L87-S365T841A=&$N9V5T26YS
M=&%N8V4H0VQA<W--971A1&%T82YJ879A.C$Y,BD-"B @(" @6VID;V-=(" @
M("!A="!C;VTN<V]L87)M971R:6,N:V]D;RYE;FAA;F-E+DI$3T5N:&%N8V5R
M+CQI;FET/BA*1$]%;FAA;F-E<BYJ879A.C(R-"D-"B @(" @6VID;V-=(" @
M("!A="!C;VTN<V]L87)M971R:6,N:V]D;RYE;FAA;F-E+DI$3T5N:&%N8V5R
M+F5N:&%N8V4H2D1/16YH86YC97(N:F%V83HQ.#<I#0H@(" @(%MJ9&]C72 @
M(" @870@8V]M+G-O;&%R;65T<FEC+FMO9&\N96YH86YC92Y*1$]%;FAA;F-E
M<BYE;FAA;F-E*$I$3T5N:&%N8V5R+FIA=F$Z,3,U*0T*(" @("!;:F1O8UT@
M(" @(&%T(&-O;2YS;VQA<FUE=')I8RYM;V1U;&5S+FEN=&5G<F%T:6]N+F%N
M="Y*1$]%;FAA;F-E<E1A<VLN97AE8W5T94]N*$I$3T5N:&%N8V5R5&%S:RYJ
M879A.C0S*0T*(" @("!;:F1O8UT@(" @(&%T(&-O;2YS;VQA<FUE=')I8RYM
M;V1U;&5S+FEN=&5G<F%T:6]N+F%N="Y487-K0F%S92YE>&5C=71E*%1A<VM"
M87-E+FIA=F$Z,3$X*0T*(" @("!;:F1O8UT@(" @(&%T(&]R9RYA<&%C:&4N
M=&]O;',N86YT+E5N:VYO=VY%;&5M96YT+F5X96-U=&4H56YK;F]W;D5L96UE
M;G0N:F%V83HQ-C8I#0H@(" @(%MJ9&]C72 @(" @870@;W)G+F%P86-H92YT
M;V]L<RYA;G0N5&%S:RYP97)F;W)M*%1A<VLN:F%V83HS,3DI#0H@(" @(%MJ
M9&]C72 @(" @870@;W)G+F%P86-H92YT;V]L<RYA;G0N5&%R9V5T+F5X96-U
M=&4H5&%R9V5T+FIA=F$Z,S Y*0T*(" @("!;:F1O8UT@(" @(&%T(&]R9RYA
M<&%C:&4N=&]O;',N86YT+E1A<F=E="YP97)F;W)M5&%S:W,H5&%R9V5T+FIA
M=F$Z,S,V*0T*(" @("!;:F1O8UT@(" @(&%T(&]R9RYA<&%C:&4N=&]O;',N
M86YT+E!R;VIE8W0N97AE8W5T951A<F=E="A0<F]J96-T+FIA=F$Z,3,P-BD-
M"B @(" @6VID;V-=(" @("!A="!O<F<N87!A8VAE+G1O;VQS+F%N="Y0<F]J
M96-T+F5X96-U=&5487)G971S*%!R;VIE8W0N:F%V83HQ,C4P*0T*(" @("!;
M:F1O8UT@(" @(&%T(&]R9RYA<&%C:&4N=&]O;',N86YT+DUA:6XN<G5N0G5I
M;&0H36%I;BYJ879A.C8Q,"D-"B @(" @6VID;V-=(" @("!A="!O<F<N87!A
M8VAE+G1O;VQS+F%N="Y-86EN+G-T87)T*$UA:6XN:F%V83HQ.38I#0H@(" @
M(%MJ9&]C72 @(" @870@;W)G+F%P86-H92YT;V]L<RYA;G0N36%I;BYM86EN
H*$UA:6XN:F%V83HR,S4I#0H-"D)524Q$($9!24Q%1 T*6RXN+ET-"@``
`
end

This sounds like a manifestation of
http://bugzilla.solarmetric.com/show_bug.cgi?id=472 to me. Do you have
circular dependencies between classes defined in multiple metadata
files? For example, do you have a class Foo whose metadata is defined in
Foo.jdo, and a class Bar whose metadata is in Bar.jdo, and do Foo and
Bar have references to each other?
If this is the bug, the only current workaround is to put those classes
that have circular references into the same metadata file (a package.jdo
file or a system.jdo file).
-Patrick
Rafa__ Czerwi__ski wrote:
Attached is the stacktrace i get during enhancement, inside ant build
process.
Kodo suddenly fails on classes that were enhanced correctly before, so I
guess its some internal bug.
Does anyone know why it happens?
raczer.
I use:
- kodo 2.4.0
- ant 1.5.1
[jdoc] java.util.ConcurrentModificationException
[jdoc] at
java.util.TreeMap$EntryIterator.nextEntry(TreeMap.java:1022)
[jdoc] at java.util.TreeMap$KeyIterator.next(TreeMap.java:1047)
[jdoc] at
com.solarmetric.kodo.meta.ClassMetaData.finish(ClassMetaData.java:345)
[jdoc] at
com.solarmetric.kodo.meta.ClassMetaData.newInstance(ClassMetaData.java:268)
[jdoc] at
com.solarmetric.kodo.meta.ClassMetaData.getInstance(ClassMetaData.java:192)
[jdoc] at
com.solarmetric.kodo.meta.ClassMetaData.validateSuperclass(ClassMetaData.java:446)
[jdoc] at
com.solarmetric.kodo.meta.ClassMetaData.finish(ClassMetaData.java:333)
[jdoc] at
com.solarmetric.kodo.meta.ClassMetaData.newInstance(ClassMetaData.java:268)
[jdoc] at
com.solarmetric.kodo.meta.ClassMetaData.getInstance(ClassMetaData.java:192)
[jdoc] at
com.solarmetric.kodo.enhance.JDOEnhancer.(JDOEnhancer.java:224)
[jdoc] at
com.solarmetric.kodo.enhance.JDOEnhancer.enhance(JDOEnhancer.java:187)
[jdoc] at
com.solarmetric.kodo.enhance.JDOEnhancer.enhance(JDOEnhancer.java:135)
[jdoc] at
com.solarmetric.modules.integration.ant.JDOEnhancerTask.executeOn(JDOEnhancerTask.java:43)
[jdoc] at
com.solarmetric.modules.integration.ant.TaskBase.execute(TaskBase.java:118)
[jdoc] at
org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:166)
[jdoc] at org.apache.tools.ant.Task.perform(Task.java:319)
[jdoc] at org.apache.tools.ant.Target.execute(Target.java:309)
[jdoc] at
org.apache.tools.ant.Target.performTasks(Target.java:336)
[jdoc] at
org.apache.tools.ant.Project.executeTarget(Project.java:1306)
[jdoc] at
org.apache.tools.ant.Project.executeTargets(Project.java:1250)
[jdoc] at org.apache.tools.ant.Main.runBuild(Main.java:610)
[jdoc] at org.apache.tools.ant.Main.start(Main.java:196)
[jdoc] at org.apache.tools.ant.Main.main(Main.java:235)
BUILD FAILED
Patrick Linskey [email protected]
SolarMetric Inc. http://www.solarmetric.com

Similar Messages

  • Workshop 3.2 and kodo enhancer

    I am trying to use Workshop Studio 3.2 with Kodo 4.0.1 but I can make to run even JPA tutorial. It is said that WS integrates all build steps including Kodo enhancer. But I am receiving the error:
    <b><i>kodo.persistence.ArgumentException: The type "class com.bea.beans.Customer" has not been enhanced.</i></b>
    I tried even manually to run kodoc.bat on already build classes, it enhance it, but in runtime the same error happens.
    Where I can see if WS is configured to run enhancer?

    Yes, in Workshop Studio 3.2 the Kodo enhancer is integrated as part of the build process.
    Please verify the following:
    Project > Properties - Builder - make sure "Java Builder" & "Workshop AppXRay Builder" is checked
    Window > Preferences > General - Workspace - Check if "Build automatically" option is ONIf the above settings are in place, then try Project > Clean on "Workshop-JPA-tutorial" or "Rebuild AppXRay Database". Once the build process is completed try to execute a simple query in EJB QL editor.

  • Code that consistently throw ConcurrentModificationExceptions?

    I would like to know some code that is definitely thread- unsafe, AND consistently throws ConcurrentModificationExceptions .
    Without bad code that I know is incorrect and gives me feedback (via thrown Exceptions) to fix, I can't get a feel for what needs to be synchronized or if I am synchronizing correctly.
    The scenario I am thinking of would use two, or more, threads and a shared Collection .
    btw: an example of what I mean is java.io.Writer.
    I synchronized access; how would it make sense for 2 threads to share the same writer I assumed. It worked fined. Then, as a test, I removed the synchronization, and it still worked fine. It turns out a Writer is actually synchronized by default. So, I made a big mistake by synchronizing something that was already synchronized.
    Anyway, this is an example of what I mean. I'd hope to know some technique to increase the probablility of getting synchronization errors (especially with shared Collections).
    Thanks.
    Edited by: rdkh on May 31, 2009 7:53 PM

    Hi rdkh,
    for(Integer intObj : IntSet) {
      intSet.remove(intObj);
    }is simply wrong.
    Excerpt from the description of the [*ConcurrentModificationException*|http://java.sun.com/javase/6/docs/api/java/util/ConcurrentModificationException.html] :
    "Note that this exception does not always indicate that an object has been concurrently modified by a different thread. If a single thread issues a sequence of method invocations that violates the contract of an object, the object may throw this exception. For example, if a thread modifies a collection directly while it is iterating over the collection with a fail-fast iterator, the iterator will throw this exception. "
    Your coding may be simplified this way :
    IntSet.clear();

  • Throwing ConcurrentModificationException

    Hi,
    I am implementing an Iterator and wish to throw the ConcurrentMoficationException when the underlying list is modified. I do this by keeping track of modCount variable in the iterator implemention and throw the exception if the modcount has changed after the iterator is created. It works fine on NT and gives runtime
    Exception in thread "main" java.lang.IllegalAccessError: try to access
    field java.util.AbstractList.modCount from class
    oracle.tip.repos.core.driver.AssociationList$ItrHere AssociationList is my implementation of ArrayList.
    In the iterator
    private class Itr implements Iterator {
    int firstModCount = modCount;
    public Object next() throws ConcurrentModificationException {
    // after the iterator is created list has been modified, throw
    // concurrent modified exception
    int newModCount = modCount;
    if (firstModCount != newModCount)
    throw new ConcurrentModificationException();
    This code executes in NT 4.0 without any problem only on solaris I get the above runtime exception.
    Could this be a bug ?
    Any pointers on troubleshooting this problem ?
    thanks
    Poornima

    The comments so far make sense in that it is a scoping issue. It is indeed strange that it is platform-specific. You could perhaps provide a workaround by creating a private accessor method for the iterator implementation to use. Something like
    private int getModCount() {
        return modCount;
    }should work OK. Then call getModCount in your iterator rather than accessing modCount directly.
    I would make your new next() code look like this:
    public Object next() throws ConcurrentModificationException {
        if (firstModCount != getModCount()) {
            throw new ConcurrentModificationException();
        /* the rest of your implementation */
    }BTW, when you post your code, you might want to use code and /code tags (with square braces around them) in order to preserve your formatting.

  • ArrayList throwing ConcurrentModificationException

    Hey everybody,
    Im just goofing around with a little board game display class(my aim is to end up goofing around with A*, but thats still far in the future). Another thing I wanted to implement were little graphics FX. I use an ArrayList to display multiple FX:
    class FX
        abstract void displayTo(Graphics g);
        abstract boolean finished() // has the effect finished its job?
    ArrayList <FX> aL = new ArrayList<FX>();
    for (FX f: aL)
        f.displayTo(getGraphics());
        if(f.finished()) FX.remove(f);
    }Exact message:
    Exception in thread "Thread-2" java.util.ConcurrentModificationException
    at java.util.AbstractList$Itr.checkForComodification(AbstractList.java:372)
    at java.util.AbstractList$Itr.next(AbstractList.java:343)
    at gcds.TileMap.pumpFX(TileMap.java:44)
    at gcds.TileMap.renderFrame(TileMap.java:39)
    at pup.GCD.step(GCD.java:27)
    at pup.GCD.frame(GCD.java:29)
    at pup.GameCMP.run(GameCMP.java:25)
    at java.lang.Thread.run(Thread.java:619)
    I use a Thread(Runnable ) that paints a BufferedImage on a JPanel. The BufferedImage is being created by a method that calls the above piece of code.
    Thanks for reading through this mess :)
    Edit: I came up with a workaround - filling an ArrayList with Objects that need to be removed after the foreach loop - but I think thats not too elegant.
    Edited by: anotherAikman on Jan 19, 2010 3:44 AM

    anotherAikman wrote:
    Thank you tschodt! Ill give it a try.
    Edit:
    Iterator<FX> it = FX.iterator();
    while(it.hasNext())
    FX m = it.next();
    m.displayTo(getGraphics());
    if(m.finished()) it.remove();
    }seems to work good. Ill try some more things to ensure I understood the iterator logic.No "seems to" about it. That's exactly the fix!

  • Enhance Errors in Kodo 3

    Kodo version 3.0.0 / using IBM Websphere/Eclipse
    I am testing a migration to Kodo 3, and I am having problems with
    enhancing when building the project using the plug-in. The error returned
    is shown below...
    Problems occurred building the selected resources.
    packagedesc/ta/event/Bean.jdoGetManagedFieldCount()I
    Also, I have attempted to enhance the project using the ANT task, but that
    also fails with the following error trace.
    [jdoc] java.lang.NoSuchMethodError:
    packagedesc/ta/shared/BOSet.<init>(Lpackagedesc/ta/shared/BusinessObject;)V
    [jdoc]      at java.lang.Throwable.<init>(Throwable.java)
    [jdoc]      at java.lang.Throwable.<init>(Throwable.java)
    [jdoc]      at
    java.lang.NoSuchMethodError.<init>(NoSuchMethodError.java:56)
    [jdoc]      at packagedesc.ta.event.Process.<init>(Process.java:42)
    [jdoc]      at packagedesc.ta.event.Process.<clinit>(Process.java)
    [jdoc]      at java.lang.Class.initializeImpl(Native Method)
    [jdoc]      at java.lang.Class.initialize(Class.java)
    [jdoc]      at java.lang.Class.forNameImpl(Native Method)
    [jdoc]      at java.lang.Class.forName(Class.java)
    [jdoc]      at
    packagedesc.ta.event.ScheduledEvent.class$(ScheduledEvent.java)
    [jdoc]      at
    packagedesc.ta.event.ScheduledEvent.<clinit>(ScheduledEvent.java)
    [jdoc]      at java.lang.Class.initializeImpl(Native Method)
    [jdoc]      at java.lang.Class.initialize(Class.java)
    [jdoc]      at java.lang.Class.forNameImpl(Native Method)
    [jdoc]      at java.lang.Class.forName(Class.java)
    [jdoc]      at
    serp.util.MultiClassLoader.findClass(MultiClassLoader.java:224)
    [jdoc]      at java.lang.ClassLoader.loadClass(ClassLoader.java)
    [jdoc]      at java.lang.ClassLoader.loadClass(ClassLoader.java)
    [jdoc]      at java.lang.Class.forNameImpl(Native Method)
    [jdoc]      at java.lang.Class.forName(Class.java)
    [jdoc]      at
    com.solarmetric.meta.CFMetaDataParser.classForName(CFMetaDataParser.java:214)
    [jdoc]      at
    com.solarmetric.meta.CFMetaDataParser.classForName(CFMetaDataParser.java:188)
    [jdoc]      at
    kodo.meta.JDOMetaDataParser.startCollection(JDOMetaDataParser.java:321)
    [jdoc]      at
    kodo.meta.JDOMetaDataParser.startClassElement(JDOMetaDataParser.java:194)
    [jdoc]      at
    com.solarmetric.meta.CFMetaDataParser.startElement(CFMetaDataParser.java:69)
    [jdoc]      at
    com.solarmetric.meta.XMLMetaDataParser.startElement(XMLMetaDataParser.java:354)
    [jdoc]      at
    org.apache.xerces.parsers.AbstractSAXParser.startElement(AbstractSAXParser.java)
    [jdoc]      at
    org.apache.xerces.parsers.AbstractXMLDocumentParser.emptyElement(AbstractXMLDocumentParser.java)
    [jdoc]      at
    org.apache.xerces.impl.XMLNamespaceBinder.emptyElement(XMLNamespaceBinder.java)
    [jdoc]      at
    org.apache.xerces.impl.dtd.XMLDTDValidator.emptyElement(XMLDTDValidator.java)
    [jdoc]      at
    org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanStartElement(XMLDocumentFragmentScannerImpl.java)
    [jdoc]      at
    org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(XMLDocumentFragmentScannerImpl.java)
    [jdoc]      at
    org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java)
    [jdoc]      at
    org.apache.xerces.parsers.StandardParserConfiguration.parse(StandardParserConfiguration.java)
    [jdoc]      at
    org.apache.xerces.parsers.StandardParserConfiguration.parse(StandardParserConfiguration.java)
    [jdoc]      at
    org.apache.xerces.parsers.XMLParser.parse(XMLParser.java)
    [jdoc]      at
    org.apache.xerces.parsers.AbstractSAXParser.parse(AbstractSAXParser.java)
    [jdoc]      at javax.xml.parsers.SAXParser.parse(SAXParser.java:394)
    [jdoc]      at
    com.solarmetric.meta.XMLMetaDataParser.parse(XMLMetaDataParser.java:309)
    [jdoc]      at
    com.solarmetric.meta.XMLMetaDataParser.parse(XMLMetaDataParser.java:254)
    [jdoc]      at
    com.solarmetric.meta.XMLMetaDataParser.parse(XMLMetaDataParser.java:234)
    [jdoc]      at
    kodo.meta.JDOMetaDataRepositoryImpl.getMetaDataInternal(JDOMetaDataRepositoryImpl.java:175)
    [jdoc]      at
    kodo.meta.JDOMetaDataRepositoryImpl.getMetaData(JDOMetaDataRepositoryImpl.java:129)
    [jdoc]      at kodo.enhance.JDOEnhancer.<init>(JDOEnhancer.java:110)
    [jdoc]      at kodo.enhance.JDOEnhancer.run(JDOEnhancer.java:2162)
    [jdoc]      at
    kodo.ant.JDOEnhancerTask.executeOn(JDOEnhancerTask.java:65)
    [jdoc]      at com.solarmetric.ant.TaskBase.execute(TaskBase.java:105)
    [jdoc]      at
    org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:193)
    [jdoc]      at org.apache.tools.ant.Task.perform(Task.java:341)
    [jdoc]      at org.apache.tools.ant.Target.execute(Target.java:309)
    [jdoc]      at
    org.apache.tools.ant.Target.performTasks(Target.java:336)
    [jdoc]      at
    org.apache.tools.ant.Project.executeTarget(Project.java:1339)
    [jdoc]      at org.apache.tools.ant.taskdefs.Ant.execute(Ant.java:397)
    [jdoc]      at
    org.apache.tools.ant.taskdefs.CallTarget.execute(CallTarget.java:143)
    [jdoc]      at org.apache.tools.ant.Task.perform(Task.java:341)
    [jdoc]      at org.apache.tools.ant.Target.execute(Target.java:309)
    [jdoc]      at
    org.apache.tools.ant.Target.performTasks(Target.java:336)
    [jdoc]      at
    org.apache.tools.ant.Project.executeTarget(Project.java:1339)
    [jdoc]      at
    org.eclipse.ant.internal.core.ant.InternalAntRunner.run(InternalAntRunner.java:571)
    [jdoc]      at
    org.eclipse.ant.internal.core.ant.InternalAntRunner.run(InternalAntRunner.java:367)
    [jdoc]      at
    java.lang.reflect.AccessibleObject.invokeV(AccessibleObject.java:199)
    [jdoc]      at java.lang.reflect.Method.invoke(Method.java)
    [jdoc]      at org.eclipse.ant.core.AntRunner.run(AntRunner.java:335)
    [jdoc]      at
    org.eclipse.ui.externaltools.internal.ant.launchConfigurations.AntLaunchDelegate$1.run(AntLaunchDelegate.java:172)
    [jdoc]      at java.lang.Thread.run(Thread.java:801)
    [jdoc] BUILD FAILED: file:D:/Work/Shared/build.xml:45:
    java.lang.NoSuchMethodError:
    packagedesc/ta/shared/BOSet.<init>(Lpackagedesc/ta/shared/BusinessObject;)V
    the call to the method that fails is shown below:
    private Set dependentEvents = new HashSet();
    private transient BOSet dependentEventsContext = new BOSet(this);
    The method that is being reported in the NoSuchMethodError is shown below.
    public BOSet(BusinessObject obj) {
         setParent(obj);
    The Business Object being passed into this method is the top level
    abstract business object, and all persistable business objects extend this
    class.
    I don't know that both these errors are the same problem, or whether they
    are both different symptoms of another problem.
    In addition when I was migrating the metadata, I had problems with the
    Apache libraries, which caused a failure when I ran the "migrate-meta"
    task. I ended up replacing the two files (xalan.jar and xercesImpl.jar)
    that were packaged with Kodo3 with ones from our previous Kodo install and
    the migrate worked fine. Is there a problem with these files?

    Marc
    I gave the error for the jar file in my second post.....
    "BUILD FAILED: java.lang.VerifyError: field not type compatible (class:
    org/apache/xerces/parsers/IntegratedParserConfiguration method:
    configurePipeline()V) at pc: 4"
    I thought that it was just the xalan.jar that was upsetting the process
    but it does in fact seem to be both that, and the "xercesImpl.jar".
    On the enhancer I have got it to work by re-building without the enhancer
    addded to the build. Then enhancing each project individually using the
    ant task.
    I am still unable however to add the enhancer to the build using the
    plugin and then re-build all. this will return me the same
    jdoGetManagedFieldCount error, even if I have re-built without the
    enhancer previously.
    This all seems a little awkward, so if there is something I can do to get
    the build to work with the plugin, and using the enhancer, that would be
    ideal.
    Marc Prud'hommeaux wrote:
    BD-
    The build problems sound to me like some of your persistent classes
    have been recompiled, but others have not. Have you tried completely
    rebuilding all the classes in your project before doing any enhancement?
    In addition when I was migrating the metadata, I had problems with the
    Apache libraries, which caused a failure when I ran the "migrate-meta"
    task. I ended up replacing the two files (xalan.jar and xercesImpl.jar)
    that were packaged with Kodo3 with ones from our previous Kodo install and
    the migrate worked fine. Is there a problem with these files?
    We did upgrade the version of xercesImpl.jar we ship with 3.0, but I
    would be surprised if this would cause problems. Can you post the
    exception you get when you try to use the old jars?
    In article <[email protected]>, BD wrote:
    Kodo version 3.0.0 / using IBM Websphere/Eclipse
    I am testing a migration to Kodo 3, and I am having problems with
    enhancing when building the project using the plug-in. The error returned
    is shown below...
    Problems occurred building the selected resources.
    packagedesc/ta/event/Bean.jdoGetManagedFieldCount()I
    Also, I have attempted to enhance the project using the ANT task, but that
    also fails with the following error trace.
    [jdoc] java.lang.NoSuchMethodError:
    packagedesc/ta/shared/BOSet.<init>(Lpackagedesc/ta/shared/BusinessObject;)V
    [jdoc]      at java.lang.Throwable.<init>(Throwable.java)
    [jdoc]      at java.lang.Throwable.<init>(Throwable.java)
    [jdoc]      at
    java.lang.NoSuchMethodError.<init>(NoSuchMethodError.java:56)
    [jdoc]      at packagedesc.ta.event.Process.<init>(Process.java:42)
    [jdoc]      at packagedesc.ta.event.Process.<clinit>(Process.java)
    [jdoc]      at java.lang.Class.initializeImpl(Native Method)
    [jdoc]      at java.lang.Class.initialize(Class.java)
    [jdoc]      at java.lang.Class.forNameImpl(Native Method)
    [jdoc]      at java.lang.Class.forName(Class.java)
    [jdoc]      at
    packagedesc.ta.event.ScheduledEvent.class$(ScheduledEvent.java)
    [jdoc]      at
    packagedesc.ta.event.ScheduledEvent.<clinit>(ScheduledEvent.java)
    [jdoc]      at java.lang.Class.initializeImpl(Native Method)
    [jdoc]      at java.lang.Class.initialize(Class.java)
    [jdoc]      at java.lang.Class.forNameImpl(Native Method)
    [jdoc]      at java.lang.Class.forName(Class.java)
    [jdoc]      at
    serp.util.MultiClassLoader.findClass(MultiClassLoader.java:224)
    [jdoc]      at java.lang.ClassLoader.loadClass(ClassLoader.java)
    [jdoc]      at java.lang.ClassLoader.loadClass(ClassLoader.java)
    [jdoc]      at java.lang.Class.forNameImpl(Native Method)
    [jdoc]      at java.lang.Class.forName(Class.java)
    [jdoc]      at
    com.solarmetric.meta.CFMetaDataParser.classForName(CFMetaDataParser.java:214)
    [jdoc]      at
    com.solarmetric.meta.CFMetaDataParser.classForName(CFMetaDataParser.java:188)
    [jdoc]      at
    kodo.meta.JDOMetaDataParser.startCollection(JDOMetaDataParser.java:321)
    [jdoc]      at
    kodo.meta.JDOMetaDataParser.startClassElement(JDOMetaDataParser.java:194)
    [jdoc]      at
    com.solarmetric.meta.CFMetaDataParser.startElement(CFMetaDataParser.java:69)
    [jdoc]      at
    com.solarmetric.meta.XMLMetaDataParser.startElement(XMLMetaDataParser.java:354)
    [jdoc]      at
    org.apache.xerces.parsers.AbstractSAXParser.startElement(AbstractSAXParser.java)
    [jdoc]      at
    org.apache.xerces.parsers.AbstractXMLDocumentParser.emptyElement(AbstractXMLDocumentParser.java)
    [jdoc]      at
    org.apache.xerces.impl.XMLNamespaceBinder.emptyElement(XMLNamespaceBinder.java)
    [jdoc]      at
    org.apache.xerces.impl.dtd.XMLDTDValidator.emptyElement(XMLDTDValidator.java)
    [jdoc]      at
    org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanStartElement(XMLDocumentFragmentScannerImpl.java)
    [jdoc]      at
    org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(XMLDocumentFragmentScannerImpl.java)
    [jdoc]      at
    org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java)
    [jdoc]      at
    org.apache.xerces.parsers.StandardParserConfiguration.parse(StandardParserConfiguration.java)
    [jdoc]      at
    org.apache.xerces.parsers.StandardParserConfiguration.parse(StandardParserConfiguration.java)
    [jdoc]      at
    org.apache.xerces.parsers.XMLParser.parse(XMLParser.java)
    [jdoc]      at
    org.apache.xerces.parsers.AbstractSAXParser.parse(AbstractSAXParser.java)
    [jdoc]      at javax.xml.parsers.SAXParser.parse(SAXParser.java:394)
    [jdoc]      at
    com.solarmetric.meta.XMLMetaDataParser.parse(XMLMetaDataParser.java:309)
    [jdoc]      at
    com.solarmetric.meta.XMLMetaDataParser.parse(XMLMetaDataParser.java:254)
    [jdoc]      at
    com.solarmetric.meta.XMLMetaDataParser.parse(XMLMetaDataParser.java:234)
    [jdoc]      at
    kodo.meta.JDOMetaDataRepositoryImpl.getMetaDataInternal(JDOMetaDataRepositoryImpl.java:175)
    [jdoc]      at
    kodo.meta.JDOMetaDataRepositoryImpl.getMetaData(JDOMetaDataRepositoryImpl.java:129)
    [jdoc]      at kodo.enhance.JDOEnhancer.<init>(JDOEnhancer.java:110)
    [jdoc]      at kodo.enhance.JDOEnhancer.run(JDOEnhancer.java:2162)
    [jdoc]      at
    kodo.ant.JDOEnhancerTask.executeOn(JDOEnhancerTask.java:65)
    [jdoc]      at com.solarmetric.ant.TaskBase.execute(TaskBase.java:105)
    [jdoc]      at
    org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:193)
    [jdoc]      at org.apache.tools.ant.Task.perform(Task.java:341)
    [jdoc]      at org.apache.tools.ant.Target.execute(Target.java:309)
    [jdoc]      at
    org.apache.tools.ant.Target.performTasks(Target.java:336)
    [jdoc]      at
    org.apache.tools.ant.Project.executeTarget(Project.java:1339)
    [jdoc]      at org.apache.tools.ant.taskdefs.Ant.execute(Ant.java:397)
    [jdoc]      at
    org.apache.tools.ant.taskdefs.CallTarget.execute(CallTarget.java:143)
    [jdoc]      at org.apache.tools.ant.Task.perform(Task.java:341)
    [jdoc]      at org.apache.tools.ant.Target.execute(Target.java:309)
    [jdoc]      at
    org.apache.tools.ant.Target.performTasks(Target.java:336)
    [jdoc]      at
    org.apache.tools.ant.Project.executeTarget(Project.java:1339)
    [jdoc]      at
    org.eclipse.ant.internal.core.ant.InternalAntRunner.run(InternalAntRunner.java:571)
    [jdoc]      at
    org.eclipse.ant.internal.core.ant.InternalAntRunner.run(InternalAntRunner.java:367)
    [jdoc]      at
    java.lang.reflect.AccessibleObject.invokeV(AccessibleObject.java:199)
    [jdoc]      at java.lang.reflect.Method.invoke(Method.java)
    [jdoc]      at org.eclipse.ant.core.AntRunner.run(AntRunner.java:335)
    [jdoc]      at
    org.eclipse.ui.externaltools.internal.ant.launchConfigurations.AntLaunchDelegate$1.run(AntLaunchDelegate.java:172)
    [jdoc]      at java.lang.Thread.run(Thread.java:801)
    [jdoc] BUILD FAILED: file:D:/Work/Shared/build.xml:45:
    java.lang.NoSuchMethodError:
    packagedesc/ta/shared/BOSet.<init>(Lpackagedesc/ta/shared/BusinessObject;)V
    the call to the method that fails is shown below:
    private Set dependentEvents = new HashSet();
    private transient BOSet dependentEventsContext = new BOSet(this);
    The method that is being reported in the NoSuchMethodError is shown below.
    public BOSet(BusinessObject obj) {
         setParent(obj);
    The Business Object being passed into this method is the top level
    abstract business object, and all persistable business objects extend this
    class.
    I don't know that both these errors are the same problem, or whether they
    are both different symptoms of another problem.
    In addition when I was migrating the metadata, I had problems with the
    Apache libraries, which caused a failure when I ran the "migrate-meta"
    task. I ended up replacing the two files (xalan.jar and xercesImpl.jar)
    that were packaged with Kodo3 with ones from our previous Kodo install and
    the migrate worked fine. Is there a problem with these files?
    Marc Prud'hommeaux [email protected]
    SolarMetric Inc. http://www.solarmetric.com

  • Kodo 4.1 Enhancer

    Hi all,
    I'm trying to enhance persistent classes with kodo 4.1 using the
    enhancer class kodo.enhance.PCEnhancer as specified by Bea kodo 4.1
    documentation
    http://edocs.bea.com/kodo/docs41/full/html/ref_guide_pc_enhance.html
    I put in the classpath all kodo 4.1 libraries, but there isn't any class
    with this name kodo.enhance.PCEnhancer.
    Could somebody give me a hint?
    Thanks in advance.
    Daniela

    That is the enhancer class.
    Thank you a lot.
    Regards,
    Daniela
    Christiaan des Bouvrie wrote:
    It's probably org.apache.openjpa.enhance.PCEnhancer. Quite some classes have
    been moved to the OpenJPA.jar in the 4.1 version
    regards,
    Christiaan
    "Daniela Bodea" <[email protected]> wrote in message
    news:[email protected]..
    Hi all,
    I'm trying to enhance persistent classes with kodo 4.1 using the
    enhancer class kodo.enhance.PCEnhancer as specified by Bea kodo 4.1
    documentation
    http://edocs.bea.com/kodo/docs41/full/html/ref_guide_pc_enhance.html
    I put in the classpath all kodo 4.1 libraries, but there isn't any class
    with this name kodo.enhance.PCEnhancer.
    Could somebody give me a hint?
    Thanks in advance.
    Daniela

  • Exception running enhancement with Kodo 3.x metadata

    156 INFO [main] kodo.Tool - Enhancer running on type "class
    com.peacetech.dts.jdo.TemplateContentImpl".
    Exception in thread "main" java.lang.NoSuchMethodError:
    kodo.meta.AbstractMetaDataFactory.access$001(Lkodo/jdo/Deprecate
    dJDOMetaDataFactory;)Lkodo/meta/MetaDataRepository;
    at
    kodo.jdo.DeprecatedJDOMetaDataFactory$ExtensionTranslatingParser.<init>(DeprecatedJDOMetaDataFactory.java:238
    at
    kodo.jdo.DeprecatedJDOMetaDataFactory.newParser(DeprecatedJDOMetaDataFactory.java:113)
    at kodo.jdo.JDOMetaDataFactory.getParser(JDOMetaDataFactory.java:86)
    at kodo.jdo.JDOMetaDataFactory.load(JDOMetaDataFactory.java:117)
    at
    kodo.meta.MetaDataRepository.getMetaDataInternal(MetaDataRepository.java:432)
    at
    kodo.meta.MetaDataRepository.getMetaData(MetaDataRepository.java:274)
    at kodo.enhance.PCEnhancer.<init>(PCEnhancer.java:113)
    at kodo.enhance.PCEnhancer.run(PCEnhancer.java:3806)
    at kodo.enhance.PCEnhancer.run(PCEnhancer.java:3754)
    at kodo.enhance.PCEnhancer.main(PCEnhancer.java:3720)

    Hi Abe,
    Great to have you back on this newsgroups. If release of 4.1 is expected
    within next couple of months we would rather wait with migration
    Thank you
    Alex
    <Abe White> wrote in message news:[email protected]..
    I believe this is a known bug. If this is a blocking problem, please
    contact support and request a patch. Tell them it's CR 285141.

  • Can't enhance classes with Apache Commons Logging?

    For some reason enhancer blows on class with
    import org.apache.commons.logging.Log;
    import org.apache.commons.logging.LogFactory;
    private static final Log LOG = LogFactory.getLog(GaoParticipant.class);
    With following exception:
    java.lang.ExceptionInInitializerError
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:219)
    at serp.util.MultiClassLoader.findClass(MultiClassLoader.java:224)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:289)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:235)
    at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:302)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:219)
    at
    com.solarmetric.meta.CFMetaDataParser.classForName(CFMetaDataParser.java:213
    at
    com.solarmetric.meta.CFMetaDataParser.classForName(CFMetaDataParser.java:188
    at kodo.meta.JDOMetaDataParser.startCollection(JDOMetaDataParser.java:321)
    at
    kodo.meta.JDOMetaDataParser.startClassElement(JDOMetaDataParser.java:194)
    at
    com.solarmetric.meta.CFMetaDataParser.startElement(CFMetaDataParser.java:69)
    at
    com.solarmetric.meta.XMLMetaDataParser.startElement(XMLMetaDataParser.java:3
    54)
    at org.apache.xerces.parsers.AbstractSAXParser.startElement(Unknown Source)
    at org.apache.xerces.parsers.AbstractXMLDocumentParser.emptyElement(Unknown
    Source)
    at org.apache.xerces.impl.dtd.XMLDTDValidator.emptyElement(Unknown Source)
    at
    org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanStartElement(Unkno
    wn Source)
    at
    org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatc
    her.dispatch(Unknown Source)
    at
    org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown
    Source)
    at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown Source)
    at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown Source)
    at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
    at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
    at javax.xml.parsers.SAXParser.parse(SAXParser.java:345)
    at com.solarmetric.meta.XMLMetaDataParser.parse(XMLMetaDataParser.java:309)
    at com.solarmetric.meta.XMLMetaDataParser.parse(XMLMetaDataParser.java:254)
    at com.solarmetric.meta.XMLMetaDataParser.parse(XMLMetaDataParser.java:234)
    at
    kodo.meta.JDOMetaDataRepositoryImpl.getMetaDataInternal(JDOMetaDataRepositor
    yImpl.java:175)
    at
    kodo.meta.JDOMetaDataRepositoryImpl.getMetaData(JDOMetaDataRepositoryImpl.ja
    va:129)
    at kodo.enhance.JDOEnhancer.<init>(JDOEnhancer.java:110)
    at kodo.enhance.JDOEnhancer.run(JDOEnhancer.java:2175)
    at kodo.enhance.JDOEnhancer.run(JDOEnhancer.java:2116)
    at kodo.enhance.JDOEnhancer.main(JDOEnhancer.java:2088)
    at peacetech.gao.ccs.tools.Enhance.main(Enhance.java:14)
    Caused by: org.apache.commons.logging.LogConfigurationException:
    org.apache.commons.logging.LogConfigurationException:
    org.apache.commons.logging.LogConfigurationException: Class
    org.apache.commons.logging.impl.Log4JLogger does not implement Log
    at
    org.apache.commons.logging.impl.LogFactoryImpl.newInstance(LogFactoryImpl.ja
    va:532)
    at
    org.apache.commons.logging.impl.LogFactoryImpl.getInstance(LogFactoryImpl.ja
    va:272)
    at
    org.apache.commons.logging.impl.LogFactoryImpl.getInstance(LogFactoryImpl.ja
    va:246)
    at org.apache.commons.logging.LogFactory.getLog(LogFactory.java:395)
    at peacetech.gao.ccs.jdo.GaoParticipant.<clinit>(GaoParticipant.java:14)
    ... 35 more
    Caused by: org.apache.commons.logging.LogConfigurationException:
    org.apache.commons.logging.LogConfigurationException: Class
    org.apache.commons.logging.impl.Log4JLogger does not implement Log
    at
    org.apache.commons.logging.impl.LogFactoryImpl.getLogConstructor(LogFactoryI
    mpl.java:416)
    at
    org.apache.commons.logging.impl.LogFactoryImpl.newInstance(LogFactoryImpl.ja
    va:525)
    ... 39 more
    Caused by: org.apache.commons.logging.LogConfigurationException: Class
    org.apache.commons.logging.impl.Log4JLogger does not implement Log
    at
    org.apache.commons.logging.impl.LogFactoryImpl.getLogConstructor(LogFactoryI
    mpl.java:412)
    ... 40 more
    Exception in thread "main" Process terminated with exit code 1

    Have not tried Ant but running main() runs when LOG is not initialized at
    all and blows in both cases below
    1.
    private static Log LOG ;
    static {
    LOG = LogFactory.getLog(Contact.class);
    2
    private static Log LOG = getLog();
    private static Log getLog() {
    return LogFactory.getLog(Contact.class);
    "Marc Prud'hommeaux" <[email protected]> wrote in message
    news:[email protected]...
    Alex-
    Do you see the problem if you just enhance the class from the
    command-line "jdoc" tool?
    Also, if you just don't initialize the log, do you still see the
    problem (e.g., making it a lazy initialization via some static
    getLog() method)?
    In article <[email protected]>, Alex Roytman wrote:
    It is not even ant just a class which I run from under Intellij IDEA
    package peacetech.gao.ccs.tools;
    import kodo.enhance.JDOEnhancer;
    public class Enhance {
    String arr[];
    public static void main(String[] args) throws Exception {
    String root = "D:/projects/gao/ccs/main/java/jdo/classes/";
    System.getProperties().put("kodo.properties", "ccs-jdo.properties");
    JDOEnhancer.main(new String[]{"-te", "true", root +
    "/peacetech/gao/ccs/jdo/package.jdo"});
    "Marc Prud'hommeaux" <[email protected]> wrote in message
    news:[email protected]...
    Alex-
    This seems to be a problem that happens under some classloader
    circumstances.
    Do you have a special <classloader> element for your <enhance> target?
    If so, does it still occur if you remove it (conversely, does it still
    happen if you add in a <classloader> element?
    In article <[email protected]>, Alex Roytman wrote:
    For some reason enhancer blows on class with
    import org.apache.commons.logging.Log;
    import org.apache.commons.logging.LogFactory;
    private static final Log LOG =
    LogFactory.getLog(GaoParticipant.class);
    >>>>
    With following exception:
    java.lang.ExceptionInInitializerError
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:219)
    at serp.util.MultiClassLoader.findClass(MultiClassLoader.java:224)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:289)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:235)
    at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:302)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:219)
    at
    com.solarmetric.meta.CFMetaDataParser.classForName(CFMetaDataParser.java:213
    at
    com.solarmetric.meta.CFMetaDataParser.classForName(CFMetaDataParser.java:188
    atkodo.meta.JDOMetaDataParser.startCollection(JDOMetaDataParser.java:321)
    at
    kodo.meta.JDOMetaDataParser.startClassElement(JDOMetaDataParser.java:194)
    at
    com.solarmetric.meta.CFMetaDataParser.startElement(CFMetaDataParser.java:69)
    at
    com.solarmetric.meta.XMLMetaDataParser.startElement(XMLMetaDataParser.java:3
    54)
    at org.apache.xerces.parsers.AbstractSAXParser.startElement(UnknownSource)
    atorg.apache.xerces.parsers.AbstractXMLDocumentParser.emptyElement(Unknown
    Source)
    at org.apache.xerces.impl.dtd.XMLDTDValidator.emptyElement(UnknownSource)
    at
    org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanStartElement(Unkno
    wn Source)
    at
    org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatc
    her.dispatch(Unknown Source)
    at
    org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown
    Source)
    at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown Source)
    at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown Source)
    at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
    at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
    at javax.xml.parsers.SAXParser.parse(SAXParser.java:345)
    atcom.solarmetric.meta.XMLMetaDataParser.parse(XMLMetaDataParser.java:309)
    atcom.solarmetric.meta.XMLMetaDataParser.parse(XMLMetaDataParser.java:254)
    atcom.solarmetric.meta.XMLMetaDataParser.parse(XMLMetaDataParser.java:234)
    at
    kodo.meta.JDOMetaDataRepositoryImpl.getMetaDataInternal(JDOMetaDataRepositor
    yImpl.java:175)
    at
    kodo.meta.JDOMetaDataRepositoryImpl.getMetaData(JDOMetaDataRepositoryImpl.ja
    va:129)
    at kodo.enhance.JDOEnhancer.<init>(JDOEnhancer.java:110)
    at kodo.enhance.JDOEnhancer.run(JDOEnhancer.java:2175)
    at kodo.enhance.JDOEnhancer.run(JDOEnhancer.java:2116)
    at kodo.enhance.JDOEnhancer.main(JDOEnhancer.java:2088)
    at peacetech.gao.ccs.tools.Enhance.main(Enhance.java:14)
    Caused by: org.apache.commons.logging.LogConfigurationException:
    org.apache.commons.logging.LogConfigurationException:
    org.apache.commons.logging.LogConfigurationException: Class
    org.apache.commons.logging.impl.Log4JLogger does not implement Log
    at
    org.apache.commons.logging.impl.LogFactoryImpl.newInstance(LogFactoryImpl.ja
    va:532)
    at
    org.apache.commons.logging.impl.LogFactoryImpl.getInstance(LogFactoryImpl.ja
    va:272)
    at
    org.apache.commons.logging.impl.LogFactoryImpl.getInstance(LogFactoryImpl.ja
    va:246)
    at org.apache.commons.logging.LogFactory.getLog(LogFactory.java:395)
    atpeacetech.gao.ccs.jdo.GaoParticipant.<clinit>(GaoParticipant.java:14)
    ... 35 more
    Caused by: org.apache.commons.logging.LogConfigurationException:
    org.apache.commons.logging.LogConfigurationException: Class
    org.apache.commons.logging.impl.Log4JLogger does not implement Log
    at
    org.apache.commons.logging.impl.LogFactoryImpl.getLogConstructor(LogFactoryI
    mpl.java:416)
    at
    org.apache.commons.logging.impl.LogFactoryImpl.newInstance(LogFactoryImpl.ja
    va:525)
    ... 39 more
    Caused by: org.apache.commons.logging.LogConfigurationException:Class
    org.apache.commons.logging.impl.Log4JLogger does not implement Log
    at
    org.apache.commons.logging.impl.LogFactoryImpl.getLogConstructor(LogFactoryI
    mpl.java:412)
    ... 40 more
    Exception in thread "main" Process terminated with exit code 1
    Marc Prud'hommeaux [email protected]
    SolarMetric Inc. http://www.solarmetric.com
    Marc Prud'hommeaux [email protected]
    SolarMetric Inc. http://www.solarmetric.com

  • Kodo and GLUE

    Hi,
    We are using Kodo and the mind electric's GLUE 4.1
    We are running into a problem with any Kodo-enhanced object with the Date
    field. GLUE requires object to have no-argument constructor for SOAP
    serialization. And unfortunately Kodoo's
    com.solarmetric.kodo.util.ProxyDate object has a protected ProxyDate()
    contructor. So GLUE would throws this error while trying to send a
    Kodo-enhanced class:
    electric.util.WrappedException: java.rmi.UnmarshalException:
    java.io.IOException: no argument constructor is missing.
    java.lang.IllegalAccessException: Class
    electric.xml.io.complex.factories.DefaultFactory can not access a member
    of class com.solarmetric.kodo.util.ProxyDate with modifiers ""
         at electric.proxy.handler.Proxy.getCompatibleException(Unknown Source)
         at electric.proxy.handler.Proxy.invoke(Unknown Source)
         at electric.util.proxy.proxy3.InvocationAdaptor.invoke(Unknown Source)
         at $Proxy0.getActivityLogs(Unknown Source)
         at com.bitfone.datastore.doQuery(ActivityLog.java:95)
    So for all of my Kodo-enhanced objects with a Date field, my current
    workaround is to manually iterate through the Collection returned from
    Query and construct a new "transport" object with regular java.util.Date
    instead of Kodo's ProxyDate.
    Any help would be greatly appreciated,
    John

    You can extend SimpleProxyManager to do just that and override getDateCopy
    and getDateProxy to return a ProxyDate subclass that has a public no-args
    constructor:
    e.g.
    MyDateProxy extends ProxyDate
              public MyDateProxy () { super (System.currentTimeMillis ()); }
    http://solarmetric.com/Software/Documentation/2.5.2/docs/ref_guide_conf_kodo.html#com.solarmetric.kodo.ProxyManagerClass
    On Sat, 05 Jul 2003 01:21:14 +0000, John Dinh wrote:
    Hi,
    We are using Kodo and the mind electric's GLUE 4.1
    We are running into a problem with any Kodo-enhanced object with the Date
    field. GLUE requires object to have no-argument constructor for SOAP
    serialization. And unfortunately Kodoo's
    com.solarmetric.kodo.util.ProxyDate object has a protected ProxyDate()
    contructor. So GLUE would throws this error while trying to send a
    Kodo-enhanced class:
    electric.util.WrappedException: java.rmi.UnmarshalException:
    java.io.IOException: no argument constructor is missing.
    java.lang.IllegalAccessException: Class
    electric.xml.io.complex.factories.DefaultFactory can not access a member
    of class com.solarmetric.kodo.util.ProxyDate with modifiers ""
         at electric.proxy.handler.Proxy.getCompatibleException(Unknown Source) at
         electric.proxy.handler.Proxy.invoke(Unknown Source) at
         electric.util.proxy.proxy3.InvocationAdaptor.invoke(Unknown Source) at
         $Proxy0.getActivityLogs(Unknown Source) at
         com.bitfone.datastore.doQuery(ActivityLog.java:95)
    So for all of my Kodo-enhanced objects with a Date field, my current
    workaround is to manually iterate through the Collection returned from
    Query and construct a new "transport" object with regular java.util.Date
    instead of Kodo's ProxyDate.
    Any help would be greatly appreciated,
    John--
    Steve Kim
    [email protected]
    SolarMetric Inc.
    http://www.solarmetric.com

  • Solaris Kodo 4.0.0 can't find license.bea

    Hi,
    Running kodo enhancer as ant task on Solaris gives:
    LicenseException: No product license key was found
    My classpath includes all the Kodo jars and the directory where the license.bea and kodo.properties files are located
    An identical setup on Windows with the same license.bea works fine.
    Any suggestions?
    Thanks,
    Greg.

    An update on the problem:
    The problem is with the JRE required by the new license code. It won't work for Java 1.4, requires Java 1.5
    When the new license code fails it goes looking for an old license key in the kodo.properties file - if it doesn't find a valid key, it throws a license exception.
    I've asked tech-support to arrange for an evaluation license key - otherwise all our code will have to be upgraded to JRE5... or we could just go with JPOX...
    Greg.

  • Verifier / Enhancer Exception

    I keep getting the follwoing exception and have narrowed it down to one
    class of mine:
    Exception in thread "main" java.util.ConcurrentModificationException
    at java.util.TreeMap$EntryIterator.nextEntry(TreeMap.java:1022)
    at java.util.TreeMap$KeyIterator.next(TreeMap.java:1047)
    at
    com.solarmetric.kodo.meta.ClassMetaData.finish(ClassMetaData.java:276
    at
    com.solarmetric.kodo.meta.ClassMetaData.newInstance(ClassMetaData.jav
    a:207)
    at
    com.solarmetric.kodo.meta.ClassMetaData.getInstance(ClassMetaData.jav
    a:145)
    at
    com.solarmetric.kodo.enhance.JDOEnhancer.<init>(JDOEnhancer.java:204)
    at
    com.solarmetric.kodo.enhance.JDOEnhancer.enhance(JDOEnhancer.java:147
    at
    com.solarmetric.kodo.enhance.JDOEnhancer.main(JDOEnhancer.java:108)
    It appears to be a problem with a field defined as :
    private Set field1;
    in the java and...
    <field name="fields">
    <collection element-type="SomePersistenceCapableClass">
    </collection>
    </field>
    in the .jdo metedata file.
    If I mark the field as persistence-modifier="none" then the problem goes
    away. I am evaluating version 2.3.4.
    Any ideas?
    Thanks, Matty.

    I thought you'd ask for that :-).
    Attached is an example. It may seem a bit complex, but I can't simplify it
    much further without the problem going away.
    I compile the classes;
    javac *.java
    and then enhance class CE using jdoc
    jdoc -licenseKey xxx CE.class
    and it gives me the exception...
    Exception in thread "main" java.lang.IllegalArgumentException: The specified
    cla
    ss "-licenseKey" could not be loaded.
    java.lang.ClassNotFoundException: -licens
    eKey
    at
    com.solarmetric.modules.tools.compiler.ClassArgParser.parseClasses(Cl
    assArgParser.java:78)
    at
    com.solarmetric.kodo.impl.jdbc.ormapping.MetaDataVerifier.main(MetaDa
    taVerifier.java:55)
    Exception in thread "main" java.util.ConcurrentModificationException
    at java.util.TreeMap$EntryIterator.nextEntry(TreeMap.java:1022)
    at java.util.TreeMap$KeyIterator.next(TreeMap.java:1047)
    at
    com.solarmetric.kodo.meta.ClassMetaData.finish(ClassMetaData.java:276
    at
    com.solarmetric.kodo.meta.ClassMetaData.newInstance(ClassMetaData.jav
    a:207)
    at
    com.solarmetric.kodo.meta.ClassMetaData.getInstance(ClassMetaData.jav
    a:145)
    at
    com.solarmetric.kodo.enhance.JDOEnhancer.<init>(JDOEnhancer.java:204)
    at
    com.solarmetric.kodo.enhance.JDOEnhancer.enhance(JDOEnhancer.java:147
    at
    com.solarmetric.kodo.enhance.JDOEnhancer.main(JDOEnhancer.java:108)
    (I ignore the first one of course.)
    If I comment out the 'types' field in the CE class and comment out the
    relevant metadata in the .jdo file it goes through cleanly. This makes one
    think its some wierd problem due to the "none" on that persistence-modifier.
    But, if you remove some of the dependencies elsewhere the problem goes away
    too.
    For example, if you put back the 'types' field but in class M comment out
    the field 'k' in the java and metadata the problem goes away again.
    We can reproduce the problem on windows XP and at least one linux machine,
    but it works on another linux machine, so I'll give you some versions from
    my machine just in case...
    kodo - 2.3.4
    java version "1.4.1"
    Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.1-b21)
    Java HotSpot(TM) Client VM (build 1.4.1-b21, mixed mode)
    Windows XP Home Edition 2002 Version Service Pack 1
    Let me know if you need anything else.
    Obviously, we have found a workaround and so can proceed with the
    evaluation, but we don;t know if we might hit it again and have more work to
    do to get around it.
    Thanks,
    Matty.
    "Abe White" <[email protected]> wrote in message
    news:[email protected]...
    Can you post the full .jdo file? Better yet, if you could give us astandalone
    program that causes the error, that would be great. As it is, though,it's
    not something obvious in the code, and we haven't seen the errorinternally,
    or had reports of it from other people. It's hard to debug what you can't
    reproduce!begin 666 test.zip
    M4$L#!!0````(`-@L="V=E2<SS0$``.$%```'````:F1O+F1T9)U3T6Z;,!1]
    MG[1_\-*'P%9/V]L>VD51RZ1(Z;1V] -N[)O4K;%=8Z(B\?&S@9&00M+M"6'.
    M.??XG,O%["639(LV%UI=3KY^_C(AJ)CF0FTN)_?I#_IM,OO^_MW%AV29W"0_
    M4_+(-8DB`^P)-AA_.B<1OCA4@1]_C'O0%N3A3$*>#X/G:;I<_-Z!%61(KJ[G
    MZ9R<W26W]XN[Y+JG6FN1:"U0\FI/KJ?6@$:U^C#!43GA2NI*X]V",5(P<%ZU
    MXN @=]IBI;3BA865Q)B<+6Y^+1>#6GKUB,P)3IO7=O@XWN)S(2SFM+Z)(Y&S
    M!59KD+F?,PTOTP&6"87EGL"0,C#!%<T+?SHZ]6]Z=6RA$2UE,.KOF(&IP%HH
    MX]E!0;/>Z(9Z,M,&MN\P\^OD3RV)NE-7.0LJA]H!R)#N6*ZMGA49V)(^87F0
    M4?V<#CDMI*1;D 6&6S$T3:.XAD*Z=N(T/(;(+8RNT;$'NK&Z,/VY1[QBMD+.
    MD1\A=,O<U=!+OE_Y#H,2,Q]>LZC'=FN/TIJA+?<-IOQ"C+L)'WT))RT$7#?[
    M56NCE+JO?Q-O*SYYK7K'QR_6?/Z/N#K!<>T=9(N*:TM/_D4[1LCN2!1[TG4.
    M!] _4$L#!!0````(`!Q5=2WP1$QT>P```,H````'````0T4N:F%V8<O,+<@O
    M*E'(2BQ+U"LMR<S1"TXML>;E`L&"TJ2<S&2%Y)S$XF(%9U<%7BX%*$BM*$G-
    M2RE6\/9'$JP&Z0$Q"HHRRQ)+4A4R\TJB8Q5**@M2BZW1Y8"V*!3G@L3115-R
    MD51#7.#LJJ$),AYF4W%I06J1AB94<RU(-9 ``%!+`P04````" `#5'4MWF_&
    MT7P```"^````" ```$1#12YJ879AR\PMR"\J4<A*+$O4*RW)S-%SSL_)24TN
    MR<S/L^;ERD27]4@LS@A.+0%*\7(5E";E9"8K).<D%A<KN#B[*O!R*4!!:D5)
    M:EY*L0)"L!JD`\0H*,HL2RQ)54#8HY"=7VP-EX88"C1.0Q.D"69B<6E!:I&&
    MIC5$I!:D'$@``%!+`P04````" `#5'4M&2-K/*L````#`0``!@```$LN:F%V
    M845.,0[", S<*^4/'ML.[0,Z`@L=^H8TM2 H38+C("K$WTE($2?9\EF^\^G5
    M.V*XR8?L(FO3'9PQJ%@[.XA*5'W;B@J^U8O*Q]EH!<K($&!,RP1\,MHET:GP
    M5Y;EP9/CY(0+_#U!81A^!\4[HX73ZGD#Y6Q@BHH=`>$]:DKJ>8/S<0)I%W!\
    M10*/%'1(7Q4"VHNV&+J?4;__D''NLEY8$>(25HW0]F\<X[4/E!`P04````
    M" `#5'4M(.Y3-SL```!)````!P```$M/+FIA=F$K*$W*R4Q62,Y)+"Y6\/97
    MJ.;EXN52`(*"HOR2U.22U!2@J(:F0K4"1!@$BDL+4HLT-*VA0K6\7$ $`%!+
    M`P04````" `#5'4MU6P($TX```!Z````!@```$TN:F%V82LH3<K)3%9(SDDL
    M+E;P5>#E4H""U(J2U+R48@5O?R1!A6I>+@BOH"B_)#6Y)#5%P5LAVQHN"C'-
    M5T,3I!*FJ;BT(+5(0],:(E(+4@PD`%!+`P04````" `@574M;"5U<>\```!,
    M`@``!@```$-%+FID;[52/6\",0R=B]3_8+R'P'Y7!GH30E2"A3%-W.K:?)PN
    MH8)_CR]-"Z456STY?L_V2UZJ^<%9^* ^ML'7.)M,<?YP/ZK&C^O%=O?4P)L)
    ML-EMMLT*D/.)20:9P!0^<0(<5:?TNWHE\,I1C5C*&=)6Q5B 18-GI$0WK(Z)
    MO":A5:>>+8FXYVINK'&YOAR71[ZT9$T9&5V\QC-'!VM))[X4D"5'/HET[+AA
    M]2==GOG7VV1>=TN#^:WA[M\%C(6 86"$-H+>]SUOL$?P(7T_J0$A;NG.[?C#
    M`1=,RY2^1A\\H;QT4F9'OBR7Q?/AL\C/KW "4$L#!!0````(`*M4=2VV5L[K
    MN@```%<!```'````1$-%+FID;VU0RPZ",!"\F_@/M7>HWGD<A),QF,"%8VU7
    M@Y1";#7Z]RZU!B7N:;LSL]/9*'UTBMSA:II>QW03KFF:+!?1*BNV57W(R47V
    MI*S+*M\3BGTHK:1(0 J^L"%8T<!%R\] -.\@IM2/'204-\8#V3:G$^1K&+V-
    M!2T@$'S@1P6!N>'4*6.*FN17%)T:4-+O;'LSQQU']$J!L)B*@((.M WL<T#!
    MKOC+9Y-@;L><WW<HYO[V2<]\_/%N['V5%U!+`P04````" "M5'4M:<H[,[H`
    M``!6`0``!0```$LN:F1O;5"Q#H(P$)TU\1]J=ZCN( ,P&8,)+(RU/0U:"K'5
    MZ-][U*J$V*77>_?>Z[LH>;2*W.%JFD['=!VN:+)9S*-E5J15O<_)67:DK,LJ
    MWQ&*=2BMI#B (_C"@N")>BXN_ 1$\Q9B2GW;04)Q8SRPI5]@YN]^<#86M(!
    M\)X?% 3FAEW'0THQ5G.*QP:4](H"S!1W,Z)3"H3%3 04M*!M8)\]$K(T_TM@
    M/\;4CSG#<2;F/O<)SWSZ86WLO9074$L#!!0````(`+!4=2V+JI+X;0```)\`
    M```&````2T\N:F1OL[&OR,U1*$LM*L[,S[-5,M0S4+*WX^6R473Q=PZ)#'!5
    MR$K)5PB.# YQ]550`K+U4DI2E( *@$J /"!#`0AL"A*3LQ/34Q7R$G-3;964
    MH,)@J>2<Q.)BJ(2W/T0K7%(?+ LS11]J#,A^?8CI`%!+`P04````" "R5'4M
    M9BP_H)T````$`0``!0```$TN:F1OL[&OR,U1*$LM*L[,S[-5,M0S4+*WX^6R
    M473Q=PZ)#'!5R$K)5PB.# YQ]550`K+U4DI2E( *@$J /"!#`0AL"A*3LQ/3
    M4Q7R$G-3;964H,)@J>2<Q.)BJ(2O$D(""@I -A>7I.8EI^HF)Q8D)N6DZA:7
    M`D7!^FR5O/V130.;F):9FI,"-3$;0U8?+(WL`GVP43"GZD/="O*D/L0+`%!+
    M`P04````" `Z7W0MH I?#XH"```'!@``#P```&MO9&\N<')O<&5R=&EE<Y54
    MVV[;, Q]+]!_(-"7#6B<BS%D*."7)BBV7K,T:Y\9B;;5RI(GR4G3KQ_E!$VW
    M)NV&`'9@4N?PD(<Z@@LK+9R/;V#B;$TN*/(@K,E5T3@,RIK#@\.#(YA9H 7J
    M!@.!=5 W3I3H"1"T$F3XWR.MCF&AO I0AE"?=+O+Y3+Q5J.K*#@E$F&KPP-^
    M_/'QD?F3RS7&!:VR=#"@-$T[F/;S02HZDG XEX,.Y<.\EPZYEMT(MBC(9<8:
    MVL-!E%RAP8+DM#%!5;05G,T<&H\BREWGN&NL*'O !9YTWP9C0PJU( @E@51M
    M"-T*A$;O]]"KJM;)@YR+9/QR8!3SLP_2O2BIPB32)!/K0^'(;R'^@^V5WJAN
    MYAHCV@G?D?/\ROIQU%'S$Q^UR21^]H&,H(WN,^Z"_<>RS\>GH[T(KVEL'6M(
    M1M88:DL=.V[M>@#6%4F]T?Q+)^O(NX=_^LW1.;OSW<P)BUA:)[/W\::76=1S
    MLBV#G=T?#),>__K=2"/G.R!N^%6Q>"6RX)I=I4PIH#)WO%0\D1SUSGJGY+EA
    M]$'6M35AZU+44T*YC_;OW'NG`NU%_EX8IA\AFW ?X)6_1Q6R+[U>;T=T3#DV
    M.IQ1$.6LY :65LLL_2CU%/EQJYXIZ_>B+>/*C4HTA3)%7#N^<(+EVX<7OO-,
    MSD*\G B62FN0#BLVMD"M5Z",<-1ZX0C8_KEU%;(?CV'>A'6ZP(;1E.E45+$W
    M06+ .%8/OA$EH(=O*S[IK5$BHMS^N(S<AMB+0$]\WRU+,K"RC8.*)_KI,_!*
    ME%:V07\<$>)%45NK248$\6(OS[QM\"W]Z^*0OW(TIK(8R?01QE&D`]YCPUU)
    M=HU&F0FSQLU^&\.G-O:5^_L;4$L!`A0+% ````@`V"QT+9V5)S/-`0``X04`
    M``<``````````0`@`````````&ID;RYD=&102P$"% L4````" `<574M\$1,
    M='L```#*````!P`````````!`" ```#R`0``0T4N:F%V85!+`0(4"Q0````(
    M``-4=2W>;\;1? ```+X````(``````````$`( ```)("``!$0T4N:F%V85!+
    M`0(4"Q0````(``-4=2T9(VL\JP````,!```&``````````$`( ```#0#``!+
    M+FIA=F%02P$"% L4````" `#5'4M(.Y3-SL```!)````!P`````````!`" `
    M```#! ``2T\N:F%V85!+`0(4"Q0````(``-4=2W5; @33@```'H````&````
    M``````$`( ```&,$``!-+FIA=F%02P$"% L4````" `@574M;"5U<>\```!,
    M`@``!@`````````!`" ```#5! ``0T4N:F1O4$L!`A0+% ````@`JU1U+;96
    MSNNZ````5P$```<``````````0`@````Z 4``$1#12YJ9&]02P$"% L4````
    M" "M5'4M:<H[,[H```!6`0``!0`````````!`" ```#'!@``2RYJ9&]02P$"
    M% L4````" "P5'4MBZJ2^&T```"?````!@`````````!`" ```"D!P``2T\N
    M:F1O4$L!`A0+% ````@`LE1U+68L/Z"=````! $```4``````````0`@````
    M-0@``$TN:F1O4$L!`A0+% ````@`.E]T+: *7P^*`@``!P8```\`````````
    M`0`@````]0@``&MO9&\N<')O<&5R=&EE<U!+!08`````# `,`'T"``"L"P``
    "````
    `
    end

  • Failure to enhance

    I get the following error when I try to enhance this xml file. It is a bit
    weird since the first two classes are OK, after that they don't work. Can
    someone explain? I also have problems with the ApplicationIDTool.
    Obviously the class has been compiled, it seems to work intermittently.
    -----------tool--------------
    Exception in thread "main"
    com.solarmetric.kodo.tools.appid.ObjectIDException: The specified class
    package.jdo
    could not be loaded. Ensure that the class has been compiled before
    running this tool.
    at
    com.solarmetric.kodo.tools.appid.ApplicationIDTool.main(ApplicationIDTool.java:440)
    Exception in thread "main" java.lang.IllegalArgumentException: The
    specified class "com.vwfs.CustomerTrackingType" could not be loaded. null
    at
    com.solarmetric.modules.tools.compiler.ClassArgParser.parseClasses(ClassArgParser.java:9
    0)
    at
    com.solarmetric.kodo.impl.jdbc.ormapping.MetaDataVerifier.main(MetaDataVerifier.java:56)
    Exception in thread "main" java.lang.IllegalArgumentException: The
    specified class "com.vwfs.CustomerTrackingType" could not be loaded. null
    at
    com.solarmetric.modules.tools.compiler.ClassArgParser.parseClasses(ClassArgParser.java:9
    0)
    at
    com.solarmetric.kodo.enhance.JDOEnhancer.enhance(JDOEnhancer.java:152)
    at
    com.solarmetric.kodo.enhance.JDOEnhancer.enhance(JDOEnhancer.java:130)
    at
    com.solarmetric.kodo.enhance.JDOEnhancer.enhance(JDOEnhancer.java:122)
    at
    com.solarmetric.kodo.enhance.JDOEnhancer.main(JDOEnhancer.java:86)
    <?xml version="1.0" ?>
    <jdo>
         <package name="com.vwfs">
              <class name="Recording" identity-type="application"
    objectid-class="RecordingKey">
                   <extension vendor-name="kodo" key="table" value="recordings" />
                   <extension vendor-name="kodo" key="lock-column" value="none" />
                   <extension vendor-name="kodo" key="class-column" value="none" />
                   <field name="iRecordingID" primary-key="true">
                        <extension vendor-name="kodo" key="data-column" value="recording_id" />
                   </field>
                   <field name="iVersion">
                        <extension vendor-name="kodo" key="data-column" value="version" />
                   </field>
                   <field name="dListPrice">
                        <extension vendor-name="kodo" key="data-column" value="list_price" />
                   </field>
                   <field name="sCatalogNumber">
                        <extension vendor-name="kodo" key="data-column" value="catalog_number"
    />
                   </field>
                   <field name="sRecordingArtist">
                        <extension vendor-name="kodo" key="data-column"
    value="recording_artist" />
                   </field>
                   <field name="sRecordingTitle">
                        <extension vendor-name="kodo" key="data-column"
    value="recording_title" />
                   </field>
                   <field name="theCustomerTrackedRecordings">
                        <collection element-type="CustomerTrackedRecording"/>
                        <extension vendor-name="kodo" key="inverse" value="Recording" />
                   </field>
              </class>
              <class name="CustomerTrackedRecording" identity-type="application"
    objectid-class="CustomerTrackedRecordingKey">
                   <extension vendor-name="kodo" key="table"
    value="customer_tracked_recordings" />
                   <extension vendor-name="kodo" key="lock-column" value="none" />
                   <extension vendor-name="kodo" key="class-column" value="none" />
                   <field name="iCustomerID" primary-key="true">
                        <extension vendor-name="kodo" key="data-column" value="customer_id" />
                   </field>
                   <field name="iRecordingID" primary-key="true">
                        <extension vendor-name="kodo" key="data-column" value="recording_id" />
                   </field>
                   <field name="iTrackingTypeID" primary-key="true">
                        <extension vendor-name="kodo" key="data-column"
    value="tracking_type_id" />
                   </field>
                   <field name="iVersion">
                        <extension vendor-name="kodo" key="data-column" value="version" />
                   </field>
                   <field name="iDateTracked">
                        <extension vendor-name="kodo" key="data-column" value="date_tracked" />
                   </field>
                   <field name="theCustomer">
                        <extension vendor-name="kodo" key="inverse" value="Customer" />
                   </field>
                   <field name="theRecording">
                        <extension vendor-name="kodo" key="inverse" value="Recording" />
                   </field>
                   <field name="theTrackingType">
                        <extension vendor-name="kodo" key="inverse"
    value="CustomerTrackingType" />
                   </field>
              </class>
              <class name="CustomerTrackingType" identity-type="application"
    objectid-class="CustomerTrackingTypeKey">
                   <extension vendor-name="kodo" key="table"
    value="customer_tracking_types" />
                   <extension vendor-name="kodo" key="lock-column" value="none" />
                   <extension vendor-name="kodo" key="class-column" value="none" />
                   <field name="iTrackingTypeID" primary-key="true">
                        <extension vendor-name="kodo" key="data-column"
    value="tracking_type_id" />
                   </field>
                   <field name="sDescription" primary-key="true">
                        <extension vendor-name="kodo" key="data-column" value="description" />
                   </field>
              </class>
         </package>
    </jdo>

    I've got things to enhance now, by removing a few lines like this one:
    public static final CustomerTrackingType CUSTOMER_PURCHASE
    =     CustomerTrackingType.getByID(CUSTOMER_PURCHASE_ID);
    Now, I'm hoping someone will be able to explain why removing these lines
    fixes it?
    Thanks
    Andrew wrote:
    I get the following error when I try to enhance this xml file. It is a bit
    weird since the first two classes are OK, after that they don't work. Can
    someone explain? I also have problems with the ApplicationIDTool.
    Obviously the class has been compiled, it seems to work intermittently.
    -----------tool--------------
    Exception in thread "main"
    com.solarmetric.kodo.tools.appid.ObjectIDException: The specified class
    package.jdo
    could not be loaded. Ensure that the class has been compiled before
    running this tool.
    at
    com.solarmetric.kodo.tools.appid.ApplicationIDTool.main(ApplicationIDTool.java:440)
    Exception in thread "main" java.lang.IllegalArgumentException: The
    specified class "com.vwfs.CustomerTrackingType" could not be loaded. null
    at
    com.solarmetric.modules.tools.compiler.ClassArgParser.parseClasses(ClassArgParser.java:9
    0)
    at
    com.solarmetric.kodo.impl.jdbc.ormapping.MetaDataVerifier.main(MetaDataVerifier.java:56)
    Exception in thread "main" java.lang.IllegalArgumentException: The
    specified class "com.vwfs.CustomerTrackingType" could not be loaded. null
    at
    com.solarmetric.modules.tools.compiler.ClassArgParser.parseClasses(ClassArgParser.java:9
    0)
    at
    com.solarmetric.kodo.enhance.JDOEnhancer.enhance(JDOEnhancer.java:152)
    at
    com.solarmetric.kodo.enhance.JDOEnhancer.enhance(JDOEnhancer.java:130)
    at
    com.solarmetric.kodo.enhance.JDOEnhancer.enhance(JDOEnhancer.java:122)
    at
    com.solarmetric.kodo.enhance.JDOEnhancer.main(JDOEnhancer.java:86)
    <?xml version="1.0" ?>
    <jdo>
         <package name="com.vwfs">
              <class name="Recording" identity-type="application"
    objectid-class="RecordingKey">
                   <extension vendor-name="kodo" key="table" value="recordings" />
                   <extension vendor-name="kodo" key="lock-column" value="none" />
                   <extension vendor-name="kodo" key="class-column" value="none" />
                   <field name="iRecordingID" primary-key="true">
                        <extension vendor-name="kodo" key="data-column" value="recording_id" />
                   </field>
                   <field name="iVersion">
                        <extension vendor-name="kodo" key="data-column" value="version" />
                   </field>
                   <field name="dListPrice">
                        <extension vendor-name="kodo" key="data-column" value="list_price" />
                   </field>
                   <field name="sCatalogNumber">
                        <extension vendor-name="kodo" key="data-column" value="catalog_number"
    />
                   </field>
                   <field name="sRecordingArtist">
                        <extension vendor-name="kodo" key="data-column"
    value="recording_artist" />
                   </field>
                   <field name="sRecordingTitle">
                        <extension vendor-name="kodo" key="data-column"
    value="recording_title" />
                   </field>
                   <field name="theCustomerTrackedRecordings">
                        <collection element-type="CustomerTrackedRecording"/>
                        <extension vendor-name="kodo" key="inverse" value="Recording" />
                   </field>
              </class>
              <class name="CustomerTrackedRecording" identity-type="application"
    objectid-class="CustomerTrackedRecordingKey">
                   <extension vendor-name="kodo" key="table"
    value="customer_tracked_recordings" />
                   <extension vendor-name="kodo" key="lock-column" value="none" />
                   <extension vendor-name="kodo" key="class-column" value="none" />
                   <field name="iCustomerID" primary-key="true">
                        <extension vendor-name="kodo" key="data-column" value="customer_id" />
                   </field>
                   <field name="iRecordingID" primary-key="true">
                        <extension vendor-name="kodo" key="data-column" value="recording_id" />
                   </field>
                   <field name="iTrackingTypeID" primary-key="true">
                        <extension vendor-name="kodo" key="data-column"
    value="tracking_type_id" />
                   </field>
                   <field name="iVersion">
                        <extension vendor-name="kodo" key="data-column" value="version" />
                   </field>
                   <field name="iDateTracked">
                        <extension vendor-name="kodo" key="data-column" value="date_tracked" />
                   </field>
                   <field name="theCustomer">
                        <extension vendor-name="kodo" key="inverse" value="Customer" />
                   </field>
                   <field name="theRecording">
                        <extension vendor-name="kodo" key="inverse" value="Recording" />
                   </field>
                   <field name="theTrackingType">
                        <extension vendor-name="kodo" key="inverse"
    value="CustomerTrackingType" />
                   </field>
              </class>
              <class name="CustomerTrackingType" identity-type="application"
    objectid-class="CustomerTrackingTypeKey">
                   <extension vendor-name="kodo" key="table"
    value="customer_tracking_types" />
                   <extension vendor-name="kodo" key="lock-column" value="none" />
                   <extension vendor-name="kodo" key="class-column" value="none" />
                   <field name="iTrackingTypeID" primary-key="true">
                        <extension vendor-name="kodo" key="data-column"
    value="tracking_type_id" />
                   </field>
                   <field name="sDescription" primary-key="true">
                        <extension vendor-name="kodo" key="data-column" value="description" />
                   </field>
              </class>
         </package>
    </jdo>

  • Enhancer fails in Eclipse, ClassCastException

    I have followed the Eclipse / WebSphere Studio Integration instructions
    (in Developer's Guide).
    When I select the package.jdo file for enhancement, the enhancer fails and
    Eclipse logs the following:
    !ENTRY kodo 4 0 2005-04-10 22:30:06.968
    !MESSAGE The Enhancer failed. The message included was:
    {0}
    !STACK 0
    java.lang.ClassCastException
         at javax.xml.parsers.SAXParserFactory.newInstance(Unknown Source)
         at serp.xml.XMLFactory.checkSAXCache(XMLFactory.java:217)
         at serp.xml.XMLFactory.getSAXParser(XMLFactory.java:66)
         at
    com.solarmetric.meta.XMLMetaDataParser.parseNew(XMLMetaDataParser.java:359)
         at
    com.solarmetric.meta.XMLMetaDataParser.parse(XMLMetaDataParser.java:325)
         at
    com.solarmetric.meta.ClassArgParser.getFromMetaData(ClassArgParser.java:182)
         at
    com.solarmetric.meta.ClassArgParser.parseClassNames(ClassArgParser.java:98)
         at
    com.solarmetric.meta.ClassArgParser.parseClasses(ClassArgParser.java:74)
         at kodo.enhance.JDOEnhancer.run(JDOEnhancer.java:2657)
         at
    kodo.jdbc.integration.eclipse.EnhancerAction.handleFiles(EnhancerAction.java:27)
         at
    kodo.jdbc.integration.eclipse.AbstractMetadataAction.run(AbstractMetadataAction.java:63)
         at
    org.eclipse.ui.internal.PluginAction.runWithEvent(PluginAction.java:244)
         at
    org.eclipse.ui.internal.WWinPluginAction.runWithEvent(WWinPluginAction.java:220)
         at
    org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(ActionContributionItem.java:557)
         at
    org.eclipse.jface.action.ActionContributionItem.access$2(ActionContributionItem.java:507)
         at
    org.eclipse.jface.action.ActionContributionItem$6.handleEvent(ActionContributionItem.java:421)
         at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:82)
         at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:842)
         at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:2908)
         at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2541)
         at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:1612)
         at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:1578)
         at
    org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:293)
         at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:144)
         at org.eclipse.ui.internal.ide.IDEApplication.run(IDEApplication.java:102)
         at
    org.eclipse.core.internal.runtime.PlatformActivator$1.run(PlatformActivator.java:228)
         at
    org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:333)
         at
    org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:150)
         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
         at
    sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
         at
    sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
         at java.lang.reflect.Method.invoke(Method.java:324)
         at org.eclipse.core.launcher.Main.invokeFramework(Main.java:268)
         at org.eclipse.core.launcher.Main.basicRun(Main.java:260)
         at org.eclipse.core.launcher.Main.run(Main.java:887)
         at org.eclipse.core.launcher.Main.main(Main.java:871)
    I use Eclipse 3.1.0 and Kodo JDO 3.3.1.
    Can anyone explain to me why this occurs?
    Best regards
    Jarl

    Thank you, now everything works as expected.
    (A also removed references to these files in relevant plugin.xml file.)
    Can you tell me why it was neccessary to remove these files?
    Stephen Kim wrote:
    You may want to try removing xalan.jar, xml-apis.jar, and xercesImpl.jar
    from Kodo Eclipse plugin directory.
    Circula wrote:
    I have followed the Eclipse / WebSphere Studio Integration instructions
    (in Developer's Guide).
    When I select the package.jdo file for enhancement, the enhancer fails and
    Eclipse logs the following:
    !ENTRY kodo 4 0 2005-04-10 22:30:06.968
    !MESSAGE The Enhancer failed. The message included was:
    !STACK 0
    java.lang.ClassCastException
         at javax.xml.parsers.SAXParserFactory.newInstance(Unknown Source)
         at serp.xml.XMLFactory.checkSAXCache(XMLFactory.java:217)
         at serp.xml.XMLFactory.getSAXParser(XMLFactory.java:66)
         at
    com.solarmetric.meta.XMLMetaDataParser.parseNew(XMLMetaDataParser.java:359)
         at
    com.solarmetric.meta.XMLMetaDataParser.parse(XMLMetaDataParser.java:325)
         at
    com.solarmetric.meta.ClassArgParser.getFromMetaData(ClassArgParser.java:182)
         at
    com.solarmetric.meta.ClassArgParser.parseClassNames(ClassArgParser.java:98)
         at
    com.solarmetric.meta.ClassArgParser.parseClasses(ClassArgParser.java:74)
         at kodo.enhance.JDOEnhancer.run(JDOEnhancer.java:2657)
         at
    kodo.jdbc.integration.eclipse.EnhancerAction.handleFiles(EnhancerAction.java:27)
         at
    kodo.jdbc.integration.eclipse.AbstractMetadataAction.run(AbstractMetadataAction.java:63)
         at
    org.eclipse.ui.internal.PluginAction.runWithEvent(PluginAction.java:244)
         at
    org.eclipse.ui.internal.WWinPluginAction.runWithEvent(WWinPluginAction.java:220)
         at
    org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(ActionContributionItem.java:557)
         at
    org.eclipse.jface.action.ActionContributionItem.access$2(ActionContributionItem.java:507)
         at
    org.eclipse.jface.action.ActionContributionItem$6.handleEvent(ActionContributionItem.java:421)
         at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:82)
         at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:842)
         at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:2908)
         at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2541)
         at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:1612)
         at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:1578)
         at
    org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:293)
         at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:144)
         at org.eclipse.ui.internal.ide.IDEApplication.run(IDEApplication.java:102)
         at
    org.eclipse.core.internal.runtime.PlatformActivator$1.run(PlatformActivator.java:228)
         at
    org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:333)
         at
    org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:150)
         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
         at
    sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
         at
    sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
         at java.lang.reflect.Method.invoke(Method.java:324)
         at org.eclipse.core.launcher.Main.invokeFramework(Main.java:268)
         at org.eclipse.core.launcher.Main.basicRun(Main.java:260)
         at org.eclipse.core.launcher.Main.run(Main.java:887)
         at org.eclipse.core.launcher.Main.main(Main.java:871)
    I use Eclipse 3.1.0 and Kodo JDO 3.3.1.
    Can anyone explain to me why this occurs?
    Best regards
    Jarl
    Steve Kim
    [email protected]
    SolarMetric Inc.
    http://www.solarmetric.com

  • Kodo 4.0.0EA3 JDOHelper.is...() state functions

    I'm trying to write unit tests for some of my higher level classes, and I've run into trouble trying
    to test functions that delete persistent objects. I'm using Spring Framework's
    AbstractTransactionalSpringContextTests class as my harness (which derives from JUnit's TestCase).
    It sets up a transaction before each test function and rolls the transaction back (by default, this
    is editable) after each test function. Because of this, I decided to base the test on the results of
    JDOHelper.isDelete( objectThatWasDeleted ). My tests fail though, and all of the JDOHelper.is...()
    functions return false at all points during the test. I know things are getting deleted though,
    because before the Spring created transaction is started, I create my own transaction and persist
    some objects, and after the Spring transaction is finished (and the test case), I create another
    transaction to remove them (both my transactions are committed). Even in the tear down function,
    JDOHelper.is...() functions don't seem to work; for example, isDeleted() returns false even though
    the object has been scheduled for deletion and is in fact deleted when the transaction commits.
    Is this a known bug? I was under the impression that JDOHelper functions were working as of EA2 (I
    know they weren't working before that and we had to use KodoHelper).
    Thanks,
    Mark
    Here's the code in question:
    * This function is called after the test and the transaction it ran in have been completed.
    * By default, the transaction is rolled back, but this can be overridden. This function
    * should ensure the tests have been cleaned up, including anything that was created by the
    * companion function onSetUpBeforeTransaction().
    * @see onSetUpBeforeTransaction()
    protected void onTearDownAfterTransaction()
    if( transactionManager != null )
    getLogger().info( "Starting transaction for post-test tear down." );
    TransactionStatus status =
    transactionManager.getTransaction( new DefaultTransactionDefinition() );
    if( status != null )
    getLogger().info( "Transaction for post-test tear down has been created." );
    UserManager userManager = (UserManager) applicationContext.getBean( "userManager" );
    User userToAlter = userManager.getUser( USER_TO_ALTER_USERNAME );
    userManager.removeUser( userToAlter );
    getLogger().debug(
    "userToAlter (Kodo) - isDirty = " + KodoJDOHelper.isDirty( userToAlter )
    + ", isNew = " + KodoJDOHelper.isNew( userToAlter )
    + ", isPersistent = " + KodoJDOHelper.isPersistent( userToAlter )
    + ", isDeleted = " + KodoJDOHelper.isDeleted( userToAlter ) );
    getLogger().debug( "userToAlter - isDirty = " + JDOHelper.isDirty( userToAlter )
    + ", isNew = " + JDOHelper.isNew( userToAlter )
    + ", isPersistent = " + JDOHelper.isPersistent( userToAlter )
    + ", isDeleted = " + JDOHelper.isDeleted( userToAlter ) );
    try
    transactionManager.commit( status );
    finally
    status = null;
    else
    getLogger().info( "Could not create transaction for post-test tear down."
    + " Superclass' transactionManager is null." );
    And here's the log output (I've put blank lines around the relevant output):
    2005-11-10 12:50:17,669 INFO [edu.ucsc.whisper.test.integration.UserManagerIntegrationTest] -
    <Rolled back transaction after test execution>
    2005-11-10 12:50:17,669 INFO [edu.ucsc.whisper.test.integration.UserManagerIntegrationTest] -
    <Starting transaction for post-test tear down.>
    2005-11-10 12:50:17,670 DEBUG [org.springframework.orm.jdo.JdoTransactionManager] - <Using
    transaction object [org.springframework.orm.jdo.JdoTransactionManager$JdoTransactionObject@82d44b]>
    2005-11-10 12:50:17,670 DEBUG [org.springframework.orm.jdo.JdoTransactionManager] - <Creating new
    transaction with name [null]>
    2005-11-10 12:50:17,670 DEBUG [org.springframework.orm.jdo.JdoTransactionManager] - <Opened new
    PersistenceManager [kodo.jdo.PersistenceManagerImpl@3faa8d] for JDO transaction>
    2005-11-10 12:50:17,670 DEBUG [org.springframework.orm.jdo.JdoTransactionManager] - <Exposing JDO
    transaction as JDBC transaction
    [org.springframework.orm.jdo.DefaultJdoDialect$DataStoreConnectionHandle@285701]>
    2005-11-10 12:50:17,671 DEBUG
    [org.springframework.transaction.support.TransactionSynchronizationManager] - <Bound value
    [org.springframework.jdbc.datasource.ConnectionHolder@681dea] for key [datasource 9833630] to thread
    [main]>
    2005-11-10 12:50:17,671 DEBUG
    [org.springframework.transaction.support.TransactionSynchronizationManager] - <Bound value
    [org.springframework.orm.jdo.PersistenceManagerHolder@8424bd] for key
    [kodo.jdo.PersistenceManagerFactoryImpl@aa994e] to thread [main]>
    2005-11-10 12:50:17,671 DEBUG
    [org.springframework.transaction.support.TransactionSynchronizationManager] - <Initializing
    transaction synchronization>
    2005-11-10 12:50:17,671 INFO [edu.ucsc.whisper.test.integration.UserManagerIntegrationTest] -
    <Transaction for post-test tear down has been created.>
    2005-11-10 12:50:17,671 DEBUG [org.springframework.beans.factory.support.DefaultListableBeanFactory]
    - <Returning cached instance of singleton bean 'userManager'>
    2005-11-10 12:50:17,671 DEBUG [org.springframework.beans.factory.support.DefaultListableBeanFactory]
    - <Bean with name 'userManager' is a factory bean>
    2005-11-10 12:50:17,671 DEBUG [org.springframework.transaction.interceptor.TransactionInterceptor] -
    <Getting transaction for edu.ucsc.whisper.core.UserManager.getUser>
    2005-11-10 12:50:17,671 DEBUG
    [org.springframework.transaction.support.TransactionSynchronizationManager] - <Retrieved value
    [org.springframework.orm.jdo.PersistenceManagerHolder@8424bd] for key
    [kodo.jdo.PersistenceManagerFactoryImpl@aa994e] bound to thread [main]>
    2005-11-10 12:50:17,671 DEBUG [org.springframework.orm.jdo.JdoTransactionManager] - <Found
    thread-bound PersistenceManager [kodo.jdo.PersistenceManagerImpl@3faa8d] for JDO transaction>
    2005-11-10 12:50:17,671 DEBUG
    [org.springframework.transaction.support.TransactionSynchronizationManager] - <Retrieved value
    [org.springframework.jdbc.datasource.ConnectionHolder@681dea] for key [datasource 9833630] bound to
    thread [main]>
    2005-11-10 12:50:17,671 DEBUG [org.springframework.orm.jdo.JdoTransactionManager] - <Using
    transaction object [org.springframework.orm.jdo.JdoTransactionManager$JdoTransactionObject@87f48e]>
    2005-11-10 12:50:17,671 DEBUG [org.springframework.orm.jdo.JdoTransactionManager] - <Participating
    in existing transaction>
    2005-11-10 12:50:17,671 DEBUG
    [org.springframework.transaction.support.TransactionSynchronizationManager] - <Retrieved value
    [org.springframework.orm.jdo.PersistenceManagerHolder@8424bd] for key
    [kodo.jdo.PersistenceManagerFactoryImpl@aa994e] bound to thread [main]>
    2005-11-10 12:50:17,672 DEBUG [kodo.Query] - <executing query: [SELECT UNIQUE FROM
    edu.ucsc.whisper.core.DefaultUser WHERE username==searchName
                         PARAMETERS java.lang.String searchName] with parameters: {searchName=userToAlter}>
    2005-11-10 12:50:17,674 DEBUG [kodo.jdbc.JDBC] - <<t 977184> connection pool: active=0, idle=1>
    2005-11-10 12:50:17,674 DEBUG [kodo.jdbc.JDBC] - <<t 977184, conn 3700728> checkout>
    2005-11-10 12:50:17,674 DEBUG [kodo.jdbc.JDBC] - <<t 977184> prepared statement cache: size=8,
    max=50, requests=12, hits=4, created=8, redundant=0, overflow=0, leaked=0>
    2005-11-10 12:50:17,677 DEBUG [kodo.jdbc.SQL] - <<t 977184, conn 3700728> [3 ms] executing prepstmnt
    1168959 SELECT t0.userId, t0.VERSN, t0.enabled, t0.password, t1.userInfoId, t1.VERSN, t1.aboutText,
    t1.familyName, t1.firstName, t1.gender, t1.namePrefix, t1.nameSuffix, t1.otherNames, t2.userId,
    t2.VERSN, t2.enabled, t2.password, t2.USERINFO, t2.username, t0.username FROM whisper_user t0 LEFT
    OUTER JOIN userinfo t1 ON t0.USERINFO = t1.userInfoId LEFT OUTER JOIN whisper_user t2 ON
    t1.userInfoId = t2.USERINFO WHERE (t0.username = ?) [params=(String) userToAlter] [reused=1]>
    2005-11-10 12:50:17,690 DEBUG [kodo.jdbc.SQL] - <<t 977184, conn 3700728> [3 ms] executing prepstmnt
    4297359 SELECT t0.previousName, t0.nameOrder FROM userInfo_PreviousNames t0 WHERE t0.userInfoId = ?
    ORDER BY t0.nameOrder ASC [params=(long) 1] [reused=0]>
    2005-11-10 12:50:17,693 DEBUG [kodo.jdbc.SQL] - <<t 977184, conn 3700728> [2 ms] executing prepstmnt
    16585718 SELECT t1.authorityId, t1.VERSN, t1.authority FROM user_authorities t0 INNER JOIN
    authorities t1 ON t0.authorityId = t1.authorityId WHERE t0.userId = ? [params=(long) 1] [reused=0]>
    2005-11-10 12:50:17,697 DEBUG [kodo.jdbc.SQL] - <<t 977184, conn 3700728> [3 ms] executing prepstmnt
    11277980 SELECT t0.organizationId, t0.VERSN, t0.city, t0.country, t0.isPrimary, t0.orgName,
    t0.positionTitle, t0.postalCode, t0.state, t0.streetAddress1, t0.streetAddress2, t0.streetAddress3,
    t0.userId FROM organization t0 WHERE t0.userId = ? [params=(long) 1] [reused=0]>
    2005-11-10 12:50:17,698 DEBUG [kodo.jdbc.JDBC] - <<t 977184, conn 3700728> return>
    2005-11-10 12:50:17,698 DEBUG [kodo.jdbc.JDBC] - <<t 977184, conn 3700728> [0 ms] close>
    2005-11-10 12:50:17,698 DEBUG [org.springframework.transaction.interceptor.TransactionInterceptor] -
    <Invoking commit for transaction on edu.ucsc.whisper.core.UserManager.getUser>
    2005-11-10 12:50:17,698 DEBUG [org.springframework.transaction.interceptor.TransactionInterceptor] -
    <Getting transaction for edu.ucsc.whisper.core.UserManager.removeUser>
    2005-11-10 12:50:17,698 DEBUG
    [org.springframework.transaction.support.TransactionSynchronizationManager] - <Retrieved value
    [org.springframework.orm.jdo.PersistenceManagerHolder@8424bd] for key
    [kodo.jdo.PersistenceManagerFactoryImpl@aa994e] bound to thread [main]>
    2005-11-10 12:50:17,698 DEBUG [org.springframework.orm.jdo.JdoTransactionManager] - <Found
    thread-bound PersistenceManager [kodo.jdo.PersistenceManagerImpl@3faa8d] for JDO transaction>
    2005-11-10 12:50:17,698 DEBUG
    [org.springframework.transaction.support.TransactionSynchronizationManager] - <Retrieved value
    [org.springframework.jdbc.datasource.ConnectionHolder@681dea] for key [datasource 9833630] bound to
    thread [main]>
    2005-11-10 12:50:17,698 DEBUG [org.springframework.orm.jdo.JdoTransactionManager] - <Using
    transaction object [org.springframework.orm.jdo.JdoTransactionManager$JdoTransactionObject@ba0b12]>
    2005-11-10 12:50:17,699 DEBUG [org.springframework.orm.jdo.JdoTransactionManager] - <Participating
    in existing transaction>
    2005-11-10 12:50:17,700 DEBUG
    [org.springframework.transaction.support.TransactionSynchronizationManager] - <Retrieved value
    [org.springframework.orm.jdo.PersistenceManagerHolder@8424bd] for key
    [kodo.jdo.PersistenceManagerFactoryImpl@aa994e] bound to thread [main]>
    2005-11-10 12:50:17,702 DEBUG
    [org.springframework.transaction.support.TransactionSynchronizationManager] - <Retrieved value
    [org.springframework.orm.jdo.PersistenceManagerHolder@8424bd] for key
    [kodo.jdo.PersistenceManagerFactoryImpl@aa994e] bound to thread [main]>
    2005-11-10 12:50:17,702 DEBUG [org.springframework.transaction.interceptor.TransactionInterceptor] -
    <Invoking commit for transaction on edu.ucsc.whisper.core.UserManager.removeUser>
    2005-11-10 12:50:17,702 DEBUG [edu.ucsc.whisper.test.integration.UserManagerIntegrationTest] -
    <userToAlter (Kodo) - isDirty = false, isNew = false, isPersistent = false, isDeleted = false>
    2005-11-10 12:50:17,702 DEBUG [edu.ucsc.whisper.test.integration.UserManagerIntegrationTest] -
    <userToAlter - isDirty = false, isNew = false, isPersistent = false, isDeleted = false>
    2005-11-10 12:50:17,703 DEBUG [org.springframework.orm.jdo.JdoTransactionManager] - <Triggering
    beforeCommit synchronization>
    2005-11-10 12:50:17,703 DEBUG [org.springframework.orm.jdo.JdoTransactionManager] - <Triggering
    beforeCompletion synchronization>
    2005-11-10 12:50:17,703 DEBUG [org.springframework.orm.jdo.JdoTransactionManager] - <Initiating
    transaction commit>
    2005-11-10 12:50:17,703 DEBUG [org.springframework.orm.jdo.JdoTransactionManager] - <Committing JDO
    transaction on PersistenceManager [kodo.jdo.PersistenceManagerImpl@3faa8d]>
    2005-11-10 12:50:17,703 DEBUG [kodo.jdbc.JDBC] - <<t 977184> connection pool: active=0, idle=1>
    2005-11-10 12:50:17,703 DEBUG [kodo.jdbc.JDBC] - <<t 977184, conn 3700728> checkout>
    2005-11-10 12:50:17,703 DEBUG [kodo.jdbc.JDBC] - <<t 977184> prepared statement cache: size=11,
    max=50, requests=16, hits=5, created=11, redundant=0, overflow=0, leaked=0>
    2005-11-10 12:50:17,705 DEBUG [kodo.jdbc.SQL] - <<t 977184, conn 3700728> [1 ms] executing prepstmnt
    1104991 DELETE FROM userInfo_PreviousNames WHERE userInfoId = ? [params=(long) 1] [reused=0]>
    2005-11-10 12:50:17,706 DEBUG [kodo.jdbc.SQL] - <<t 977184, conn 3700728> [1 ms] executing prepstmnt
    15986263 DELETE FROM user_authorities WHERE authorityId = ? [params=(long) 1] [reused=0]>
    2005-11-10 12:50:17,708 DEBUG [kodo.jdbc.SQL] - <<t 977184, conn 3700728> [1 ms] executing prepstmnt
    10794796 DELETE FROM user_authorities WHERE userId = ? [params=(long) 1] [reused=0]>
    2005-11-10 12:50:17,710 DEBUG [kodo.jdbc.SQL] - <<t 977184, conn 3700728> [2 ms] executing prepstmnt
    16100636 DELETE FROM authorities WHERE authorityId = ? AND VERSN = ? [params=(long) 1, (int) 1]
    [reused=0]>
    2005-11-10 12:50:17,711 DEBUG [kodo.jdbc.SQL] - <<t 977184, conn 3700728> [1 ms] executing prepstmnt
    3677634 DELETE FROM userinfo WHERE userInfoId = ? AND VERSN = ? [params=(long) 1, (int) 1] [reused=0]>
    2005-11-10 12:50:17,713 DEBUG [kodo.jdbc.SQL] - <<t 977184, conn 3700728> [1 ms] executing prepstmnt
    2745891 DELETE FROM whisper_user WHERE userId = ? AND VERSN = ? [params=(long) 1, (int) 1] [reused=0]>
    2005-11-10 12:50:17,828 DEBUG [kodo.jdbc.JDBC] - <<t 977184, conn 3700728> [115 ms] commit>
    2005-11-10 12:50:17,829 DEBUG [kodo.jdbc.JDBC] - <<t 977184, conn 3700728> return>
    2005-11-10 12:50:17,829 DEBUG [kodo.jdbc.JDBC] - <<t 977184, conn 3700728> [1 ms] close>
    2005-11-10 12:50:17,830 DEBUG [org.springframework.orm.jdo.JdoTransactionManager] - <Triggering
    afterCompletion synchronization>
    2005-11-10 12:50:17,830 DEBUG
    [org.springframework.transaction.support.TransactionSynchronizationManager] - <Clearing transaction
    synchronization>
    2005-11-10 12:50:17,830 DEBUG
    [org.springframework.transaction.support.TransactionSynchronizationManager] - <Removed value
    [org.springframework.orm.jdo.PersistenceManagerHolder@8424bd] for key
    [kodo.jdo.PersistenceManagerFactoryImpl@aa994e] from thread [main]>
    2005-11-10 12:50:17,830 DEBUG
    [org.springframework.transaction.support.TransactionSynchronizationManager] - <Removed value
    [org.springframework.jdbc.datasource.ConnectionHolder@681dea] for key [datasource 9833630] from
    thread [main]>
    2005-11-10 12:50:17,831 DEBUG [org.springframework.orm.jdo.JdoTransactionManager] - <Closing JDO
    PersistenceManager [kodo.jdo.PersistenceManagerImpl@3faa8d] after transaction>
    2005-11-10 12:50:17,831 DEBUG [org.springframework.orm.jdo.PersistenceManagerFactoryUtils] -
    <Closing JDO PersistenceManager>

    Abe White wrote:
    You need to make sure that when you enhance, you include JDO
    enhancement, not just the base Kodo enhancement. Now that Kodo 4
    supports EJB 3 users who might not want JDO, it doesn't enhance-in
    dependencies on JDO unless you ask it to.
    If you enhance on the command line, that means using the "jdoc" command
    rather than "kodoc" ("jdoc" is actually just a shortcut for "kodoc -jdo
    true"). If you use the PCEnhancerTask, it means setting the jdoEnhance
    attribute:
    <taskdef name="kodoc" classname="kodo.ant.PCEnhancer"/>
    <kodoc jdoEnhance="true">
    </kodoc>So, what are the primary differences between the enhancement done for EJB3
    and JDO? I gather that "base Kodo enhancement" is EJB3.
    Scott

Maybe you are looking for

  • Backing up an encrypted drive with Time Machine under Snow Leopard

    In a nutshell, my question is "Can I back up an encrypted drive using Time Machine under Snow Leopard, and if so, how do I access its data from a previous day?" I have a 1Tb USB drive connected to my MacBook, which runs Snow Leopard. The drive is for

  • What if EXPORT ITEMS if grayed out in keychain access?

    Model Name: MacBook Pro   Model Identifier: MacBookPro6,2   Processor Name: Intel Core i5   Processor Speed: 2.53 GHz   Number of Processors: 1   Total Number of Cores: 2   L2 Cache (per Core): 256 KB   L3 Cache: 3 MB   Memory: 4 GB   Processor Inter

  • Please help with an RMI problem

    Hi, This is probably a really simple problem which i can't spot, but i have the folloing 'HelloWorld' RMI program: The Client Program: import java.rmi.*; public class HelloClient {      public static void main(String args[]) {           if(System.get

  • SapScript output spool to a POST script file

    We generate  billing invoice output using custom program/Sap script. Subsequently we release the invoice print out from the print spool to create a post script file from the print spool by configuring command set "G" in transaction u201CSPADu201D. Th

  • Media Core Importer Process / ImporterProcessServer.exe crash

    The project that I'm working on is standard def but it is an hour and half long.  Its a training DVD with 12 modules totalling 100 minutes.  I have had a problem that has been getting continually worse.  Today I hit the brick wall and can't seem reco