-->
These old forums are deprecated now and set to read-only. We are waiting for you on our new forums!
More modern, Discourse-based and with GitHub/Google/Twitter authentication built-in.

All times are UTC - 5 hours [ DST ]



Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 10 posts ] 
Author Message
 Post subject: Blob may not be manipulated from creating session :(
PostPosted: Fri Aug 27, 2004 5:56 pm 
Newbie

Joined: Fri Aug 27, 2004 5:36 pm
Posts: 16
Location: Pittsburgh
I have been constant vistor of hibernate site and forums and most of my questions either were answered in the doc or faq or by some postings. Today is my firsrt posting.

I am trying insert a blob object in a table and i have followed guidelines by various postings and wiki pages.

But whenever I enter a a record, it gives me unsupported exception see the stacktrace. I don't know what to do. Does the exception means that I have to open different session or do something else. I am at the point to get the db connection and do it without hibernate to save (only) the attachments.

Any help in this matter is appreicated.



Hibernate version:
2.1.5, 4.8.2004

Mapping documents:

<hibernate-mapping>
<class name="com.company.Attachment" table="ATTACHMENTS">
<composite-id name="id" class="com.company.Request$Id" unsaved-value="any">
<key-property name="filename" column="FILE_NAME" type="string" />
<key-property name="rId" column="R_ID_NO" />
</composite-id>
<property name="attachment" column="ATTACHMENT" type="blob" not-null="true" />
<property name="contentType" column="CONTENT_TYPE" type="string" />
</class>
</hibernate-mapping>

Code between sessionFactory.openSession() and session.close():
public Attachment saveAttachment(Attachment t)
throws DAOException {

try {
Blob data = t.getAttachment();

byte[] oneByte = {1};
t.setAttachment(Hibernate.createBlob(oneByte));
session.save(t);
session.flush();

session.refresh(t, LockMode.UPGRADE);

oracle.sql.BLOB blob = (oracle.sql.BLOB) t.getAttachment();
OutputStream out = blob.getBinaryOutputStream();
out.write(data.getBytes((long) 1, (int) data.length() - 1));
out.close();
session.commit();
} catch (Exception e) {
session.rollback();
e.printStackTrace();
}

return (Attachment) retrieveObj(Attachment.class, t.getId());
}
Full stack trace of any exception that occurs:
Hibernate: insert into ATTACHMENTS (ATTACHMENT, CONTENT_TYPE, LAST_MODIFIED_BY, LAST_MODIFIED_DATE, FILE_NAME, R_ID_NO) values (?, ?, ?, ?, ?, ?)
Hibernate: select FILE_NAME, R_ID_NO, ATTACHMENT, CONTENT_TYPE as CONTENT_4_, LAST_MODIFIED_BY as LAST_MOD5_, LAST_MODIFIED_DATE as LAST_MOD6_ from ATTACHMENTS where FILE_NAME =? and R_ID_NO =? for update
java.lang.UnsupportedOperationException: Blob may not be manipulated from creating session
at net.sf.hibernate.lob.BlobImpl.excep(BlobImpl.java:95)
at net.sf.hibernate.lob.BlobImpl.getBytes(BlobImpl.java:48)
at com.company.dao.AttachmentDAO.saveAttachment(AttachmentDAO.java:54)
at com.company.action.attachment.Upload.performAction(Upload.java:98)
at com.company.action.BaseAction.execute(BaseAction.java:41)
at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:484)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:274)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:525)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
at com.company.filters.HibernateSessionFilter.doFilter(HibernateSessionFilter.java:31)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:213)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:256)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2422)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:171)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:163)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:199)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:828)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:700)
at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:584)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)
at java.lang.Thread.run(Thread.java:534)

Name and version of the database you are using:
Oracle 9i and oracle 9i drivers ojdbc.jar

Debug level Hibernate log excerpt:


Top
 Profile  
 
 Post subject:
PostPosted: Thu Mar 03, 2005 11:53 am 
Newbie

Joined: Fri Feb 18, 2005 7:14 pm
Posts: 5
Location: State College, PA
Hello! I am running into this exact problem. Do you recall how you solved it? Many thanks!!


Top
 Profile  
 
 Post subject:
PostPosted: Thu Mar 03, 2005 4:29 pm 
Newbie

Joined: Fri Feb 18, 2005 7:14 pm
Posts: 5
Location: State College, PA
FYI to any who might happen to stumble upon this thread in the future: I fixed the problem by changing setBlob to setBytes, and everything now works!


