Frequently Asked Questions

General

  1. Why Floggy?
  2. Under which license is Floggy licensed?
  3. Where can I get the graduation theses PDF that originated Floggy?

Technical

  1. Are static fields persisted?
  2. Are transient fields persisted?
  3. Which profiles are supported?
  4. Which configurations are supported?
  5. Can I view the generated bytecode?
  6. Where is the FloggyUML plugin for NetBeans?
  7. I'm getting a "cannot access java.lang.NoClassDefFoundError class file for java.lang.NoClassDefFoundError not foundjava.lang.NoClassDefFoundError" error when executing Floggy. What is happening?
  8. I'm getting a "java.lang.IllegalArgumentException: floggy.Person is not a valid persistable class. Check the weaver execution!" error when executing my application. What is happening?
  9. I'm getting a "java.lang.RuntimeException: No PersistableManager implementation was found. Please check the weaver execution." error when executing my application. What is happening?
  10. I'm getting a "net.sourceforge.floggy.persistence.FloggyException: Class and RMS description doesn't match for class Person. Please execute a normal migration process." error when executing my application. What is happening?
  11. I'm getting a "The chosen operation is not currently available" message when adding the Floggy Nature to my project on Eclipse plugin. What is happening?
  12. I'm getting a java.lang.reflect.InvocationHandler exception, how can I fix it?
  13. I'm getting a java.lang.NullPointerException exception after obfuscating my application, what happened?
  14. Why I need a weaver?

Developers

  1. I'm getting the follow warning when building the project floggy-persistence-weaver: [WARNING] POM for 'net.sourceforge.floggy:floggy-persistence-framework:pom:1.1-SNAPSHOT:compile' is invalid. It will be ignored for artifact resolution. What's happend?
  2. How can I get the source code?
  3. What is the format of the commit message?
  4. How can I create a branch?
  5. How can I build Floggy from the source code?
  6. How can I send an application that reproduces my problem ?

General

Why Floggy?

The project name was chose by Priscila. She said that it is pretty quilt.

[top]


Under which license is Floggy licensed?

Floggy is licensed under the Apache License, Version 2.0. This license allows you to use Floggy in open source and commercial applications.

[top]


Where can I get the graduation theses PDF that originated Floggy?

Here is the PDF link to it: Monografia_Floggy_Priscila_Thiago.pdf. It was written in Brazilian Portuguese.

[top]

Technical

Are static fields persisted?

No. Static fields belongs to the class and not to an object instance.

[top]


Are transient fields persisted?

No. Check the concept of a transient field in this document.

[top]


Which profiles are supported?

Floggy has been sucessfuly tested with MIDP 1.0, 2.0 and 2.1. If you have tested Floggy with other profiles please send us an e-mail and let us know.

[top]


Which configurations are supported?

Floggy has been sucessfuly tested with CLDC 1.0 and 1.1. If you have tested Floggy with other configurations please send us an e-mail and let us know.

[top]


Can I view the generated bytecode?

You can view the generated bytecode using javap or the jClasslib. Alternatively you can set the weaver to generate the source code.

[top]


Where is the FloggyUML plugin for NetBeans?

The FloggyUML plugin is not directly part of Floggy. It was built to a NetBeans contest in Brazil on 2006 and since that it is out of date. We don't support it. You can get futher information and the source code here.

[top]


I'm getting a "cannot access java.lang.NoClassDefFoundError class file for java.lang.NoClassDefFoundError not foundjava.lang.NoClassDefFoundError" error when executing Floggy. What is happening?

This is not a Floggy problem! This problem is correlated to a transformation that compilers do when reach a Java's language construction like this Class personClass= Person.class. What happens is that the compiler transform this construction into a try/catch block which catches a java.lang.NoClassDefFoundError so when the compiler tries to check the class java.lang.NoClassDefFoundError against the CLDC-1.0 classpath it detects that this class doesn't exist, throwing the error that you are getting. There are two ways to avoid this. The first one is instead of using the construction Class personClass= Person.class you must use Class personClass= Class.forName("Person");. The other one is switch to the CLDC-1.1 configuration.

