JUTableBinding.JUTableModel - misleading javadoc
In order to provide several custom functionalities to a data-bound JTable (multiple selection, filtering, sorting, etc.), I thought (and I was supported by the BC4J javadoc) that the best way to do it would be to extend JUTableBinding and its inner class JUTableModel.
The choice proved somewhat wrong, as I had to place my extended class in the same package oracle.jbo.uicli.jui (the constructor for JUTableModel having the default access specifier, and not "protected" as I would have expected). But I thought this was a miss and should be solved in 9.0.3 production.
This assumption also proved wrong and I found a related thread, Re: Legend in report region where the choice of extending these classes was discarded.
Here again, there seems to be a typo. Shailesh wrote: "Javadoc is wrong as you cannot subclass an inner class." I think the reason is in fact that its constructor is not protected, even though the class itself IS protected. Which made me believe in the first place that there was in fact a miss. Otherwise, why make a class explicitly protected, if you cannot extend it?
But the worst of all is the javadoc, where is clearly stated for JUTableBinding, even in 9.0.3, I quote:
A lightweight TableModel that implements binding a javax.swing.JTable to a RowIterator for a BC4J ViewObject.
Applications should subclass this binding and return a subclass of JUTableModel that can:
Although it seems amazing to me not to be allowed to extend these classes (all the other bindings being just OK), this should be very clearly stated, and not hidden in an oldy post on OTN.
Is there a hidden reason for this approach, or one that I'm missing?
Regards,
Adrian
In order to provide several custom functionalities to a data-bound JTable (multiple selection, filtering, sorting, etc.), I thought (and I was supported by the BC4J javadoc) that the best way to do it would be to extend JUTableBinding and its inner class JUTableModel.(p.s. Finally I was able to get to this thread again. I new I saw it a while back)
We've suggested filtering (delegation) rather than inheritence for JUTableBinding's TableModel as the inbuilt TableModel is too tied in functionality to 'JUTableBinding'. Our initial attempts to allow inheritence led to lots of complications - "pretty much override all the methods" kind of implementation and that forced us to decide to go with delegation in this case.
We did post on OTN an example of how to implement client-side Table sorting based on this model. Also in JDev 903, the inbuilt sort functionality uses this model rather than to extend the existing JUTableModel.
The choice proved somewhat wrong, as I had to place my extended class in the same package oracle.jbo.uicli.jui (the constructor for JUTableModel having the default access specifier, and not "protected" as I would have expected). But I thought this was a miss and should be solved in 9.0.3 production.
This assumption also proved wrong and I found a related thread, Re: Legend in report region where the choice of extending these classes was discarded.
Here again, there seems to be a typo. Shailesh wrote: "Javadoc is wrong as you cannot subclass an inner class." I think the reason is in fact that its constructor is not protected, even though the class itself IS protected. Which made me believe in the first place that there was in fact a miss. Otherwise, why make a class explicitly protected, if you cannot extend it?
That was the original intention, but we backed out of it.
But the worst of all is the javadoc, where is clearly stated for JUTableBinding, even in 9.0.3, I quote:
A lightweight TableModel that implements binding a javax.swing.JTable to a RowIterator for a BC4J ViewObject.
Applications should subclass this binding and return a subclass of JUTableModel that can:
Although it seems amazing to me not to be allowed to extend these classes (all the other bindings being just OK), this should be very clearly stated, and not hidden in an oldy post on OTN.
Is there a hidden reason for this approach, or one that I'm missing?We will fix the javadoc in our next iteration.
Thanks again for your continued feedback.
Regards,
Adrian
Similar Messages
-
Problem extending JUTableBinding
I tried to extend the JUTableBinding to expand the functionallity of the getValueAt()-method from the inner JUTableModel class. In doing so i encountered the problem that i can't extend the JUTableModel inner-class correctly cos its constructur is only package visible. But this should be possible imo as the javadoc of JUTableBinding states it. Is there another way realizing this?
Regards,
SteffenHello,
the sample given shows how to set up a sorting model on top of the existing Table model. In opposition to this i want to overwrite existing methods from the JUTableModel of the JUTableBinding, as there are getValueAt() and setValueAt(). Imo this has to be done via extending the JUTableBinding and its inner-class JUTableModel. This way of doing is also written down in the javadoc of the JUTableBinding:
* Applications should subclass this binding and return a subclass of
* JUTableModel that can:
* <ul>
* <li>Perform application-specific sorting of rows displayed in a JTable.</li>
* <li>Dynamically display/hide certain columns based on user preferences or application logic.</li>
This leads to my still unsolved problem, cos i can't extend the JUTableModel inner-class correctly cos its constructur is only package visible.
Is there an other way doing this, or is the visibility set wrong in JUTableModel?Javadoc is wrong as you cannot subclass an inner class.
You should be able to "override" get/setValueAt for the model behind a JTable with the earlier approach defined in the other thread regarding sorting model. Simply implement get/setValueAt in the "filtering" model and delgate the rest to the inner JUTableModel. -
Hi all
I have looked at Steve and Franks Different Examples on this subject and have as yet not been able to implement right.
in some instances i have been able to get it to change in the database but not in the column ie does not render the value back
out problem is that the LOV databound drop down must display the name column but return the id coulum to the table
i have included the code below if you would like to take a look thanks
George
We are really gettin stuck now with this little issue. i mean i find it very strange that it is not documneted surely this is a regular requirment.
import com.toedter.calendar.JDateChooser;
import java.awt.*;
import javax.swing.*;
import java.text.SimpleDateFormat;
import java.util.Date;
import javax.swing.table.DefaultTableCellRenderer;
import javax.swing.table.TableColumn;
import oracle.jbo.domain.Number;
import oracle.jbo.uicli.jui.*;
import oracle.jbo.uicli.controls.*;
import oracle.jbo.uicli.binding.*;
import oracle.jdeveloper.layout.*;
import oracle.adf.model.*;
import oracle.adf.model.binding.*;
import java.util.ArrayList;
import javax.swing.table.TableCellEditor;
import javax.swing.table.TableCellRenderer;
import java.awt.Dimension;
import javax.swing.JPanel;
import java.awt.Rectangle;
import oracle.jdeveloper.layout.PaneLayout;
import oracle.jdeveloper.layout.PaneConstraints;
import javax.swing.JScrollPane;
import javax.swing.JList;
import javax.swing.ListModel;
import javax.swing.JTable;
import javax.swing.table.TableModel;
import javax.swing.JTextField;
import javax.swing.text.Document;
import javax.swing.JComboBox;
import javax.swing.ComboBoxModel;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import portaluniverse.ardcs2.model.am.common.InventoryService;
import portaluniverse.ardcs2.model.dao.FareProfileViewRowImpl;
import javax.swing.JButton;
import javax.swing.ButtonModel;
import javax.swing.event.CellEditorListener;
import java.util.EventObject;
import oracle.jbo.uicli.controls.JULabel;
import oracle.jbo.uicli.jui.JULabelBinding;
public class SchedulesPanel extends JPanel implements JUPanel {
// Panel binding definition used by design time
private JUPanelBinding panelBinding = new JUPanelBinding("SchedulesPanelUIModel");
private JPanel jPanel1 = new JPanel();
private JPanel jPanel2 = new JPanel();
private PaneLayout paneLayout1 = new PaneLayout();
private JScrollPane jScrollPane1 = new JScrollPane();
private JList jList1 = new JList();
private JScrollPane jScrollPane2 = new JScrollPane();
private JTable jTable1 = new JTable();
private JTextField jTextField1 = new JTextField();
private JComboBox jComboBox1 = new JComboBox();
private JTextField jTextField2 = new JTextField();
private JTextField jTextField3 = new JTextField();
private JButton jButton1 = new JButton();
private JButton jButton2 = new JButton();
private JButton jButton3 = new JButton();
private JULabel jULabel1 = new JULabel();
private JULabel jULabel2 = new JULabel();
private JULabel jULabel3 = new JULabel();
private JULabel jULabel4 = new JULabel();
private JComboBox day1Com = new JComboBox();
* The default constructor for panel
public SchedulesPanel() {
* the JbInit method
public void jbInit() throws Exception {
this.setLayout(paneLayout1);
this.setSize(new Dimension(902, 616));
jPanel1.setSize(new Dimension(396, 274));
jPanel1.setLayout(null);
jPanel2.setLayout(null);
jScrollPane1.setBounds(new Rectangle(12, 55, 220, 545));
jScrollPane2.setBounds(new Rectangle(15, 240, 600, 265));
jTextField1.setText("jTextField1");
jTextField1.setBounds(new Rectangle(280, 35, 125, 20));
jComboBox1.setBounds(new Rectangle(280, 75, 125, 20));
jTextField2.setText("jTextField2");
jTextField2.setBounds(new Rectangle(280, 120, 125, 20));
jTextField3.setText("jTextField3");
jTextField3.setBounds(new Rectangle(280, 165, 125, 20));
jScrollPane1.getViewport().add(jList1, null);
jPanel1.add(jButton1, null);
jPanel1.add(jScrollPane1, null);
jPanel2.add(jULabel4, null);
jPanel2.add(jULabel3, null);
jPanel2.add(jULabel2, null);
jPanel2.add(jULabel1, null);
jPanel2.add(jButton3, null);
jPanel2.add(jButton2, null);
jPanel2.add(jTextField3, null);
jPanel2.add(jTextField2, null);
jPanel2.add(jComboBox1, null);
jPanel2.add(jTextField1, null);
jScrollPane2.getViewport().add(jTable1, null);
jPanel2.add(jScrollPane2, null);
this.add(jPanel1, new PaneConstraints("jPanel1", "jPanel1", PaneConstraints.ROOT, 0.5f));
this.add(jPanel2, new PaneConstraints("jPanel2", "jPanel1", PaneConstraints.RIGHT, 0.695f));
jList1.setModel((ListModel)panelBinding.bindUIControl("ScheduleView1", jList1));
jTable1.setModel((TableModel)panelBinding.bindUIControl("ScheduleView2", jTable1));
jTextField1.setDocument((Document)panelBinding.bindUIControl("FlightNo", jTextField1));
jComboBox1.setModel((ComboBoxModel)panelBinding.bindUIControl("SectorId", jComboBox1));
jTextField2.setDocument((Document)panelBinding.bindUIControl("DepartTime", jTextField2));
jTextField3.setDocument((Document)panelBinding.bindUIControl("ArriveTime", jTextField3));
jButton1.setBounds(new Rectangle(80, 15, 73, 23));
jButton1.setText("jButton1");
jButton1.setModel((ButtonModel)panelBinding.bindUIControl("Create", jButton1));
jButton1.setText("Create");
* Create a colum so that we can add a custon button to that column.
TableColumn splitCl = new TableColumn();
jButton3.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
jButton3_actionPerformed(e);
jButton3.setBounds(new Rectangle(210, 555, 73, 23));
jButton3.setText("jButton3");
jButton2.setBounds(new Rectangle(45, 535, 73, 23));
jButton2.setText("jButton2");
jScrollPane2.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
splitCl.setHeaderValue("");
splitCl.setCellRenderer(new SplitButtonCellRenderer());
splitCl.setCellEditor(new SplitButtonCellEditor());
jTable1.addColumn(splitCl);
for(int i = 0; i == 7; i++){
jTable1.getColumnModel().getColumn(i).setPreferredWidth(-1);
jTable1.getColumnModel().getColumn(7).setPreferredWidth(250);
jTable1.getColumnModel().getColumn(8).setPreferredWidth(250);
jTable1.getColumnModel().getColumn(9).setPreferredWidth(100);
jButton2.setModel((ButtonModel)panelBinding.bindUIControl("Commit", jButton2));
jButton2.setText("Commit");
jULabel4.setBounds(new Rectangle(75, 120, 205, 20));
jULabel4.setText("jULabel4");
jULabel3.setBounds(new Rectangle(75, 165, 205, 20));
jULabel3.setText("jULabel3");
jULabel2.setBounds(new Rectangle(75, 75, 205, 20));
jULabel2.setText("jULabel2");
jULabel1.setBounds(new Rectangle(75, 35, 205, 20));
jULabel1.setText("jULabel1");
jULabel1.setText(panelBinding.findCtrlValueBinding("FlightNo1").getLabel());
jULabel2.setText(panelBinding.findCtrlValueBinding("SectorId1").getLabel());
jULabel3.setText(panelBinding.findCtrlValueBinding("DepartTime1").getLabel());
jULabel4.setText(panelBinding.findCtrlValueBinding("ArriveTime1").getLabel());
day1Com.setModel((ComboBoxModel)panelBinding.bindUIControl("Day1ComboBox", day1Com));
TableColumn day1Column = jTable1.getColumnModel().getColumn(0);
day1Column.setCellRenderer(new Day1RendererClass());
// day1Column.setCellEditor(new DefaultCellEditor(day1Com));
DefaultCellEditor df = new DefaultCellEditor(day1Com);
// day1Column.setCellEditor(new DefaultCellEditor(day1Com));
day1Column.setCellEditor(new Day1EditorClass());
public static void main(String [] args) {
try {
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
} catch(Exception exemp) {
exemp.printStackTrace();
SchedulesPanel panel = new SchedulesPanel();
panel.setBindingContext(JUTestFrame.startTestFrame("DataBindings.cpx", "null", panel, panel.getPanelBinding(), new Dimension(1024, 680)));
panel.revalidate();
* JUPanel implementation
public JUPanelBinding getPanelBinding() {
return panelBinding;
private void unRegisterProjectGlobalVariables(BindingContext bindCtx) {
JUUtil.unRegisterNavigationBarInterface(panelBinding, bindCtx);
private void registerProjectGlobalVariables(BindingContext bindCtx) {
JUUtil.registerNavigationBarInterface(panelBinding, bindCtx);
public void setBindingContext(BindingContext bindCtx) {
if (panelBinding.getPanel() == null) {
panelBinding = panelBinding.setup(bindCtx, this);
registerProjectGlobalVariables(bindCtx);
panelBinding.refreshControl();
try {
jbInit();
panelBinding.refreshControl();
} catch(Exception ex) {
panelBinding.reportException(ex);
* This class is used to add the button to the table.
class SplitButtonCellRenderer implements TableCellRenderer{
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
JButton splitButton = new JButton("Split");
return splitButton;
* This class is used to override the cell editor and create a button in the cell
class SplitButtonCellEditor implements TableCellEditor{
public void cancelCellEditing() {
// TODO: Implement this javax.swing.CellEditor abstract method
public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int row, int column) {
JButton splitButton = new JButton("Split");
final String effectiveDate = table.getValueAt(row,7).toString();
final String endDate = table.getValueAt(row,8).toString();
splitButton.addActionListener( new ActionListener() {
public void actionPerformed(ActionEvent e){
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
try {
Date effectiveDateD = sdf.parse(effectiveDate);
Date endDateD = sdf.parse(endDate);
* Custom login to check that the dates are in valid time period
* first date Not < start
* > end
boolean cont= false;
do{
SplitDialogForSchedulesPanel sp1 = new SplitDialogForSchedulesPanel(null,"Split Schedule",true);
sp1.show();
JDateChooser newStartDateS = sp1.dateChooser1;
JDateChooser newEndDateS = sp1.dateChooser2;
Date newStartDate =newStartDateS.getDate();
Date newEndDate = newEndDateS.getDate();
// boolean a = (newStartDate.getTime() < newEndDate.getTime());
// a = (newStartDate.getTime() > effectiveDateD.getTime());
// a = (newStartDate.getTime() < endDateD.getTime());
// a = (newEndDate.getTime() > effectiveDateD.getTime());
// a = (newEndDate.getTime() < endDateD.getTime());
// if((newStartDate.getTime() < newEndDate.getTime()) &&(newStartDate.getTime() > effectiveDateD.getTime()) && (newStartDate.getTime() < endDateD.getTime()) && (newEndDate.getTime() > effectiveDateD.getTime()) && (newEndDate.getTime() < endDateD.getTime()) ){
((InventoryService)panelBinding.getDataControl().getApplicationModule()).splitSchedules(newStartDate, newEndDate);
cont = true;
}while(!cont);
// ((InventoryService)panelBinding.getDataControl().getApplicationModule()).setNamesForSchedules();
catch (Exception f) {
return splitButton;
public Object getCellEditorValue() { return null; }
public boolean isCellEditable(EventObject anEvent) { return true; }
public void removeCellEditorListener(CellEditorListener l) {
// TODO: Implement this javax.swing.CellEditor abstract method
public boolean shouldSelectCell(EventObject anEvent) {
// TODO: Implement this javax.swing.CellEditor abstract method
return true;
public boolean stopCellEditing() {
// TODO: Implement this javax.swing.CellEditor abstract method
return false;
public void addCellEditorListener(CellEditorListener l) {
// TODO: Implement this javax.swing.CellEditor abstract method
private void jButton3_actionPerformed(ActionEvent e) {
((InventoryService)panelBinding.getDataControl().getApplicationModule()).commitOnSchedule();
* Overriden class for day 1 so that a combo box can be displayed
public class Day1RendererClass extends DefaultTableCellRenderer{
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
JComboBox day1Combo = new JComboBox();
System.out.println("VAL ==== "+value);
System.out.println(value.getClass().getName());
day1Combo.addItem(((FareProfileViewRowImpl)day1Com.getSelectedItem()).getName());
day1Combo.setSelectedItem(((FareProfileViewRowImpl)day1Com.getSelectedItem()).getName());
return day1Combo;
public class Day1EditorClass implements TableCellEditor{
// JComboBox day1Combo = new JComboBox();
public void addCellEditorListener(CellEditorListener l) {
public void cancelCellEditing() {
public Object getCellEditorValue() {
// try {
// return new Number(((FareProfileViewRowImpl)day1Com.getSelectedItem()).getId().toString());
// catch (Exception e) {
return ((FareProfileViewRowImpl)day1Com.getSelectedItem()).getName();
public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int row, int column) {
JComboBox com = day1Com;
// com.setModel((ComboBoxModel)panelBinding.bindUIControl("Day1ComboBox", com));
return com;
public boolean isCellEditable(EventObject anEvent) {
return true;
public void removeCellEditorListener(CellEditorListener l) {
public boolean shouldSelectCell(EventObject anEvent) {
return true;
public boolean stopCellEditing() {
return false;
Please not this is the entire source of the class
thanks
please help would really be appreciatedok i have implemented steves example
the problem is that the combobox is returning type row that is the row that it bound via the vo bound to the LOV.
it should be returnin number.
so i can select the drop down but when i click on and option i get
oracle.jbo.domain.DataCreationException: JBO-25009: Cannot create an object of type:oracle.jbo.domain.Number with value:portaluniverse.ardcs2.model.dao.FareProfileViewRowImpl@2
at oracle.jbo.domain.TypeFactory.get(TypeFactory.java:747)
at oracle.jbo.domain.TypeFactory.getInstance(TypeFactory.java:85)
at oracle.jbo.server.AttributeDefImpl.convertToJava(AttributeDefImpl.java:1339)
at oracle.jbo.server.ViewRowImpl.setAttribute(ViewRowImpl.java:832)
at oracle.adf.model.binding.DCDataControl.setAttributeInRow(DCDataControl.java:1745)
at oracle.adf.model.bc4j.DCJboDataControl.setAttributeInRow(DCJboDataControl.java:1548)
at oracle.jbo.uicli.binding.JUCtrlValueBinding.setAttributeInRow(JUCtrlValueBinding.java:615)
at oracle.jbo.uicli.binding.JUCtrlValueBinding.setAttributeInRow(JUCtrlValueBinding.java:523)
at oracle.jbo.uicli.jui.JUTableBinding$JUTableModel.setValueAt(JUTableBinding.java:1219)
at oracle.jbo.uicli.jui.JUTableBinding.setValueAt(JUTableBinding.java:654)
at oracle.jbo.uicli.jui.JUTableSortModel.setValueAt(JUTableSortModel.java:555)
at javax.swing.JTable.setValueAt(JTable.java:1794)
at javax.swing.JTable.editingStopped(JTable.java:3167)
at portaluniverse.ardcs2.gui.inventory.SchedulesPanel$1.editingStopped(SchedulesPanel.java:70)
at javax.swing.AbstractCellEditor.fireEditingStopped(AbstractCellEditor.java:124)
at javax.swing.DefaultCellEditor$EditorDelegate.stopCellEditing(DefaultCellEditor.java:329)
at javax.swing.DefaultCellEditor$3.stopCellEditing(DefaultCellEditor.java:139)
at javax.swing.DefaultCellEditor.stopCellEditing(DefaultCellEditor.java:214)
at javax.swing.DefaultCellEditor$EditorDelegate.actionPerformed(DefaultCellEditor.java:346)
at javax.swing.JComboBox.fireActionEvent(JComboBox.java:1197)
at javax.swing.JComboBox.setSelectedItem(JComboBox.java:561)
at javax.swing.JComboBox.setSelectedIndex(JComboBox.java:597)
at javax.swing.plaf.basic.BasicComboPopup$ListMouseHandler.mouseReleased(BasicComboPopup.java:749)
at java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:232)
at java.awt.Component.processMouseEvent(Component.java:5100)
at javax.swing.plaf.basic.BasicComboPopup$2.processMouseEvent(BasicComboPopup.java:452)
at java.awt.Component.processEvent(Component.java:4897)
at java.awt.Container.processEvent(Container.java:1569)
at java.awt.Component.dispatchEventImpl(Component.java:3615)
at java.awt.Container.dispatchEventImpl(Container.java:1627)
at java.awt.Component.dispatchEvent(Component.java:3477)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:3483)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3198)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3128)
at java.awt.Container.dispatchEventImpl(Container.java:1613)
at java.awt.Window.dispatchEventImpl(Window.java:1606)
at java.awt.Component.dispatchEvent(Component.java:3477)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:456)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:151)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:145)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:137)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:100)
## Detail 0 ##
java.lang.NumberFormatException: For input string: "rse.ardcs2.model.dao.FareProfileViewRowImpl@2"
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
at java.lang.Integer.parseInt(Integer.java:468)
at java.lang.Integer.parseInt(Integer.java:518)
at java.math.BigDecimal.<init>(BigDecimal.java:207)
at oracle.jbo.domain.Number.<init>(Number.java:286)
at sun.reflect.GeneratedConstructorAccessor3.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:274)
at oracle.jbo.domain.TypeConvMapEntry.convert(TypeConvMapEntry.java:73)
at oracle.jbo.domain.TypeFactory.get(TypeFactory.java:715)
at oracle.jbo.domain.TypeFactory.getInstance(TypeFactory.java:85)
at oracle.jbo.server.AttributeDefImpl.convertToJava(AttributeDefImpl.java:1339)
at oracle.jbo.server.ViewRowImpl.setAttribute(ViewRowImpl.java:832)
at oracle.adf.model.binding.DCDataControl.setAttributeInRow(DCDataControl.java:1745)
at oracle.adf.model.bc4j.DCJboDataControl.setAttributeInRow(DCJboDataControl.java:1548)
at oracle.jbo.uicli.binding.JUCtrlValueBinding.setAttributeInRow(JUCtrlValueBinding.java:615)
at oracle.jbo.uicli.binding.JUCtrlValueBinding.setAttributeInRow(JUCtrlValueBinding.java:523)
at oracle.jbo.uicli.jui.JUTableBinding$JUTableModel.setValueAt(JUTableBinding.java:1219)
at oracle.jbo.uicli.jui.JUTableBinding.setValueAt(JUTableBinding.java:654)
at oracle.jbo.uicli.jui.JUTableSortModel.setValueAt(JUTableSortModel.java:555)
at javax.swing.JTable.setValueAt(JTable.java:1794)
at javax.swing.JTable.editingStopped(JTable.java:3167)
at portaluniverse.ardcs2.gui.inventory.SchedulesPanel$1.editingStopped(SchedulesPanel.java:70)
at javax.swing.AbstractCellEditor.fireEditingStopped(AbstractCellEditor.java:124)
at javax.swing.DefaultCellEditor$EditorDelegate.stopCellEditing(DefaultCellEditor.java:329)
at javax.swing.DefaultCellEditor$3.stopCellEditing(DefaultCellEditor.java:139)
at javax.swing.DefaultCellEditor.stopCellEditing(DefaultCellEditor.java:214)
at javax.swing.DefaultCellEditor$EditorDelegate.actionPerformed(DefaultCellEditor.java:346)
at javax.swing.JComboBox.fireActionEvent(JComboBox.java:1197)
at javax.swing.JComboBox.setSelectedItem(JComboBox.java:561)
at javax.swing.JComboBox.setSelectedIndex(JComboBox.java:597)
at javax.swing.plaf.basic.BasicComboPopup$ListMouseHandler.mouseReleased(BasicComboPopup.java:749)
at java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:232)
at java.awt.Component.processMouseEvent(Component.java:5100)
at javax.swing.plaf.basic.BasicComboPopup$2.processMouseEvent(BasicComboPopup.java:452)
at java.awt.Component.processEvent(Component.java:4897)
at java.awt.Container.processEvent(Container.java:1569)
at java.awt.Component.dispatchEventImpl(Component.java:3615)
at java.awt.Container.dispatchEventImpl(Container.java:1627)
at java.awt.Component.dispatchEvent(Component.java:3477)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:3483)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3198)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3128)
at java.awt.Container.dispatchEventImpl(Container.java:1613)
at java.awt.Window.dispatchEventImpl(Window.java:1606)
at java.awt.Component.dispatchEvent(Component.java:3477)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:456)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:151)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:145)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:137)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:100)
thanks
George -
How to remove a row from JTable
Hi!
I'm used to remove rows from JTables getting the model and doing a removeRow(num) like this:
((DefaultTableModel)jTable1.getModel()).removeRow(0);
But with ADF and JDeveloper the model says it's a JUTableBinding.JUTableModel but its not accessible.
How to remove a row in Jdeveloper 10.1.3.4.0?Or maybe is just better to refresh data in the jTable but I do not know either like doing it.
-
Jclient error: java.sql.SQLException: OALL8 is in an inconsistent state
Dear all,
who can help us about java.sql.SQLException: OALL8 is in an inconsistent state.
Our application system is build for Jdeveloper 10.1.2 with JClient+BC4J
and be deploy on 2-tier application architecture(through Web Start) , and the database is oracle 9.2.0.1
In sometime the application running, our user will got these error response message that is like following , please kindly give us a direction to solve this problem .
oracle.jbo.DMLException: JBO-26044: ¨ú±oµøÆ[ªíª«¥ó ReportPhraseBasicView1, ±Ôz¥y SELECT count(1) FROM (SELECT ReportPhraseBasic.HOSPITALCODE, ReportPhraseBasic.USERCODE, ReportPhraseBasic.PHRASECODE, ReportPhraseBasic.PHRASECONTEXT, ReportPhraseBasic.CREATED_BY, ReportPhraseBasic.CREATION_DATE, ReportPhraseBasic.LAST_UPDATED_BY, ReportPhraseBasic.LAST_UPDATE_DATE, ReportPhraseBasic.MARK FROM REPORT_PHRASE_BASIC ReportPhraseBasic WHERE (USERCODE = '006583') AND ( ( (ReportPhraseBasic.PHRASECODE LIKE '%') ) )) ªº¦ôp¸ê®Æ¦Cp¼Æ®Éµo¥Í¿ù»~.
at oracle.jbo.server.ViewObjectImpl.getQueryHitCount(ViewObjectImpl.java:2101)
at oracle.jbo.server.ViewObjectImpl.getQueryHitCount(ViewObjectImpl.java:2043)
at oracle.jbo.server.QueryCollection.getEstimatedRowCount(QueryCollection.java:2170)
at oracle.jbo.server.ViewRowSetImpl.getEstimatedRowCount(ViewRowSetImpl.java:1824)
at oracle.jbo.server.ViewObjectImpl.getEstimatedRowCount(ViewObjectImpl.java:5624)
at oracle.adf.model.bc4j.DCJboDataControl.getEstimatedRowCount(DCJboDataControl.java:925)
at oracle.adf.model.binding.DCIteratorBinding.getEstimatedRowCount(DCIteratorBinding.java:2526)
at oracle.jbo.uicli.binding.JUCtrlRangeBinding.getEstimatedRowCount(JUCtrlRangeBinding.java:101)
at oracle.jbo.uicli.jui.JUTableBinding$JUTableModel.getRowCount(JUTableBinding.java:1099)
at oracle.jbo.uicli.jui.JUTableBinding.getRowCount(JUTableBinding.java:618)
at oracle.jbo.uicli.jui.JUTableSortModel.getRowCount(JUTableSortModel.java:560)
at javax.swing.JTable.getRowCount(Unknown Source)
at javax.swing.JTable.valueChanged(Unknown Source)
at javax.swing.DefaultListSelectionModel.fireValueChanged(Unknown Source)
at javax.swing.DefaultListSelectionModel.fireValueChanged(Unknown Source)
at javax.swing.DefaultListSelectionModel.fireValueChanged(Unknown Source)
at javax.swing.DefaultListSelectionModel.changeSelection(Unknown Source)
at javax.swing.DefaultListSelectionModel.changeSelection(Unknown Source)
at javax.swing.DefaultListSelectionModel.removeSelectionInterval(Unknown Source)
at javax.swing.DefaultListSelectionModel.clearSelection(Unknown Source)
at oracle.jbo.uicli.jui.SortedListSelectionModel.clearSelection(JUTableSortModel.java:747)
at javax.swing.JTable.clearSelection(Unknown Source)
at javax.swing.JTable.tableChanged(Unknown Source)
at javax.swing.table.AbstractTableModel.fireTableChanged(Unknown Source)
at oracle.jbo.uicli.jui.JUTableSortModel.tableChanged(JUTableSortModel.java:177)
at javax.swing.table.AbstractTableModel.fireTableChanged(Unknown Source)
at javax.swing.table.AbstractTableModel.fireTableDataChanged(Unknown Source)
at oracle.jbo.uicli.jui.JUTableBinding$JUTableModel.fireTableDataChangedRestoreSelection(JUTableBinding.java:763)
at oracle.jbo.uicli.jui.JUTableBinding$JUTableModel._refreshLater(JUTableBinding.java:989)
at oracle.jbo.uicli.jui.JUTableBinding$JUTableModel.access$7000971(JUTableBinding.java:700)
at oracle.jbo.uicli.jui.JUTableBinding$1.run(JUTableBinding.java:940)
at java.awt.event.InvocationEvent.dispatch(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
## Detail 0 ##
java.sql.SQLException: OALL8 is in an inconsistent state.
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:124)
at oracle.jdbc.driver.T4C8Oall.init(T4C8Oall.java:308)
at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:166)
at oracle.jdbc.driver.T4CPreparedStatement.execute_for_describe(T4CPreparedStatement.java:661)
at oracle.jdbc.driver.OracleStatement.execute_maybe_describe(OracleStatement.java:893)
at oracle.jdbc.driver.T4CPreparedStatement.execute_maybe_describe(T4CPreparedStatement.java:693)
at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:988)
at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:2884)
at oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:2925)
at oracle.jbo.server.ViewObjectImpl.getQueryHitCount(ViewObjectImpl.java:2083)
at oracle.jbo.server.ViewObjectImpl.getQueryHitCount(ViewObjectImpl.java:2043)
at oracle.jbo.server.QueryCollection.getEstimatedRowCount(QueryCollection.java:2170)
at oracle.jbo.server.ViewRowSetImpl.getEstimatedRowCount(ViewRowSetImpl.java:1824)
at oracle.jbo.server.ViewObjectImpl.getEstimatedRowCount(ViewObjectImpl.java:5624)
at oracle.adf.model.bc4j.DCJboDataControl.getEstimatedRowCount(DCJboDataControl.java:925)
at oracle.adf.model.binding.DCIteratorBinding.getEstimatedRowCount(DCIteratorBinding.java:2526)
at oracle.jbo.uicli.binding.JUCtrlRangeBinding.getEstimatedRowCount(JUCtrlRangeBinding.java:101)
at oracle.jbo.uicli.jui.JUTableBinding$JUTableModel.getRowCount(JUTableBinding.java:1099)
at oracle.jbo.uicli.jui.JUTableBinding.getRowCount(JUTableBinding.java:618)
at oracle.jbo.uicli.jui.JUTableSortModel.getRowCount(JUTableSortModel.java:560)
at javax.swing.JTable.getRowCount(Unknown Source)
at javax.swing.JTable.valueChanged(Unknown Source)
at javax.swing.DefaultListSelectionModel.fireValueChanged(Unknown Source)
at javax.swing.DefaultListSelectionModel.fireValueChanged(Unknown Source)
at javax.swing.DefaultListSelectionModel.fireValueChanged(Unknown Source)
at javax.swing.DefaultListSelectionModel.changeSelection(Unknown Source)
at javax.swing.DefaultListSelectionModel.changeSelection(Unknown Source)
at javax.swing.DefaultListSelectionModel.removeSelectionInterval(Unknown Source)
at javax.swing.DefaultListSelectionModel.clearSelection(Unknown Source)
at oracle.jbo.uicli.jui.SortedListSelectionModel.clearSelection(JUTableSortModel.java:747)
at javax.swing.JTable.clearSelection(Unknown Source)
at javax.swing.JTable.tableChanged(Unknown Source)
at javax.swing.table.AbstractTableModel.fireTableChanged(Unknown Source)
at oracle.jbo.uicli.jui.JUTableSortModel.tableChanged(JUTableSortModel.java:177)
at javax.swing.table.AbstractTableModel.fireTableChanged(Unknown Source)
at javax.swing.table.AbstractTableModel.fireTableDataChanged(Unknown Source)
at oracle.jbo.uicli.jui.JUTableBinding$JUTableModel.fireTableDataChangedRestoreSelection(JUTableBinding.java:763)
at oracle.jbo.uicli.jui.JUTableBinding$JUTableModel._refreshLater(JUTableBinding.java:989)
at oracle.jbo.uicli.jui.JUTableBinding$JUTableModel.access$7000971(JUTableBinding.java:700)
at oracle.jbo.uicli.jui.JUTableBinding$1.run(JUTableBinding.java:940)
at java.awt.event.InvocationEvent.dispatch(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
==============
oracle.jbo.SQLStmtException: JBO-27122: Protocol Violation: SELECT Reportbasic.HOSPITALCODE, Reportbasic.REPORTSEQNO, Reportbasic.VERSION, Reportbasic.EXAM, Reportbasic.IMPRESSION, Reportbasic.DICTATE_SEQ, Reportbasic.DICTATEDATE, Reportbasic.DICTATOR, Reportbasic.DICTATORNAME, Reportbasic.REPORTDATE, Reportbasic.REPORTDR_VS, Reportbasic.REPORTNAME_VS, Reportbasic.REPORTDR_RESIDENT, Reportbasic.REPORTNAME_RESIDENT, Reportbasic.REPORTDR_CONSIDER, Reportbasic.REPORTNAME_CONSIDER, Reportbasic.APPROVEDATE, Reportbasic.APPROVEDR, Reportbasic.APPROVENAME, Reportbasic.FINISH_FLAG, Reportbasic.OFFICIALFLAG, Reportbasic.EXAMTEXT, Reportbasic.IMPRESSIONTEXT, Reportbasic.STATUS, Reportbasic.TRANSMIT_NEEDED, Reportbasic.REMARK, Reportbasic.CREATED_BY, Reportbasic.CREATION_DATE, Reportbasic.LAST_UPDATED_BY, Reportbasic.LAST_UPDATE_DATE, Reportbasic.EDUCATIONTYPE, Reportbasic.EDUCATIONCODE, Reportbasic.CODINGOPER, Reportbasic.CODINGDATE, Reportbasic.ACCESSNO FROM REPORTBASIC Reportbasic WHERE Reportbasic.REPORTSEQNO = :1
at oracle.jbo.server.QueryCollection.buildResultSet(QueryCollection.java:774)
at oracle.jbo.server.QueryCollection.executeQuery(QueryCollection.java:547)
at oracle.jbo.server.ViewObjectImpl.executeQueryForCollection(ViewObjectImpl.java:3422)
at oracle.jbo.server.ViewRowSetImpl.execute(ViewRowSetImpl.java:663)
at oracle.jbo.server.ViewRowSetImpl.execute(ViewRowSetImpl.java:617)
at oracle.jbo.server.ViewRowSetIteratorImpl.ensureRefreshed(ViewRowSetIteratorImpl.java:2593)
at oracle.jbo.server.ViewRowSetIteratorImpl.refresh(ViewRowSetIteratorImpl.java:2850)
at oracle.jbo.server.ViewRowSetImpl.notifyRefresh(ViewRowSetImpl.java:1941)
at oracle.jbo.server.ViewRowSetImpl.refreshRowSet(ViewRowSetImpl.java:4094)
at oracle.jbo.server.ViewRowSetIteratorImpl.notifyDetailRowSets(ViewRowSetIteratorImpl.java:3300)
at oracle.jbo.server.ViewRowSetIteratorImpl.notifyNavigation(ViewRowSetIteratorImpl.java:3418)
at oracle.jbo.server.ViewRowSetIteratorImpl.internalSetCurrentRow(ViewRowSetIteratorImpl.java:3192)
at oracle.jbo.server.ViewRowSetIteratorImpl.setCurrentRowAtRangeIndex(ViewRowSetIteratorImpl.java:998)
at oracle.jbo.server.ViewRowSetImpl.setCurrentRowAtRangeIndex(ViewRowSetImpl.java:2569)
at oracle.jbo.server.ViewObjectImpl.setCurrentRowAtRangeIndex(ViewObjectImpl.java:6186)
at oracle.jbo.uicli.jui.JUTableBinding$JUTableModel.valueChanged(JUTableBinding.java:1274)
at javax.swing.DefaultListSelectionModel.fireValueChanged(Unknown Source)
at javax.swing.DefaultListSelectionModel.fireValueChanged(Unknown Source)
at javax.swing.DefaultListSelectionModel.setValueIsAdjusting(Unknown Source)
at oracle.jbo.uicli.jui.SortedListSelectionModel.setValueIsAdjusting(JUTableSortModel.java:777)
at javax.swing.plaf.basic.BasicTableUI$MouseInputHandler.setValueIsAdjusting(Unknown Source)
at javax.swing.plaf.basic.BasicTableUI$MouseInputHandler.mouseReleased(Unknown Source)
at java.awt.AWTEventMulticaster.mouseReleased(Unknown Source)
at java.awt.AWTEventMulticaster.mouseReleased(Unknown Source)
at java.awt.AWTEventMulticaster.mouseReleased(Unknown Source)
at java.awt.AWTEventMulticaster.mouseReleased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
## Detail 0 ##
java.sql.SQLException: ¹H¤Ï¨ó©w
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:124)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:161)
at oracle.jdbc.driver.DatabaseError.check_error(DatabaseError.java:884)
at oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:642)
at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:181)
at oracle.jdbc.driver.T4CPreparedStatement.execute_for_rows(T4CPreparedStatement.java:791)
at oracle.jdbc.driver.OracleStatement.execute_maybe_describe(OracleStatement.java:912)
at oracle.jdbc.driver.T4CPreparedStatement.execute_maybe_describe(T4CPreparedStatement.java:693)
at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:988)
at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:2884)
at oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:2925)
at oracle.jbo.server.QueryCollection.buildResultSet(QueryCollection.java:691)
at oracle.jbo.server.QueryCollection.executeQuery(QueryCollection.java:547)
at oracle.jbo.server.ViewObjectImpl.executeQueryForCollection(ViewObjectImpl.java:3422)
at oracle.jbo.server.ViewRowSetImpl.execute(ViewRowSetImpl.java:663)
at oracle.jbo.server.ViewRowSetImpl.execute(ViewRowSetImpl.java:617)
at oracle.jbo.server.ViewRowSetIteratorImpl.ensureRefreshed(ViewRowSetIteratorImpl.java:2593)
at oracle.jbo.server.ViewRowSetIteratorImpl.refresh(ViewRowSetIteratorImpl.java:2850)
at oracle.jbo.server.ViewRowSetImpl.notifyRefresh(ViewRowSetImpl.java:1941)
at oracle.jbo.server.ViewRowSetImpl.refreshRowSet(ViewRowSetImpl.java:4094)
at oracle.jbo.server.ViewRowSetIteratorImpl.notifyDetailRowSets(ViewRowSetIteratorImpl.java:3300)
at oracle.jbo.server.ViewRowSetIteratorImpl.notifyNavigation(ViewRowSetIteratorImpl.java:3418)
at oracle.jbo.server.ViewRowSetIteratorImpl.internalSetCurrentRow(ViewRowSetIteratorImpl.java:3192)
at oracle.jbo.server.ViewRowSetIteratorImpl.setCurrentRowAtRangeIndex(ViewRowSetIteratorImpl.java:998)
at oracle.jbo.server.ViewRowSetImpl.setCurrentRowAtRangeIndex(ViewRowSetImpl.java:2569)
at oracle.jbo.server.ViewObjectImpl.setCurrentRowAtRangeIndex(ViewObjectImpl.java:6186)
at oracle.jbo.uicli.jui.JUTableBinding$JUTableModel.valueChanged(JUTableBinding.java:1274)
at javax.swing.DefaultListSelectionModel.fireValueChanged(Unknown Source)
at javax.swing.DefaultListSelectionModel.fireValueChanged(Unknown Source)
at javax.swing.DefaultListSelectionModel.setValueIsAdjusting(Unknown Source)
at oracle.jbo.uicli.jui.SortedListSelectionModel.setValueIsAdjusting(JUTableSortModel.java:777)
at javax.swing.plaf.basic.BasicTableUI$MouseInputHandler.setValueIsAdjusting(Unknown Source)
at javax.swing.plaf.basic.BasicTableUI$MouseInputHandler.mouseReleased(Unknown Source)
at java.awt.AWTEventMulticaster.mouseReleased(Unknown Source)
at java.awt.AWTEventMulticaster.mouseReleased(Unknown Source)
at java.awt.AWTEventMulticaster.mouseReleased(Unknown Source)
at java.awt.AWTEventMulticaster.mouseReleased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)Seems its problem with the version of Oracle you are using ..See the following link,it provides you some additional info.
java.sql.SQLException: OALL8 is in an inconsistent state -
False sequence of ViewLinks "firing"
Hi!
We're still stuck with 9.03 Preview. But I hope it's more like a general question.
The structure of one of our AppModules looks very much like this:
AppModule
|
|- WorklistView
|
|- WorklistProxyView (via ViewLink)
|
|- ContextView (via ViewLink)
|
|- ImageView (via ViewLink)
|
|- RecipientsView (via ViewLink)
|
|- DemoView (via ViewLink)That's basically it.
The proxy was introduced so that during normal operation, the WorklistView has control over the other ViewObjects, and so that during a demo, a different ViewObject can take control. We do that by deleting the old ViewLink and creating a new one. This works fine.
The problem is this:
When I perform a search on the WorklistView, then (judging from the debug output) the sequence of "updates" is like this:
1. WorklistView
2. ContextView
3. ImageView
4. RecipientsView
5. DemoView
6. WorklistProxyView
7. ContextView
8. ImageView
9. RecipientsView
10. DemoView
I would have expected:
1. WorklistView
2. WorklistProxyView
3. ContextView
4. ImageView
5. RecipientsView
6. DemoView
The problem is that some ViewObjects are executed more than once which basically wrecks other functions that are using TableModelListeners to determine any changes. It seems that some ViewObjects do not wait for the proxy to update. When the proxy finally updates, all depending ViewObjects do an update again.
What could be the cause for such a behaviour?
That's how I perform the search:
public void performSearch()
if (!systemDescription.isSearchableTable())
return;
System.out.println( "Searching" );
ViewCriteria viewCriteria = viewObject.createViewCriteria();
searchTable.fillViewCriteria( viewCriteria );
if (viewCriteria.isEmpty())
viewCriteria = null;
if (viewObject != null)
viewObject.applyViewCriteria( viewCriteria );
viewObject.executeQuery();
viewObject.setCurrentRowAtRangeIndex( 0 );
panelBinding.executeIfNeeded();
}Where's the mistake?
Thanks in advance!
Sascha Herrmann
GE Medical SystemsThanks for your help, but our performSearch() does (almost) nothing else than executing the top-level VO. The JUPanelBinding is never set to find mode, since there's no user input. We create the ViewCriteriaRows programmatically.
The structure of our ViewObjects and ViewLinks is described above.
We use a single JUPanelBinding right now.
WorklistView: 4 JTables bound using JClient JUTableBindings + 2 JUActionBindings (for next/prev buttons).
ProxyView: 1 dummy JTextField bound using JUTextFieldBinding. This text field is never displayed. We just use it to "pin" the VO to the JUPanelBinding.
ContextView: some JULabelBindings.
ImageView: a JUTreeBinding.
The remaining VOs: one JTable each, using JUTableBindings.
Let me add the debug log created during a search. I removed some EntityCache warnings.
2002-11-26 13:21:13,486 [AWT-EventQueue-0] DEBUG - ENTERING SearchableTablePanel.performSearch
<3>[771] (7781) QueryCollection.createColumnList(1431) Column count: 39
<3>[772] (0) ViewObjectImpl.closeStatements(6545) ViewObject close prepared statements...
<3>[773] (0) ViewObjectImpl.getPreparedStatement(6450) ViewObject : Created new QUERY statement
<3>[774] (15) ViewObjectImpl.buildQuery(1468) SELECT PerformedProcedure.PERFORMED_PROCEDURE_ID, .....
WorklistView: executeQueryForCollection
<3>[775] (1172) EntityCache.add(220) EntityCache:add WARNING - ignoring row with no primary key
..... (several more, still unknown where they come from)
<3>[938] (0) EntityCache.add(220) EntityCache:add WARNING - ignoring row with no primary key
WorklistView: first!
ProxyView: executeQueryForCollection
ProxyView: first!
RecipientsView: executeQueryForCollection
RecipientsView: first!
ImageView: executeQueryForCollection
ImageView: first!
DemoView: executeQueryForCollection
DemoView: first!
ContextView: executeQueryForCollection
ContextView: first!
<3>[939] (31) ViewObjectImpl.clearQueryCollectionCache(3623) Clear QueryCollection in cache...
<3>[940] (0) QueryCollection.createColumnList(1431) Column count: 20
<3>[941] (15) ViewObjectImpl.getPreparedStatement(6436) ViewObject : Reusing defined prepared Statement
<3>[942] (0) ViewRowSetImpl.bindParameters(1306) Binding param 1: 65662
RecipientsView: executeQueryForCollection
RecipientsView: first!
<3>[945] (0) ViewObjectImpl.clearQueryCollectionCache(3623) Clear QueryCollection in cache...
<3>[946] (16) QueryCollection.createColumnList(1431) Column count: 11
<3>[947] (15) ViewObjectImpl.getPreparedStatement(6436) ViewObject : Reusing defined prepared Statement
<3>[948] (0) ViewRowSetImpl.bindParameters(1306) Binding param 1: 65662
ImageView: executeQueryForCollection
ImageView: first!
<3>[949] (16) ViewObjectImpl.clearQueryCollectionCache(3623) Clear QueryCollection in cache...
<3>[950] (0) QueryCollection.createColumnList(1431) Column count: 26
<3>[951] (0) ViewObjectImpl.getPreparedStatement(6436) ViewObject : Reusing defined prepared Statement
<3>[952] (0) ViewRowSetImpl.bindParameters(1306) Binding param 1: 144523
DemoView: executeQueryForCollection
DemoView: first!
<3>[955] (0) ViewObjectImpl.clearQueryCollectionCache(3623) Clear QueryCollection in cache...
<3>[956] (0) QueryCollection.createColumnList(1431) Column count: 21
<3>[957] (0) ViewObjectImpl.getPreparedStatement(6436) ViewObject : Reusing defined prepared Statement
<3>[958] (0) ViewRowSetImpl.bindParameters(1306) Binding param 1: 144523
ContextView: executeQueryForCollection
ContextView: first!
<3>[959] (16) ViewObjectImpl.clearQueryCollectionCache(3623) Clear QueryCollection in cache...
<3>[960] (0) QueryCollection.createColumnList(1431) Column count: 6
<3>[961] (0) ViewObjectImpl.getPreparedStatement(6436) ViewObject : Reusing defined prepared Statement
<3>[962] (0) ViewRowSetImpl.bindParameters(1306) Binding param 1: 144523
ProxyView: executeQueryForCollection
ProxyView: first!
RecipientsView: executeQueryForCollection
RecipientsView: first!
ImageView: executeQueryForCollection
ImageView: first!
DemoView: executeQueryForCollection
DemoView: first!
ContextView: executeQueryForCollection
ContextView: first!
<3>[963] (15) ViewObjectImpl.clearQueryCollectionCache(3623) Clear QueryCollection in cache...
<3>[964] (0) QueryCollection.createColumnList(1431) Column count: 20
<3>[965] (0) ViewObjectImpl.getPreparedStatement(6436) ViewObject : Reusing defined prepared Statement
<3>[966] (0) ViewRowSetImpl.bindParameters(1306) Binding param 1: 65662
RecipientsView: executeQueryForCollection
RecipientsView: first!
<3>[969] (16) ViewObjectImpl.clearQueryCollectionCache(3623) Clear QueryCollection in cache...
<3>[970] (0) QueryCollection.createColumnList(1431) Column count: 11
<3>[971] (0) ViewObjectImpl.getPreparedStatement(6436) ViewObject : Reusing defined prepared Statement
<3>[972] (0) ViewRowSetImpl.bindParameters(1306) Binding param 1: 65662
ImageView: executeQueryForCollection
ImageView: first!
<3>[973] (15) ViewObjectImpl.clearQueryCollectionCache(3623) Clear QueryCollection in cache...
<3>[974] (16) QueryCollection.createColumnList(1431) Column count: 26
<3>[975] (0) ViewObjectImpl.getPreparedStatement(6436) ViewObject : Reusing defined prepared Statement
<3>[976] (0) ViewRowSetImpl.bindParameters(1306) Binding param 1: 144523
DemoView: executeQueryForCollection
DemoView: first!
<3>[979] (0) ViewObjectImpl.clearQueryCollectionCache(3623) Clear QueryCollection in cache...
<3>[980] (0) QueryCollection.createColumnList(1431) Column count: 21
<3>[981] (0) ViewObjectImpl.getPreparedStatement(6436) ViewObject : Reusing defined prepared Statement
<3>[982] (781) ViewRowSetImpl.bindParameters(1306) Binding param 1: 144523
ContextView: executeQueryForCollection
ContextView: first!
2002-11-26 13:21:16,111 [AWT-EventQueue-0] DEBUG - LEAVING SearchableTablePanel.performSearchSo that's it.
I hope that helps. We also made the following observation:
When the user conducts the search immediately after another search (with the first row in WorklistView selected), then the error occurs.
If the user conducts a search, navigates to a row (other than the first!) in WorklistView (our top-level VO) and then presses our search button, then the problem is gone.
If the user conducts a search, navigates to a row (other than the first!) in WorklistView, navigates back to the first row and then conducts the search, then the problem is back.
The only obvious difference I can see is: when it works, there are
"JUTableBinding$JUTableModel.updateNavigated(686) Navigating to 0"
messages in the debug log after WorklistView.first(). These do not appear, when it doesn't work.
Strange, isn't it? What's so special with the first row?
Sascha Herrmann -
NullPointerException for JUPanelBinding
Anyone know what is wrong here. I am able to run from the JDev enviroment but when I deploy to a war file on my webserver I get this null pointer exception:
I've deleted and tried to recreate the table with no avail. The PageDef file exists contains the proper Iters and Bindings. ???
thanks
oracle.jbo.JboException: JBO-29000: Unexpected exception caught: java.lang.NullPointerException, msg=null
at oracle.adf.model.binding.DCBindingContainer.reportException(DCBindingContainer.java:225)
at oracle.adf.model.binding.DCBindingContainer.reportException(DCBindingContainer.java:271)
at net.mastertax.view.TableColumnsPanel.setBindingContext(TableColumnsPanel.java:269)
at net.mastertax.app.TrigGenFrame.initWindows(TrigGenFrame.java:50)
at net.mastertax.app.LoginDialog$BootStrap.run(LoginDialog.java:278)
at java.lang.Thread.run(Unknown Source)
## Detail 0 ##
java.lang.NullPointerException
at javax.swing.JTable.getLeadingRow(Unknown Source)
at javax.swing.JTable.getScrollableUnitIncrement(Unknown Source)
at oracle.jbo.uicli.jui.JUTableBinding$JUTableModel.<init>(JUTableBinding.java:949)
at oracle.jbo.uicli.jui.JUTableBinding.getModelImpl(JUTableBinding.java:500)
at oracle.jbo.uicli.jui.JUTableBinding.setControl(JUTableBinding.java:375)
at oracle.jbo.uicli.jui.JUTableBinding.getControlModel(JUTableBinding.java:138)
at oracle.jbo.uicli.jui.JUPanelBinding.bindUIControl(JUPanelBinding.java:820)
at net.mastertax.view.TableColumnsPanel.jbInit(TableColumnsPanel.java:221)
at net.mastertax.view.TableColumnsPanel.setBindingContext(TableColumnsPanel.java:266)
at net.mastertax.app.TrigGenFrame.initWindows(TrigGenFrame.java:50)
at net.mastertax.app.LoginDialog$BootStrap.run(LoginDialog.java:278)
at java.lang.Thread.run(Unknown Source)
----- LEVEL 1: DETAIL 0 -----
java.lang.NullPointerException
at javax.swing.JTable.getLeadingRow(Unknown Source)
at javax.swing.JTable.getScrollableUnitIncrement(Unknown Source)
at oracle.jbo.uicli.jui.JUTableBinding$JUTableModel.<init>(JUTableBinding.java:949)
at oracle.jbo.uicli.jui.JUTableBinding.getModelImpl(JUTableBinding.java:500)
at oracle.jbo.uicli.jui.JUTableBinding.setControl(JUTableBinding.java:375)
at oracle.jbo.uicli.jui.JUTableBinding.getControlModel(JUTableBinding.java:138)
at oracle.jbo.uicli.jui.JUPanelBinding.bindUIControl(JUPanelBinding.java:820)
at net.mastertax.view.TableColumnsPanel.jbInit(TableColumnsPanel.java:221)
at net.mastertax.view.TableColumnsPanel.setBindingContext(TableColumnsPanel.java:266)
at net.mastertax.app.TrigGenFrame.initWindows(TrigGenFrame.java:50)
at net.mastertax.app.LoginDialog$BootStrap.run(LoginDialog.java:278)
at java.lang.Thread.run(Unknown Source)Hello,
I am not that familiar with JDev but I tried to run an application with the new java 1.6. If I use a JTable and set the bindUIControl to a DCTable I get a null pointer exception too.
My application works with j2sdk1.4.2_14, may be there is a link between this problems...
I know it doesnt help but I cant find any solutions on this one
If you use java 1.6 it would be interesting to know what happens if you comment out all your bindUIControl linked to DCTable...
Cheers -
TableModelEvent is always the same - one cell or entire table changed
Why does JUTableModel fire always the same event, if you change a single cell, or entire table structure changes.
Event always looks like this:
first row: 0
last row: 2147483647
type: 0
column: -1
source class: oracle.jbo.uicli.jui.JUTableBinding$JUTableModel
I need to distinguish between a single cell change and entire table structure change.Thanks for getting back at this.
Unfortunately I get a 0, when I try to reproduce your solution. Of course, I am using the German version, but it should be the right formula.
When I leave out the $-signs in the search array I get a 0. See second picture.
Am I doing it wrong?
Lukas -
Where does this output come from?
Since this morning I get the following message on my output console when I start my application, but I have no idea what triggers it.
I did determine that this class is responsible [ oracle.jbo.common.DebugDiagnostic ], but there's no source available for me to inspect. JDeveloper's help function (searched for "DebugDiagnostic" -- 1 topic) did not provide the right answer either.
It appears that this class is part of BC4J's debug output system, but I don't have logging enabled as far as I know. Other than this particular message, no other messages are displayed.
Can anyone provide some information regarding this matter? What does it mean? Why does it appear?
TIA
*** WARNING: Oracle BC4J debug build executing - do not use for timing ***
**************************************************************************Class Method Line
DebugDiagnostic <clinit>() 45
JUTableBinding$JUTableModel updateNavigated() 670
JUTableBinding updateNavigated() 500
JUIteratorBinding navigated() 546
RowSetHelper fireNavigationEvent() 257
ViewRowSetIteratorImpl notifyNavigation() 2938
ViewRowSetIteratorImpl next() 1332
ViewRowSetIteratorImpl first() 1145
ViewRowSetImpl first() 2242
ViewObjectImpl first() 4396
JUIteratorBinding rangeRefreshed() 305
RowSetHelper fireRangeRefreshed() 168
ViewRowSetIteratorImpl notifyRangeRefreshed() 2897
ViewRowSetIteratorImpl ensureRefreshed() 2231
ViewRowSetIteratorImpl refresh() 2412
ViewRowSetImpl notifyRefresh() 1556
ViewRowSetImpl execute() 548
ViewRowSetImpl executeQuery() 564
ViewObjectImpl executeQuery() 2614
MDPanelTrefwoordsoortenView1TrefwoordenPerArchiefeenheidView4 sync_Tad_met_Tst_en_Ahd() 194
MDPanelTrefwoordsoortenView1TrefwoordenPerArchiefeenheidView4 access$5000071() 14
MDPanelTrefwoordsoortenView1TrefwoordenPerArchiefeenheidView4$1 navigated() 96
RowSetHelper fireNavigationEvent() 257
ViewRowSetIteratorImpl notifyNavigation() 2938
ViewRowSetIteratorImpl next() 1332
ViewRowSetIteratorImpl first() 1145
ViewRowSetImpl first() 2242
ViewObjectImpl first() 4396
JUIteratorBinding rangeRefreshed() 305
RowSetHelper fireRangeRefreshed() 168
ViewRowSetIteratorImpl notifyRangeRefreshed() 2897
ViewRowSetIteratorImpl ensureRefreshed() 2231
ViewRowSetIteratorImpl refresh() 2412
ViewRowSetImpl notifyRefresh() 1556
ViewRowSetImpl execute() 548
ViewRowSetImpl getMasterKeyValues() 2955
ViewRowSetImpl getParameters() 2899
ViewRowSetImpl getRowFilter() 314
ViewRowSetImpl execute() 515
ViewRowSetImpl getRowCount() 1453
ViewObjectImpl getRowCount() 4603
MultimediaViewPanel$1 _updateButtonStates() 39
JUNavigationBar$2 run() 969
InvocationEvent dispatch() 154
EventQueue dispatchEvent() 337
EventDispatchThread pumpOneEventForHierarchy() 131
EventDispatchThread pumpEventsForHierarchy() 98
EventDispatchThread pumpEvents() 93
EventDispatchThread run() 85I should underline again that I use a customized version of JUTableBinding. When I remove that file from the project, so that the default version is used, this output is not displayed.
For your information, this is the fragment in the customized file which loads the DebugDiagnostic class (line 670 to be exact):
668: void updateNavigated(NavigationEvent event)
669: {
670: DebugDiagnostic.println("Navigated to " + event.getRowIndex());
671: // This is to go through the case the navigation event arrive first.
672: // Since we are navigating there is at least one row.
673: // if (rowCount == 0) -
Javadoc, what are the benefits?
i'm new to java and have just heard about the javadoc tool. What are the benefits of using this tool rather than just commenting your code well?
...Whatever classes and packages you create
javadoc will write the API's for you...Whoa! Careful how you say that. We don't want to
give the impression that javadoc will write the
API for anyone, but rather it will generate API
documentation based on the javadoc-enabled comments
placed within one's source code. Just a point of
clarification. :-)
semantics:
many people refer to the documentation that comes with java as 'The API' - :D
though do I accept what you've stated as being more accurate and my explanantion could have been misleading to some. -
L.S.,
Sometimes I feel the need to extend some existing javadoc with a note of my own because sometimes the existing javadoc is not very clear and I am unable to improve because it is from another vendor.
I think it would be nice if I could somehow add user notes to existing javadoc without altering the original generated HTML files.
Please discuss.
Sincerely,
Patrick HolthuizenCheck out the -tag option. This lets you include custom tags of your owns design, or change the behavior of existing ones.
-
When I create an EJB Transport Business Service, after selecting the jar that has the EJB 2.1 artefacts (Remote, Home, etc) the oepe plugin fails and can't continue.
As I understand it seems that there is a problem with the classpath of ant build.xml that oepe creates inside folder /tmp/alsbejbtransport/ to compile the bs and generate the wsdl. I checked if tools.jar is in the classpath (in eclipse) and is included, so I can't figure out wich is the problem.
I found this in Oracle, but not helps solve the problem:
BEA-398120
Error: The WSDL for the typed transport endpoint could not be accessed.
Description
There was a problem retrieving the WSDL from the typed transport service endpoint at the time of service registration
Action
Contact technical support
This is the the full stacktrace that shows eclipse.
Generate : Error during generation of the WSDL:
BUILD FAILED
java.lang.NoClassDefFoundError: com/sun/javadoc/Type
at com.bea.util.jam.provider.JamServiceFactoryImpl.createSourceBuilder(JamServiceFactoryImpl.java:205)
at com.bea.util.jam.provider.JamServiceFactoryImpl.createBuilder(JamServiceFactoryImpl.java:158)
at com.bea.util.jam.provider.JamServiceFactoryImpl.createClassLoader(JamServiceFactoryImpl.java:137)
at com.bea.util.jam.provider.JamServiceFactoryImpl.createService(JamServiceFactoryImpl.java:78)
at weblogic.wsee.util.JamUtil.parseSource(JamUtil.java:152)
at weblogic.wsee.tools.anttasks.JwsLoader.loadJClasses(JwsLoader.java:186)
at weblogic.wsee.tools.anttasks.JwsLoader.load(JwsLoader.java:75)
at weblogic.wsee.tools.anttasks.JwsModule.loadWebServices(JwsModule.java:569)
at weblogic.wsee.tools.anttasks.JwsModule.generate(JwsModule.java:369)
at weblogic.wsee.tools.anttasks.JwsModule.build(JwsModule.java:256)
at weblogic.wsee.tools.anttasks.JwscTask.execute(JwscTask.java:184)
at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288)
at sun.reflect.GeneratedMethodAccessor1.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
at org.apache.tools.ant.Task.perform(Task.java:348)
at org.apache.tools.ant.Target.execute(Target.java:357)
at org.apache.tools.ant.Target.performTasks(Target.java:385)
at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1337)
at org.apache.tools.ant.Project.executeTarget(Project.java:1306)
at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
at org.apache.tools.ant.Project.executeTargets(Project.java:1189)
at org.apache.tools.ant.Main.runBuild(Main.java:758)
at org.apache.tools.ant.Main.startAnt(Main.java:217)
at org.apache.tools.ant.launch.Launcher.run(Launcher.java:257)
at org.apache.tools.ant.launch.Launcher.main(Launcher.java:104)
Caused by: java.lang.ClassNotFoundException: com.sun.javadoc.Type
at org.apache.tools.ant.AntClassLoader.findClassInComponents(AntClassLoader.java:1400)
at org.apache.tools.ant.AntClassLoader.findClass(AntClassLoader.java:1341)
at org.apache.tools.ant.AntClassLoader.loadClass(AntClassLoader.java:1088)
at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
... 27 more
Total time: 0 seconds
Eclipse Installation details:
*** System properties:
eclipse.application=org.eclipse.ui.ide.workbench
eclipse.buildId=M20110909-1335
eclipse.commands=-os
linux
-ws
gtk
-arch
x86_64
-showsplash
-launcher
{home}/Development/oepe-indigo/eclipse
-name
Eclipse
--launcher.library
{home}/Development/oepe-indigo//plugins/org.eclipse.equinox.launcher.gtk.linux.x86_64_1.1.100.v20110505/eclipse_1407.so
-startup
{home}/Development/oepe-indigo//plugins/org.eclipse.equinox.launcher_1.2.0.v20110502.jar
--launcher.overrideVmargs
-exitdata
1e418010
-vm
/usr/bin/java
eclipse.home.location=file:{home}/Development/oepe-indigo/
eclipse.launcher={home}/Development/oepe-indigo/eclipse
eclipse.launcher.name=Eclipse
[email protected]/../p2/
eclipse.p2.profile=PlatformProfile
eclipse.product=org.eclipse.platform.ide
eclipse.startTime=1374623921455
eclipse.vm=/usr/bin/java
eclipse.vmargs=-Xms256m
-Xmx768m
-XX:MaxPermSize=512m
-Dsun.lang.ClassLoader.allowArraySyntax=true
-Dweblogic.home={home}/Oracle/Middleware/wlserver_10.3
-Dharvester.home={home}/Oracle/Middleware/Oracle_OSB1/harvester
-Dosb.home={home}/Oracle/Middleware/Oracle_OSB1
-Dosgi.bundlefile.limit=750
-Dosgi.nl=en_US
-Dmiddleware.home={home}/Oracle/Middleware
-jar
{home}/Development/oepe-indigo//plugins/org.eclipse.equinox.launcher_1.2.0.v20110502.jar
equinox.use.ds=true
file.encoding=UTF-8
file.encoding.pkg=sun.io
file.separator=/
guice.disable.misplaced.annotation.check=true
harvester.home={home}/Oracle/Middleware/Oracle_OSB1/harvester
http.nonProxyHosts=localhost
java.awt.graphicsenv=sun.awt.X11GraphicsEnvironment
java.awt.printerjob=sun.print.PSPrinterJob
java.class.path={home}/Development/oepe-indigo//plugins/org.eclipse.equinox.launcher_1.2.0.v20110502.jar
java.class.version=50.0
java.endorsed.dirs=/usr/lib/jvm/jdk1.6.0_45/jre/lib/endorsed
java.ext.dirs=/usr/lib/jvm/jdk1.6.0_45/jre/lib/ext:/usr/java/packages/lib/ext
java.home=/usr/lib/jvm/jdk1.6.0_45/jre
java.io.tmpdir=/tmp
java.library.path=/usr/lib/jvm/jdk1.6.0_45/jre/lib/amd64/server:/usr/lib/jvm/jdk1.6.0_45/jre/lib/amd64:/usr/lib/jvm/jdk1.6.0_45/jre/../lib/amd64:/usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib
java.protocol.handler.pkgs=null|com.bea.wli.sb.resources.url|com.bea.wli.sb.resources.jca.upgrade.url|weblogic.utils|weblogic.utils|weblogic.utils|weblogic.net|weblogic.net
java.runtime.name=Java(TM) SE Runtime Environment
java.runtime.version=1.6.0_45-b06
java.specification.name=Java Platform API Specification
java.specification.vendor=Sun Microsystems Inc.
java.specification.version=1.6
java.vendor=Sun Microsystems Inc.
java.vendor.url=http://java.sun.com/
java.vendor.url.bug=http://java.sun.com/cgi-bin/bugreport.cgi
java.version=1.6.0_45
java.vm.info=mixed mode
java.vm.name=Java HotSpot(TM) 64-Bit Server VM
java.vm.specification.name=Java Virtual Machine Specification
java.vm.specification.vendor=Sun Microsystems Inc.
java.vm.specification.version=1.0
java.vm.vendor=Sun Microsystems Inc.
java.vm.version=20.45-b01
javax.rmi.CORBA.PortableRemoteObjectClass=weblogic.iiop.PortableRemoteObjectDelegateImpl
javax.rmi.CORBA.UtilClass=weblogic.iiop.UtilDelegateImpl
jna.platform.library.path=/usr/lib/x86_64-linux-gnu:/lib/x86_64-linux-gnu:/lib64:/usr/lib:/lib
line.separator=
middleware.home={home}/Oracle/Middleware
oracle.eclipse.tools.weblogic.ui.isWebLogicServer=true
org.apache.commons.logging.Log=org.apache.commons.logging.impl.NoOpLog
org.eclipse.equinox.launcher.splash.location={home}/Development/oepe-indigo/plugins/org.eclipse.platform_3.7.1.v201109091335/splash.bmp
org.eclipse.equinox.simpleconfigurator.configUrl=file:org.eclipse.equinox.simpleconfigurator/bundles.info
org.eclipse.m2e.log.dir={home}/workspace/pragma/.metadata/.plugins/org.eclipse.m2e.logback.configuration
org.eclipse.update.reconcile=false
org.omg.CORBA.ORBClass=weblogic.corba.orb.ORB
org.omg.CORBA.ORBSingletonClass=weblogic.corba.orb.ORB
org.osgi.framework.executionenvironment=OSGi/Minimum-1.0,OSGi/Minimum-1.1,OSGi/Minimum-1.2,JRE-1.1,J2SE-1.2,J2SE-1.3,J2SE-1.4,J2SE-1.5,JavaSE-1.6
org.osgi.framework.language=en
org.osgi.framework.os.name=Linux
org.osgi.framework.os.version=3.8.0
org.osgi.framework.processor=x86-64
org.osgi.framework.system.capabilities=osgi.ee; osgi.ee="OSGi/Minimum"; version:List<Version>="1.0, 1.1, 1.2",osgi.ee; osgi.ee="JavaSE"; version:List<Version>="1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6"
org.osgi.framework.system.packages=javax.accessibility,javax.activation,javax.activity,javax.annotation,javax.annotation.processing,javax.crypto,javax.crypto.interfaces,javax.crypto.spec,javax.imageio,javax.imageio.event,javax.imageio.metadata,javax.imageio.plugins.bmp,javax.imageio.plugins.jpeg,javax.imageio.spi,javax.imageio.stream,javax.jws,javax.jws.soap,javax.lang.model,javax.lang.model.element,javax.lang.model.type,javax.lang.model.util,javax.management,javax.management.loading,javax.management.modelmbean,javax.management.monitor,javax.management.openmbean,javax.management.relation,javax.management.remote,javax.management.remote.rmi,javax.management.timer,javax.naming,javax.naming.directory,javax.naming.event,javax.naming.ldap,javax.naming.spi,javax.net,javax.net.ssl,javax.print,javax.print.attribute,javax.print.attribute.standard,javax.print.event,javax.rmi,javax.rmi.CORBA,javax.rmi.ssl,javax.script,javax.security.auth,javax.security.auth.callback,javax.security.auth.kerberos,javax.security.auth.login,javax.security.auth.spi,javax.security.auth.x500,javax.security.cert,javax.security.sasl,javax.sound.midi,javax.sound.midi.spi,javax.sound.sampled,javax.sound.sampled.spi,javax.sql,javax.sql.rowset,javax.sql.rowset.serial,javax.sql.rowset.spi,javax.swing,javax.swing.border,javax.swing.colorchooser,javax.swing.event,javax.swing.filechooser,javax.swing.plaf,javax.swing.plaf.basic,javax.swing.plaf.metal,javax.swing.plaf.multi,javax.swing.plaf.synth,javax.swing.table,javax.swing.text,javax.swing.text.html,javax.swing.text.html.parser,javax.swing.text.rtf,javax.swing.tree,javax.swing.undo,javax.tools,javax.transaction,javax.transaction.xa,javax.xml,javax.xml.bind,javax.xml.bind.annotation,javax.xml.bind.annotation.adapters,javax.xml.bind.attachment,javax.xml.bind.helpers,javax.xml.bind.util,javax.xml.crypto,javax.xml.crypto.dom,javax.xml.crypto.dsig,javax.xml.crypto.dsig.dom,javax.xml.crypto.dsig.keyinfo,javax.xml.crypto.dsig.spec,javax.xml.datatype,javax.xml.namespace,javax.xml.parsers,javax.xml.soap,javax.xml.stream,javax.xml.stream.events,javax.xml.stream.util,javax.xml.transform,javax.xml.transform.dom,javax.xml.transform.sax,javax.xml.transform.stax,javax.xml.transform.stream,javax.xml.validation,javax.xml.ws,javax.xml.ws.handler,javax.xml.ws.handler.soap,javax.xml.ws.http,javax.xml.ws.soap,javax.xml.ws.spi,javax.xml.ws.wsaddressing,javax.xml.xpath,org.ietf.jgss,org.omg.CORBA,org.omg.CORBA_2_3,org.omg.CORBA_2_3.portable,org.omg.CORBA.DynAnyPackage,org.omg.CORBA.ORBPackage,org.omg.CORBA.portable,org.omg.CORBA.TypeCodePackage,org.omg.CosNaming,org.omg.CosNaming.NamingContextExtPackage,org.omg.CosNaming.NamingContextPackage,org.omg.Dynamic,org.omg.DynamicAny,org.omg.DynamicAny.DynAnyFactoryPackage,org.omg.DynamicAny.DynAnyPackage,org.omg.IOP,org.omg.IOP.CodecFactoryPackage,org.omg.IOP.CodecPackage,org.omg.Messaging,org.omg.PortableInterceptor,org.omg.PortableInterceptor.ORBInitInfoPackage,org.omg.PortableServer,org.omg.PortableServer.CurrentPackage,org.omg.PortableServer.POAManagerPackage,org.omg.PortableServer.POAPackage,org.omg.PortableServer.portable,org.omg.PortableServer.ServantLocatorPackage,org.omg.SendingContext,org.omg.stub.java.rmi,org.w3c.dom,org.w3c.dom.bootstrap,org.w3c.dom.css,org.w3c.dom.events,org.w3c.dom.html,org.w3c.dom.ls,org.w3c.dom.ranges,org.w3c.dom.stylesheets,org.w3c.dom.traversal,org.w3c.dom.views,org.w3c.dom.xpath,org.xml.sax,org.xml.sax.ext,org.xml.sax.helpers
org.osgi.framework.uuid=901615cd-f3f3-0012-11b6-a3bca4d97ac1
org.osgi.framework.vendor=Eclipse
org.osgi.framework.version=1.6.0
org.osgi.supports.framework.extension=true
org.osgi.supports.framework.fragment=true
org.osgi.supports.framework.requirebundle=true
os.arch=amd64
os.name=Linux
os.version=3.8.0-26-generic
osb.home={home}/Oracle/Middleware/Oracle_OSB1
osgi.arch=x86_64
osgi.bundlefile.limit=750
osgi.bundles=reference:file:javax.transaction_1.1.1.v201105210645.jar,reference:file:org.eclipse.equinox.simpleconfigurator_1.0.200.v20110502-1955.jar@1:start
osgi.bundles.defaultStartLevel=4
osgi.bundlestore={home}/Development/oepe-indigo/configuration/org.eclipse.osgi/bundles
osgi.configuration.area=file:{home}/Development/oepe-indigo/configuration/
osgi.framework=file:{home}/Development/oepe-indigo/plugins/org.eclipse.osgi_3.7.1.R37x_v20110808-1106.jar
osgi.framework.extensions=reference:file:javax.transaction_1.1.1.v201105210645.jar
osgi.framework.shape=jar
osgi.framework.version=3.7.1.R37x_v20110808-1106
osgi.frameworkClassPath=., file:{home}/Development/oepe-indigo/plugins/javax.transaction_1.1.1.v201105210645.jar
osgi.install.area=file:{home}/Development/oepe-indigo/
osgi.instance.area=file:{home}/workspace/pragma/
osgi.instance.area.default=file:{home}/workspace/
osgi.logfile={home}/workspace/pragma/.metadata/.log
osgi.manifest.cache={home}/Development/oepe-indigo/configuration/org.eclipse.osgi/manifests
osgi.nl=en_US
osgi.nl.user=en_US
osgi.os=linux
osgi.splashLocation={home}/Development/oepe-indigo/plugins/org.eclipse.platform_3.7.1.v201109091335/splash.bmp
osgi.splashPath=platform:/base/plugins/org.eclipse.platform
osgi.syspath={home}/Development/oepe-indigo/plugins
osgi.tracefile={home}/workspace/pragma/.metadata/trace.log
osgi.ws=gtk
path.separator=:
securerandom.source=file:/dev/./urandom
socksNonProxyHost=localhost
sun.arch.data.model=64
sun.boot.class.path=/usr/lib/jvm/jdk1.6.0_45/jre/lib/resources.jar:/usr/lib/jvm/jdk1.6.0_45/jre/lib/rt.jar:/usr/lib/jvm/jdk1.6.0_45/jre/lib/sunrsasign.jar:/usr/lib/jvm/jdk1.6.0_45/jre/lib/jsse.jar:/usr/lib/jvm/jdk1.6.0_45/jre/lib/jce.jar:/usr/lib/jvm/jdk1.6.0_45/jre/lib/charsets.jar:/usr/lib/jvm/jdk1.6.0_45/jre/lib/modules/jdk.boot.jar:/usr/lib/jvm/jdk1.6.0_45/jre/classes
sun.boot.library.path=/usr/lib/jvm/jdk1.6.0_45/jre/lib/amd64
sun.cpu.endian=little
sun.cpu.isalist=
sun.desktop=gnome
sun.io.unicode.encoding=UnicodeLittle
sun.java.command={home}/Development/oepe-indigo//plugins/org.eclipse.equinox.launcher_1.2.0.v20110502.jar -os linux -ws gtk -arch x86_64 -showsplash -launcher {home}/Development/oepe-indigo/eclipse -name Eclipse --launcher.library {home}/Development/oepe-indigo//plugins/org.eclipse.equinox.launcher.gtk.linux.x86_64_1.1.100.v20110505/eclipse_1407.so -startup {home}/Development/oepe-indigo//plugins/org.eclipse.equinox.launcher_1.2.0.v20110502.jar --launcher.overrideVmargs -exitdata 1e418010 -vm /usr/bin/java -vmargs -Xms256m -Xmx768m -XX:MaxPermSize=512m -Dsun.lang.ClassLoader.allowArraySyntax=true -Dweblogic.home={home}/Oracle/Middleware/wlserver_10.3 -Dharvester.home={home}/Oracle/Middleware/Oracle_OSB1/harvester -Dosb.home={home}/Oracle/Middleware/Oracle_OSB1 -Dosgi.bundlefile.limit=750 -Dosgi.nl=en_US -Dmiddleware.home={home}/Oracle/Middleware -jar {home}/Development/oepe-indigo//plugins/org.eclipse.equinox.launcher_1.2.0.v20110502.jar
sun.java.launcher=SUN_STANDARD
sun.jnu.encoding=UTF-8
sun.lang.ClassLoader.allowArraySyntax=true
sun.management.compiler=HotSpot 64-Bit Tiered Compilers
sun.os.patch.level=unknown
svnkit.http.methods=Basic
svnkit.library.gnome-keyring.enabled=false
user.country=AR
user.dir={home}/Development/oepe-indigo
user.home={home}
user.language=es
user.name={username}
user.timezone=America/Argentina/Buenos_Aires
weblogic.home={home}/Oracle/Middleware/wlserver_10.3
Thanks!!run this one in command prompt and then convert the applet using converter tool
JC_HOME = C:\java_card_kit-2_2_2\bin\
set CLASSES=%JCHOME%\lib\apduio.jar;%JC_HOME%\lib\apdutool.jar;%JC_HOME%\lib\jcwde.jar;%JC_HOME%\lib\converter.jar;%JC_HOME%\lib\scriptgen.jar;%JC_HOME%\lib\offcardverifier.jar;%JC_HOME%\lib\api.jar;%JC_HOME%\lib\installer.jar;%JC_HOME%\lib\capdump.jar;
D:\NareshPalle\jcardRE\Smart\src>java -classpath %_CLASSES% com.sun.javacard.con
verter.Converter -out EXP JCA CAP -exportpath .\exp -applet 0x0a:0x00:0x00:0x00:0x0e:0x01:0x02:
0x03:0x04:0x05:0x06 PackageName appletName 0x01:0x02:0x03:0x04:0x05:0x0
6:0x07:0x08 1.0
or
go to following directory and run the converter tool in command prompt
step 1: cd C:\java_card_kit-2_2_2\bin\
then run this command under the above directory
step 2:converter -classdir E:\Pathof Your applet class file -out EXP JCA CAP -exportpath E:\path of exp files folder -applet AID PackageName AppletName PackAID major.minor no
For more doubts mail me....
*[removed by moderator]*
Thanks and Regards
NareshPalle
Edited by: EJP on 31/03/2012 20:09: removed your email address. Unless you like spam and unless you think these forums are provided for your personal benefit only, posting an email address here serves no useful purpose whatsoever. -
DocFlex/Javadoc 1.5.6, a multi-format doclet development tool and more
DocFlex/Javadoc is both a multi-format Javadoc Doclet and a rapid doclet development tool, which allows easy creation of professional quality Java API documentation generated by Javadoc in various output formats.
More in this article:
Key Features
Availability
This Version
What is DocFlex?
Main Concepts
Other Applications
Links
KEY FEATURES
Template-driven doclet architecture
- Actual doclets are created in the form of special templates interpreted by the DocFlex Doclet, which is the template interpreter / output generator wrapped in the form of a Javadoc Doclet.
- The high quality graphic Template Designer allows you to visually design most of things, whose development was possible so far only by direct Java coding.
- The templates are designed independently on a particular output format. All formatting is specified in some universal way using properties of template components. During the generation, it is rendered with the suitable features available in the selected output format.
- The elaborated support of template parameters (including multivalued list parameters). The parameters are defined and accessed within templates to adjust dynamic properties of template components. Most of options previously used to control an ordinary doclet now simply become template parameters!
- The possibility to call templates from one another. This feature (along with the template parameters) makes possible re-using the same templates for different tasks as well as organizing template libraries.
Data processing
- The entire Doclet API is represented in the form of a virtual XML document (called Doclet DSM), on which the designing and processing of all templates is based.
- Sophisticated capabilities for data querying and sorting based on an extension of XPath.
- Full support of new Java 5.0 language features: Generic Types, Enums, Annotations.
- Simultaneous support of Java 1.4 and Java 5.
Creating hyperlinks
- Generation of an extensive network of hyperlinks interconnecting the whole documentation.
- The hyperlinks can be generated in all output formats that support them (this currently includes HTML and RTF).
- The universal way of defining documentation cross-links based on the link/target keys specified in templates.
- In RTF, the cross-links can be generated in the form of page number references, which effectively makes them usable even in the printed documentation.
- In HTML, the possibility of loading several frame windows from a single hyperlink at once.
Universal support of various formatting techniques
- text formatting: fonts, colors, borders
- paragraph formatting: margins, pagination control, borders, colors
- border formatting: styles (solid, double, dashed, dotted), thickness, colors
- tables: arbitrary cell layouts, borders, nested tables
- lists: bulleted, numbered, delimited
- document fields (RTF): page number, number of pages, TOC, etc.
- page formatting: size, orientation, margins, headers/footers
- formatting styles
- rendering of embedded HTML, which means interpreting in non-HTML output formats (such as RTF) the HTML tags embedded in text data (e.g. documentation comments). Almost all HTML tags practically usable in doc-comments are supported.
Inserting images
- statically specified in templates
- dynamically, obtained by <img> tags found in Java comments
- supported image formats: GIF, PNG, JPG, WMF, EMF, BMP
Output formats
- HTML (both framed multi-file and single-file output)
- RTF (version 1.6 - supported since Word 2000).
- TXT (plain text), which may be particularly useful for various utilizations of the Java code information provided by the Doclet API generate XML files by it, or SQL files to import into a database).
Standard Template Set
- The ready-to-use Standard Template Set included in all editions of DocFlex/Javadoc allows you to immediately generate:
(*) The framed HTML Java API documentation similar to that generated by the standard Javadoc.
(*) The same documentation packed in a single HTML file.
(*) The unmatched quality RTF JavaDoc.
- Special features supported by standard templates:
(*) Excluding classes/methods/fields by custom tags and annotations.
(*) Selective omitting of package qualifiers.
(*) Selective documenting of custom tags (similar to -tag option of Standard Doclet).
- By modifying the standard templates, you can quickly customize the generated documentation according to your needs.
Doclet GUI
- Besides command line options, DocFlex Doclet supports an alternative user-friendly way to control the template-based doclets interactively -- the high quality Doclet GUI.
- The Doclet GUI starts with the Generator Dialog, where you can specify all general settings (such as the main template, the output format and the output directory), start the generation, track its progress and stop at any moment you need.
- The grid-tree-based Parameter Inspector invoked from the Generator Dialog for a selected template allows you to view the descriptions of all template parameters controlling the doclet and set their values according to the parameter data types.
- The generator options specific for the selected output format can be set in the corresponding Format Option Inspector (also invoked from the Generator Dialog).
- Once the generation is finished (or cancelled), you can start it again with different settings or a new main template without restarting the whole Javadoc.
Integrations
- With any system that runs Javadoc (in particular, see below)
- Apache Ant
- Apache Maven 2
- Eclipse
For lots more information, see DocFlex/Javadoc homepage: [http://www.filigris.com/products/docflex_javadoc/]
AVAILABILITY
DocFlex/Javadoc comes in two editions:
(1) The full edition called "DocFlex/Javadoc" as it is. This is commercial software, which includes all the implemented functionality.
(2) The reduced freeware edition called "DocFlex/Doclet". It includes only the output generator and can be used as an interpretor of any custom templates. It also includes the standard template set, which allows you to instantly use it as an HTML doclet (similar to the standard one, however with some special features) plus an excellent quality RTF doclet.
Both editions are available for downloads on the page: [http://www.filigris.com/downloads/]
THIS VERSION
New features:
- The template interpretor works 15-20% faster
- Improvement of RTF output
- Multi-valued (list) template parameters
- Custom elements
- Standard Templates: Selective documenting of custom tags (similar to -tag option of standard doclet)
For more details, see product Readme | Change Log on the downloads page: [http://www.filigris.com/downloads/]
WHAT IS DOCFLEX?
DocFlex is an innovative technology for development of high quality template-driven documentation/report generators by any kind of data obtained from various software applications via the Java APIs they provide.
MAIN CONCEPTS
The whole DocFlex technology is based on four generalizations:
(1) The mapping of an entire Java API onto a virtual XML-like representation made of some elements and attributes so as to process any such a representation in a universal way using techniques borrowed from the field of XML, like XPath (or more precisely, a conceptual analogue of XPath with some extensions not present in it).
(2) The abstract formatting concept based on four layouts (flow of text, flow of paragraphs or paragraph-like objects, tables and lists), which can be rendered in most modern document formats (e.g. HTML, RTF, XSL-FO etc.)
(3) The automatic generation of hyperlinks (or their page number reference equivalents) by matching the sets of keys produced from certain natural properties of the things (entities) being documented and hyper-linked.
(4) The representation of the object controlling structure of the output generator (made on the first three principles) in the form of a plain-text template with a possibility to create and edit such templates using a graphic Template Designer, which visualizes the controlling objects (now becoming template components) in a form resembling the output they will produce.
OTHER APPLICATIONS
In fact, DocFlex/Javadoc is not the only application of DocFlex technology. The following is a summary of other DocFlex software:
DocFlex/XML
The SDK and runtime environment for rapid development and execution of template-driven automatic documentation/report generators by any data obtained from XML files.
This is currently the most complex and advanced application of DocFlex technology. Actually, this tool can be considered a powerful alternative to XSLT. At least, it is definitely able to do what XSLT apparently not (for example, see XSDDoc below). We will publish a more detailed comparison DocFlex/XML versus XSLT with the next DocFlex/XML release, which is coming very soon.
DocFlex/XML home page: [http://www.filigris.com/products/docflex_xml/]
DocFlex/XML | XSDDoc
A template set for DocFlex/XML that implements a high quality W3C XML Schema documentation generator in HTML and RTF output formats.
For more details, please see: [http://www.filigris.com/products/docflex_xml/xsddoc/]
DocFlex/XML | WSDLDoc
A similar template set for DocFlex/XML that will implement a high-end WSDL documentation generator.
This product is not released yet.
DocFlex/Together
A template-driven documentation generator for [Borland Together|http://www.borland.com/us/products/together/] (which is a UML modeling tool).
This is the earliest application of DocFlex technology and probably the most beautiful one. It works only with Together Architect 1.x, which is now obsolete. Unfortunately, since Together 2005, Borland eliminated any open APIs (for unknown reasons). Because of this, further development of DocFlex/Together was impossible.
DocFlex/Together home page: [http://www.filigris.com/products/docflex_together/]
See also examples of the UML documentation generated with it: [http://www.filigris.com/products/docflex_together/examples/]
The future DocFlex/UML is going to generate something like this as well.
DocFlex/UML
A template-driven UML documentation generator based on [Eclipse EMF|http://www.eclipse.org/emf/]. This tool is in early development stage yet. In a sense, it will continue DocFlex/Together with the focus on integration with other UML tools that use Eclipse EMF.
LINKS
This original article can be found at:
[http://www.filigris.com/ann/docflex_javadoc_v1.5.6/]
DocFlex/Javadoc home page:
[http://www.filigris.com/products/docflex_javadoc/]
DocFlex/XML home page:
[http://www.filigris.com/products/docflex_xml/]
DocFlex/XML | XSDDoc, the XML schema documentation generator:
[http://www.filigris.com/products/docflex_xml/xsddoc/]
Free downloads:
[http://www.filigris.com/downloads/]Now, DocFlex/Javadoc v1.4 has been released specifically dedicated to Linux (Mac OS X) support:
(*) Some early bugs have been fixed, which prevented it working properly under Linux.
(*) A special RTF option was introduced to generate OpenOffice.org friendly RTF (see below)
(*) Improved support for external document viewers.
(*) Now, DocFlex/Javadoc software includes the shell script files prepared to quickly install and launch it under Linux
New RTF option
A new RTF output option "Tune output for MS Word� has been introduced. This option, actually, allows switching off that very tuning (which until now was the default mode) to produce an RTF friendly to open with other non MS Word applications, e.g. OpenOffice.org Writer under Linux.
Read full announcement (and screenshot) by this link:
http://www.filigris.com/ann/docflex_javadoc_v1.4/
Regards,
Leonid Rudy
http://www.docflex.com -
Misleading ADH Information Provided By Best Buy Associates
Let me start by saying that Best Buy WAS my most FAVORITE store UNTIL walking into store on 03/08/14 in Alabama. I am a 31 yr old customer that has been purchasing electronics from Best Buy since 2003. The management and sales associates in the store I normally go to is AWESOME! Now I would be one of the first to say that "Yes, it seems that Best Buy's T&Cs on GSBT/GSRP/ADH Plans change often." Whenever I go into any Best Buy, I look at the little pamphlets that was given out when you purchased any GS protection plan. I notice they looked different from time to time. Maybe a different color or size. I mean, go to <http://www.geeksquad.com/protection-plans/terms-and-conditions.aspx> and look. It goes back to July 2007. Has it always been available online? Nope. The first extended warranty/protection Plan I purchased was on a laptop purchased in 2003 when I left for college. I don't see it on there. So it's very safe to assume they haven't always been readily available and from looking at previous comments and posts after googling "Best Buy ADH 2012," I see I'm NOT the only customer that has been mislead by the sales associates on ADH. Why not trust that the employees are explaining important details? I mean SOMETIMES you're handing me a pamphlet with the T&Cs and giving me misleading info that you claim is in there. But at the time I had every reason to trust and believe the associates are providing me with important details and accurate info that is found in what you're placing in my hand (I've been to MANY Best Buy's and purchased MANY things from each Best Buy depending on where I'm at at that time).
In 2012 I bought two iPads (3rd generation). I bought one 16gb and a 32gb along with ADH for each one (one for my parents and one for myself). And like any electronic device I buy from Best Buy, I was ALWAYS told, "Don't forget to purchase the protection plan!" Well, if you look at my history, I ALWAYS purchased the "extended warranty" or "protection plan." Like I said, when I moved away for college in 2003, I purchased a brand new laptop, had GS to hook it up and also paid for the "extended warranty" as it was called at the time. I never had to use any warranties or protection plans I purchased. I purchased protection plans on the 2 laptops I bought, a washer and dryer I bought (that was stolen when I went on vacation) and also the new ones I purchased to replace the stolen set, a washer I bought AFTER I moved (because mine was in storage and I damaged my parents older washer by overloading it with a comforter) and even on cellphones I've had in the past. Basically, if Best Buy offered it on a device, I purchased it because I felt confident that if ANYTHING went wrong, Best Buy would take care of it. Why?? Because that's what I was told when I purchased it. Now, that being said, my parents are 66 and 70 and not in the best of health. Last year, my mom dropped the iPad and broke the screen. I was confident that Best Buy would replace it with a new device like I was told. I get to the closest Best Buy to me (which is an hour and fifteen away from home; the original store where I purchased them is two and a half hours away). The iPad still powered on but of course the glass screen was shattered. Who wants to use an iPad with cracked glass and risk cutting a finger? Well, low and behold, that store reprinted the receipt and replaced the iPad 3rd gen with a NEW iPad 4th gen (there were no more iPad 3rd gen at the store) just like the sales associates said. No questions asked. No hassle. No problem. I don't even work for Best Buy but yet ANYBODY I talked to (friend, family, stranger in the store), I would push "protection plan...get it!...it's worth it!"
March 7th, 2014, while working, I accidentally dropped my 32gb iPad and cracked my screen. I had already made plans to go out of town on March 8th so I did my research and saw there's a Best Buy an hour away. I was confident that Best Buy would replace my device in store so that Monday, March 10th I would be able to go back to work and have a working iPad that's not going to slice and dice my fingers up. I get to the GS desk and I gave the GS agent my phone number to reprint my receipt so he could go ahead and replace my iPad. (Why was I so confident? My parents iPad was replaced with no issues). Well the GS agent proceeds to tell me that "Your iPad qualifies to be replaced with a refurbished iPad. Would you like to pick it up in store or have it shipped to your home?" Excuse me? Refurbished? Picked up or sent to my home? No no no. Now, I told him, "When I purchased the iPad (that I paid $599 for BRAND NEW) and the 2 yr ADH, I was told by the sales associate if anything happened to it, any Best Buy would swap it out in store with a new device that way I wouldn't have to go without." He proceeds to tell me, "The plans have changed. It might have been that way when you purchased it but the plans have changed since 2012." (Thank goodness I didn't go in the store by myself. I had two friends with me that heard all of this non-sense). Now it's always that if the T&Cs change after you purchased yours, they have to honor the T&Cs that you had from the beginning. That's like a cellphone company telling me "You cannot keep your unlimited plan because we don't offer it anymore." You can't do that. So because the company changed the T&Cs AFTER I purchased it, you're not going honor what that??? So I asked for a manager. The GM of the store comes. The same thing I explained to the GS agent, I repeated once again to the GM. He says the same thing the GS agent said. By then, I'm in shock and not only is my blood pressure going up, I'm getting more and more upset thinking about each and every ADH/GSBT/GSRP I purchased (and didn't use EXCEPT for one). Then my mind went to everybody that bought an ADH and was mislead with the same T&Cs shared by the sales associates. The GM then goes on to tell me, "Your iPad is still functional. You can keep it until your refurbished iPad comes in." I'm looking at my iPad and I run my finger across it and I feel sharp pieces of glass. I asked him "What if I cut my finger?" He then opened his mouth and let the CRAZIEST thing come out. He said, "I can discount a Zagg Invisible Shield for you if you would like." I'm thinking "what kind of FOOL does he take me for????" Seriously???? (1) You COULD replace it but you won't (which he stated it's at HIS sole discretion if he wanted to replace it or not but because the computer said send a refurbished one, he doesn't want to go against that) and (2) You want me to BUY a invisible shield that you're going to discount??? That's WHY I purchased the ADH (so I wouldn't have to spend any money later on if something happens to it). So I told him to go ahead and send it but I'm not happy about and I would call and complain about it. I now have to go to work Monday and Tuesday without the iPad I DEPEND on to do my job. I refuse to pay for a screen protector when I know the iPad could be exchanged there in the store.
I NEVER thought I would live to say "I will NEVER EVER spend another dime in Best Buy or any affiliates they may have from today going forward unless the problem is resolved." I JUST spent over $1400 in Best Buy a couple of weeks ago on a PS4 (ADH as well), 3 PS4 games, an iPod Touch 32gb, a griffin case and a set of headphones. I will be canceling that ADH on the PS4 ASAP. It's not worth it. It's not worth the hassle. My friends that witnessed all of this have now been turned away from a business that I once loved. Is it because I told them to turn away? No. It's because they know that that is poor customer service and misleading info that was provided. They've even purchased ADH on devices they've purchased and was provided the SAME misleading information that I was provided (and I'm talking about three different stores providing each of us with the same exact information). I know that myself and the two other people that were with me today will not hurt Best Buy's business by not returning and buying electronics from there. But everyone knows that one unhappy customer will go back and tell a family member or friend what happened. And that family member or friend will go and tell another family member or friend that will tell another........it then turns into a chain reaction. Do I wish anything bad on Best Buy? Nope. What I do wish is that (1) my iPad is replaced with a NEW iPad 3rd gen or better (ain't no going back to a 2nd generation) and (2) Best Buy needs to retrain EVERY employee (manager, supervisor and regular associate) to make sure instead of saying "With ADH, if anything happens to it, bring it back to any Best Buy and we'll replace it in store!" the associates need to be truthful and say "With ADH, it is at our sole discretion to replace the device in store OR have a refurbished device sent to the store where you can pick it up when it comes in or either we can have it sent to your home!" But that's too much like being right. I now see it's all about getting a sale and getting numbers up. It's not about providing excellent customer service cause if it was, I would've walked out of that store with a new iPad. I am literally SICK just thinking of the thousands of dollars I've spent in Best Buy. Lesson learned though.Hello,
There is very little more frustrating than having a device that you use every day develop a need for service, whether through defect or damage. I've had similar situations arise myself and been aggravated too. It's also important to live up to the terms of our agreements with you and our other customers -- in this case the written Terms & Conditions of the Geek Squad Protection plan you purchased. Further, it is imperative that we communicate how the coverage works accurately. I regret any miscommunication that there may have been about how the terms of your plan would be fulfilled.
The Geek Squad Agent's choice of language was unfortunate. You're quite correct in that the terms of the plan do not change once it's been purchased. However, the process by which we fill those terms can be subject to change. We reserve the right -- as stated in the Terms -- to provide a refurbished unit to fulfill our obligation under the plan.
We cannot provide the refurbished unit to you without taking possession of the damaged unit. The Agent at the store should have been specific that if you kept the damaged iPad to use in the interim, the replacement could not be shipped to you, but rather to the store for this reason. Please know that I apologize for any inconvenience to you.
Finally, I'm wholly disheartened to read that this experience may prompt you to change your future shopping destination. It is my hope that you will give Best Buy another chance to win you over one day soon. Thank you for taking the time to share your experience with us.
Sincerely,
John|Social Media Specialist | Best Buy® Corporate
Private Message -
Follow-up: 203908177
Dear sir/madam
Please I'd be happy if we can claim where we are misleaded when buying the product : The retailer or seller should know what they are selling ... For example I asked earphone for my shuffle ipod 3rd generation showing it but the they gave me an ear phone which just was like an ordinary earphone where I can't low and high the volume nor I can select the playlist ... Please read below
that I wrote to you in the email I've sent to you on last April as followed :-
Dear madam/sir,
It's me Santosh Lamichhane who just arrived to my place in Kathmandu, Nepal after a month visit in Bolivia and Argentina ...
Dear madam/sir, I like to inform you that while my visit in Santa Cruz de La sierra in Bolivia I bought a new earphone for my ipod shuffle 3G due to the problem in my old earphone on the date as followed in the bill of as shown
ALTEK
PN 26986 VN 24186
Vendedor:
Federico
Date 02/04/2012 time: 03:34:22 PM
I did checked the earphone there same time and found that I can't lower or high the volume from that new purchased earphone and even asked why and one of your senior staff said it might be the problem of my ipod shuffle's setting, Since the beginning of the time of purchase till I came to Nepal 4 days ago I didn't use the ipod because I'm not able to increase the volume and I didn't took my laptop with me while my visit there ...
But when I try to restore my shuffle here ; even that doesn't works ... Today and yesterday when I checked my friend's earphone of ipod - it was working on my shuffle and my earphone also working in his classic ...
I want to kindly request you since I showed my shuffle at the time of buying earphone there in Altek, San Martin AV in SAnta Cruz de la Sierra in Bolivia and asked I need the earphone for my ipod shuffle 3G It's not my fault ... Could you please ask the agents of apple here in Kathmandu to replace it with the working the right compatible earphone for me ...
Hope to hear from you very soon ...
Thanking you
From Santosh Lamichhane,
Cell +977 9802033662, 9813716393,
+977 (1) 5002018 Res ...
1210 Tikhedewal 28, Lalitpur SMPC 14, Kathmandu, NepalYou will not get a reply from Apple in these forums. As stated in the information to which we all agreed when we signed up here, these forums are for user-to-user assistance, not for getting technical assistance from Apple. All you will get here is suggestions and commiseration from we your fellow users. If you want to express your displeasure directly to Apple, call the tech support line and ask to speak with Customer Relations and see if there's anything they can do for you. Please keep in mind that the CR rep will not have caused your problems, so keep your calm and be polite; they're just working stiffs too.
Message was edited by: Dave Sawyer
Maybe you are looking for
-
Why won't iTunes play one song in my library after I have already authorized my new computer to play all music? I keep getting the same message about authorizing the song over and over. What can I do to fix this?
-
MSI Why No HT Support On 845e Max Rev1
Please can someone from MSI tell me if there is anyway to update my 845E Max 6566 MB to utilise Hyper Threading. I have the latest Bios Revision 5.9. In the specs on this website it says that the 845E Max DOES support HT. Yet mine does not have a Bio
-
Acrobat registry keys to create file name and path
Hi, I need to find a way to get my Acrobat to create a pdf with the same name as the drawing file it's created from and in the same folder as the drawing file. The folder path will vary from drawing to drawing. I need this to happen automatically, wi
-
Nokia Music (Software) - Can't import files
Hi I'm having trouble importing music with Nokia Music (Version 1.2.20226.01). The files are in a folder on my Windows desktop, but for some reason when I try to import them into Nokia Music, it doesn't see them. Even stranger is the fact that the fi
-
I have this problem, my mouse always double clicks. I tried searching the forum for a solution. I got only one result http://bbs.archlinux.org/viewtopic.php?id=73460, but i am not able to solve it. So i started a new thread. I think my problem is the