Top
 Profile  
 
 Post subject:
PostPosted: Mon Mar 07, 2005 6:14 am 
Newbie

Joined: Tue Feb 08, 2005 4:29 am
Posts: 7
Hi elwell642
I've got the same problem as you. Can you please publish the code section that you use to resolve it ? Thx a lot


Top
 Profile  
 
 Post subject: use getBinaryStream()
PostPosted: Wed Dec 14, 2005 7:05 am 
Newbie

Joined: Wed Dec 14, 2005 6:50 am
Posts: 17
As u can see out of the sourcecode, every method do nothing but:
Code:
throw new UnsupportedOperationException("Blob may not be manipulated from creating session");

The only to methods who are implemented really, are:
    Code:
    getBinaryStream()

    Code:
    length()


So use those instead of getBytes()

Why they used the text "Blob may not be manipulated" i can't say...
Maybe anybody can help us with that?

Greets


Top
 Profile  
 
 Post subject: Retrieving and displaying image
PostPosted: Tue May 09, 2006 6:20 pm 
Newbie

Joined: Fri Mar 24, 2006 1:28 pm
Posts: 6
Hello,

I'm trying to retrieve an image stored as a blob in the database and displaying it on the web browser. I run into problems when I try and use either the getBytes() method or the getBinaryStream() methods on the blob data. Following is my code:

ShowImageAction using getBytes():

public class ShowImageAction {

static Logger logger = Logger.getLogger(ShowImageAction.class);

// --------------------------------------------------------- Instance Variables
HttpSession httpsession;
Images img;
Blob imgdata;
OutputStream out;
byte[] databuffer;
InputStream is;
int bytesread;

// --------------------------------------------------------- Methods


/**
* Method execute
* @param mapping
* @param form
* @param request
* @param response
* @return ActionForward
*/
public ActionForward execute(
ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response) {


ShowImageForm showImageForm = (ShowImageForm) form;

httpsession = request.getSession();


img = (Images)httpsession.getAttribute("image");

// retrieve the blob data for the image using the getter method
imgdata = img.getImagData();


try{
databuffer = imgdata.getBytes(1, (int)imgdata.length());
logger.info("databuffer:" + databuffer);
out = response.getOutputStream();
out.write(databuffer);
out.close();

}catch(Exception e){
e.printStackTrace();
}
return null;

}

}

My jsp file is as follows:

<table>
<tr>
<td align="center"> Page Title: <bean:write name="sbcover" property="sbTitle"/></td>
<td align="center"> Author: <bean:write name="sbcover" property="author"/></td>
<td align="center"> Date: <bean:write name="sbcover" property="date"/></td>
</tr> <br></br>
<tr align="center">
<td> <html:img page="/showImage.do" height="200" width="200" alt="image1" /> </td>
</tr>
<logic:present name="image">
<tr align="center">
<td><bean:write name="image" property="caption"/> </td>
</tr>
</logic:present>
<logic:present name="txtpanel">
<tr align="center">
<td><bean:write name="txtpanel" property="textData"/> </td>
</tr>
</logic:present>
<table>
</body>

When i execute this, I get the following error:

java.lang.UnsupportedOperationException: Blob may not be manipulated from creating session
at org.hibernate.lob.BlobImpl.excep(BlobImpl.java:104)
at org.hibernate.lob.BlobImpl.getBytes(BlobImpl.java:50)
at org.hibernate.lob.SerializableBlob.getBytes(SerializableBlob.java:35)
at com.osb.struts.action.ShowImageAction.execute(ShowImageAction.java:88)
at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:419)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:224)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)
at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:747)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:860)
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:585)
at org.apache.catalina.security.SecurityUtil$1.run(SecurityUtil.java:249)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAsPrivileged(Subject.java:517)
at org.apache.catalina.security.SecurityUtil.execute(SecurityUtil.java:282)
at org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:165)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:257)
at org.apache.catalina.core.ApplicationFilterChain.access$000(ApplicationFilterChain.java:55)
at org.apache.catalina.core.ApplicationFilterChain$1.run(ApplicationFilterChain.java:161)
at java.security.AccessController.doPrivileged(Native Method)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:263)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:551)
at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:225)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:173)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:551)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:551)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:132)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:551)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:933)
at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:189)
at com.sun.enterprise.web.connector.grizzly.ProcessorTask.doProcess(ProcessorTask.java:604)
at com.sun.enterprise.web.connector.grizzly.ProcessorTask.process(ProcessorTask.java:475)
at com.sun.enterprise.web.connector.grizzly.ReadTask.executeProcessorTask(ReadTask.java:371)
at com.sun.enterprise.web.connector.grizzly.ReadTask.doTask(ReadTask.java:264)
at com.sun.enterprise.web.connector.grizzly.TaskBase.run(TaskBase.java:281)
at com.sun.enterprise.web.connector.grizzly.WorkerThread.run(WorkerThread.java:83)