[top]


I'm getting a "java.lang.IllegalArgumentException: floggy.Person is not a valid persistable class. Check the weaver execution!" error when executing my application. What is happening?

This happens when the application is packaged without the Weaver execution. Check your packaging process. Make sure that Weaver is being called.

[top]


I'm getting a "java.lang.RuntimeException: No PersistableManager implementation was found. Please check the weaver execution." error when executing my application. What is happening?

This happens when the application is packaged without the Weaver execution. Check your packaging process. Make sure that Weaver is being called.

[top]


I'm getting a "net.sourceforge.floggy.persistence.FloggyException: Class and RMS description doesn't match for class Person. Please execute a normal migration process." error when executing my application. What is happening?

This happens because your persistence class structure have changed between application invocations. You probably added/removed a field or changed its type from one invocation to another. If you are in developing mode you can delete your RMS files and restart your application to fix the issue. Usually the RMS files are stored at ${user.home}/j2mewtk. If you are on deployment mode you have to take in account these changes and build code to migrate your persistence class from the old structure to the new one. Check out some samples.

[top]


I'm getting a "The chosen operation is not currently available" message when adding the Floggy Nature to my project on Eclipse plugin. What is happening?

This occurs probably because you are using a JDK older than 1.5, Floggy 1.0.1 was built on JDK 1.5. After the 1.1.1 version Floggy is compatible to the JDK 1.4+ too. So you have two options to solve the problem or you update your JDK to 1.5+ or you update the Floggy to 1.1.+. If your problem wasn't solved please ask for help in our user's mailing list.

[top]


I'm getting a java.lang.reflect.InvocationHandler exception, how can I fix it?

This is a configuration problem, all the Floggy's jar are available in the project's classpath this is wrong. Only the floggy-persistence-framework.jar library must be added to the project's classpath. Take a look in this image for a correct configuration.

[top]


I'm getting a java.lang.NullPointerException exception after obfuscating my application, what happened?

The release 1.3.0 introduced a new feature that breaks during a regular obfuscation. If you obfuscate your project you MUST add the following line to your obfuscator configuration.

-keepnames class * implements net.sourceforge.floggy.persistence.Persistable

[top]


Why I need a weaver?

Since there isn't reflection in JME Floggy needs to weave the proper methods to enable the object to be serialized and deserialized from a stream. This is why you need a weaver.

[top]

Developers

I'm getting the follow warning when building the project floggy-persistence-weaver: [WARNING] POM for 'net.sourceforge.floggy:floggy-persistence-framework:pom:1.1-SNAPSHOT:compile' is invalid. It will be ignored for artifact resolution. What's happend?

This could occur because the variable wtk.home was not defined neither passed as parameter to Maven 2. Use this command 'mvn wtk.home=c:\WTK2.5 package' to build successfully.

[top]


How can I get the source code?

Our source code is hosted on github.com in their Git system. You can access it here.

Simplifying: git clone git@github.com:floggy/persistence-jme.git

Or you can grab a compacted archive directly from github: tar.gz or zip

[top]


What is the format of the commit message?

@operation:issue;comments. For further information check this.

[top]


How can I create a branch?

To create a branch you have to use the release:branch goal of Maven. You must execute it from the the base directory of the tag being branched.

Simplifying: mvn -DupdateWorkingCopyVersions=false -DupdateBranchVersions=true release:branch -DbranchName=floggy-1.2.x

[top]


How can I build Floggy from the source code?

You can build Floggy as any other Maven 2 based project. You need only to add two more steps (3 and 4) to the process. The whole steps are described below

  1. Install Maven 2
  2. Checkout the the source code
  3. Execute mvn clean package on the directory of the project
  4. If everything was okay now you can start to improve Floggy.blink

[top]


How can I send an application that reproduces my problem ?

You can build a Maven or Ant application and send us with all its dependencies. Please keep in mind that we don't know your application and will be hard to us find the problem if we didn't get it compiled.

[top]