I noticed that in the BlobImpl class, only getBinaryStream() and length() methods are implemented. I therefore changed my "ShowImageAction" class to use getBinaryStream instead:

public class ShowImageAction {

static Logger logger = Logger.getLogger(ShowImageAction.class);

// --------------------------------------------------------- Instance Variables
HttpSession httpsession;
Images img;
Blob imgdata;
OutputStream out;
byte[] databuffer;
InputStream is;
int bytesread;

// --------------------------------------------------------- Methods


/**
* Method execute
* @param mapping
* @param form
* @param request
* @param response
* @return ActionForward
*/
public ActionForward execute(
ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response) {

logger.info("into showImageAction");
ShowImageForm showImageForm = (ShowImageForm) form;

httpsession = request.getSession();


img = (Images)httpsession.getAttribute("image");
imgdata = img.getImagData();
logger.info("imgdata:" + imgdata);

databuffer = new byte[2048];

try{
is = imgdata.getBinaryStream();
out = response.getOutputStream();
while ((bytesread = is.read(databuffer)) != -1) {
out.write(databuffer, 0, bytesread);
}
out.close();

}catch(Exception e){
e.printStackTrace();
}
return null;

}

}

When I executed this, I got the following error:

java.sql.SQLException: could not reset reader
at org.hibernate.lob.BlobImpl.getBinaryStream(BlobImpl.java:83)
at org.hibernate.lob.SerializableBlob.getBinaryStream(SerializableBlob.java:39)
at com.osb.struts.action.ShowImageAction.execute(ShowImageAction.java:81)
at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:419)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:224)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)
at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:747)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:860)
at sun.reflect.GeneratedMethodAccessor107.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.apache.catalina.security.SecurityUtil$1.run(SecurityUtil.java:249)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAsPrivileged(Subject.java:517)
at org.apache.catalina.security.SecurityUtil.execute(SecurityUtil.java:282)
at org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:165)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:257)
at org.apache.catalina.core.ApplicationFilterChain.access$000(ApplicationFilterChain.java:55)
at org.apache.catalina.core.ApplicationFilterChain$1.run(ApplicationFilterChain.java:161)
at java.security.AccessController.doPrivileged(Native Method)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:263)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:551)
at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:225)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:173)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:551)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:551)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:132)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:551)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:933)
at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:189)
at com.sun.enterprise.web.connector.grizzly.ProcessorTask.doProcess(ProcessorTask.java:604)
at com.sun.enterprise.web.connector.grizzly.ProcessorTask.process(ProcessorTask.java:475)
at com.sun.enterprise.web.connector.grizzly.ReadTask.executeProcessorTask(ReadTask.java:371)
at com.sun.enterprise.web.connector.grizzly.ReadTask.doTask(ReadTask.java:264)
at com.sun.enterprise.web.connector.grizzly.TaskBase.run(TaskBase.java:281)
at com.sun.enterprise.web.connector.grizzly.WorkerThread.run(WorkerThread.java:83)

Any idea why I would get this error? I tried searching for a solution on the web as well as the hibernate forum and spent a lot of time and energy trying work arounds but haven't succeeded. I would greatly appreciate it if anyone who has some insight into this problem can help out. I can supply additional info if required. Thanks very much!


Top
 Profile  
 
 Post subject: I have come across the same problem!
PostPosted: Mon Sep 04, 2006 8:20 am 
Senior
Senior

Joined: Wed Dec 17, 2003 4:24 am
Posts: 188
I have come across the same problem! Anyone solve it already? Please help !

_________________
You are not alone...


Top
 Profile  
 
 Post subject: Re: I have come across the same problem!
PostPosted: Mon Jan 01, 2007 5:54 am 
Newbie

Joined: Mon Jan 01, 2007 5:45 am
Posts: 4
Yashnoo wrote:
I have come across the same problem! Anyone solve it already? Please help !


Ok, I came accross the same problem and managed to solve it. First of all, the reason for that is that Hibernate will create a Dummy BLOB implementation when you use:
Code:
Hibernate.createBlob()

This dummy blob will throw this exception every time you try to access the bytes.

To solve this,after the BLOB is created and saved, you need to refresh the entity so the real BLOB implementation will be used. This real implementation can be used to invoke the different methods on the BLOB interface.

To refresh and update use:
Code:
session.refresh(blobEntity,LockMode.UPGRADE);
Blob blob = blobEntity.getBlobField();
blob.setBytes(...)

I am using a lock since in I want to update the BLOB.

Hope this helps...

Ran.


Top
 Profile  
 
 Post subject:
PostPosted: Thu Apr 05, 2007 7:24 am 
Newbie

Joined: Thu Apr 05, 2007 5:48 am
Posts: 1
what solution Yashnoo has given is excellent and works perfectly

session.refresh(blobEntityObject);

Thanks so much yashnoo


Top
 Profile  
 
 Post subject: Re: Blob may not be manipulated from creating session :(
PostPosted: Sat Jan 08, 2011 1:38 am 
Newbie

Joined: Sat Jan 08, 2011 1:37 am
Posts: 1
This HELP:
Because some Database not support BLOB (Access,..) .
In case java call Blob.getBytes and throw UnsupportedOperationException : Blob may not be manipulated from creating session

You must test DB support or not support BLOB ?

if support you can using Hibernate.createBlob in you code to create BLOB
if not you using: new javax.sql.rowset.serial.SerialBlob(bytes) to create BLOB

See my code here:

Code:
package com.perppos.hibernate.utils;

public class HibernateUtil {

     
    private static boolean blobable = false;
    private static boolean testtedBlobable = false;

    // You code here .....

    private static void doTestBlobable() {
        System.out.println(" CALL TEST BLOBABLE ... ");
        try {
            Session s = sessionFactory.openSession();
            s.beginTransaction();
            byte[] testBytes = "Test".getBytes();
            Blob b = Hibernate.createBlob(testBytes);
           
            TestTable temp = new TestTable();
            temp.setId(UUID.randomUUID().toString());
            temp.setBlobContent(b);
            s.persist(temp); // ==> If DB Type not support BLOB(MS Access,..) ==> throw UnsupportedOperationException
            s.delete(temp);
            s.getTransaction().commit();
            s.close();
            blobable = true;
            System.out.println(" ==> BLOBABLE");
        } catch (UnsupportedOperationException e) {
           // Blob may not be manipulated from creating session
            blobable = false;
            System.out.println(" ==> NOT BLOBABLE");
        }
        testtedBlobable = true;
    }

    /**
     * Using Hibernate.createBlob : Cause raise Error for  Access DB
     * @param bytes
     * @return
     */
    public static Blob createBlob(byte[] bytes) {
        if (!testtedBlobable) {
            doTestBlobable();
        }       
        if (blobable) {
            return Hibernate.createBlob(bytes);
        } else {
            return new javax.sql.rowset.serial.SerialBlob(bytes);
        }       
    }
}


.

Code:
public class TestTable {

    private String id;
    private Blob blobContent;

    public TestTable() {
    }

    public Blob getBlobContent() {
        return blobContent;
    }

    public void setBlobContent(Blob blobContent) {
        this.blobContent = blobContent;
    }

    public String getId() {
        return this.id;
    }

    public void setId(String id) {
        this.id = id;
    }
}


TestTable.hbm.xml

Code:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
           "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!-- Generated Nov 25, 2010 2:44:05 PM by Hibernate Tools 3.2.1.GA -->
<hibernate-mapping>
  <class name="com.perppos.hibernate.entities.TestTable" table="TEST_TABLE">
    <id name="id" type="string">
      <column name="ID"/>
      <generator class="assigned"/>
    </id>
    <property name="blobContent" type="blob">
      <column name="BLOB_CONTENT"/>
    </property>
  </class>
</hibernate-mapping>


Top
 Profile  
 
Display posts from previous:  Sort by  
Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 10 posts ] 

All times are UTC - 5 hours [ DST ]


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum

Search for:
© Copyright 2014, Red Hat Inc. All rights reserved. JBoss and Hibernate are registered trademarks and servicemarks of Red Hat, Inc.