specify / specify6 Goto Github PK
View Code? Open in Web Editor NEWSource Code for Specify 6, Biological Collections Management Platform
Home Page: https://specifysoftware.org
License: GNU General Public License v2.0
Source Code for Specify 6, Biological Collections Management Platform
Home Page: https://specifysoftware.org
License: GNU General Public License v2.0
For the attached query, I am unable to use the Batch Editor function without adding the field CO.text1, which doesn't seem to make any sense. I also get the error below.
class_name: edu.ku.brc.specify.tasks.WorkbenchTask
comments:
stack_trace:
java.lang.NullPointerException
at edu.ku.brc.specify.tasks.subpane.wb.WorkbenchPaneSS.buildValidator(Unknown Source)
at edu.ku.brc.specify.tasks.subpane.wb.WorkbenchPaneSS.buildValidator(Unknown Source)
at edu.ku.brc.specify.tasks.subpane.wb.WorkbenchPaneSS.(Unknown Source)
at edu.ku.brc.specify.tasks.WorkbenchEditorCreator.doIt(Unknown Source)
at edu.ku.brc.specify.tasks.WorkbenchEditorCreator.access$100(Unknown Source)
at edu.ku.brc.specify.tasks.WorkbenchEditorCreator$1.doInBackground(Unknown Source)
at edu.ku.brc.specify.tasks.WorkbenchEditorCreator$1.doInBackground(Unknown Source)
at javax.swing.SwingWorker$1.call(Unknown Source)
at java.util.concurrent.FutureTask.run(Unknown Source)
at javax.swing.SwingWorker.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
task_name: BatchEdit
title:
id: fa341824-173a-0988-6119-3b90cafcd922--16009a747b0
os_name: Windows 7
os_version: 6.1
java_version: 1.8.0_152
java_vendor: Oracle Corporation
max_memory: 778502144
used_memory: 423004944
user_name: g778g663
ip: 169.254.88.15
app_version: 6.6.06
collection: CReAC
discipline: Entomology
division: Entomology
institution: KU Biodiversity Institute
Collection_number: 1337872530.67
Discipline_number: 1337872530.34
Division_number: 1337872530
Institution_number: 1337872526.99
ISA_number: 2014548
email: [email protected]
If your cat #s are set to autofill, then the BE will act as the WorkBench does and will tell you that the cells are invalid, and must be blank because they are set to autofill. This doesn't make sense, because you aren't adding new records, you're just making changes to existing records.
Field is blank when imported, from xls or csv.
I get this message now (?) between validating and Committing.
Going to attach it
Twice with DEMO database, edit a few records, one field, in BE. Push update, process begins, table counts add up, then at the last record as shown in the status bar at the base of the Dataset, the app freeezes. Windows 10.
When you click the Apply btn nothing happens, except that the Apply btn gets disabled.
Although you cannot right click and paste into these columns, you can use the shortcut ctrl+v to do so. Since grayed-out fields should not be editable, this shouldn't be possible. Disabling shortcut keys in the BE might fix this, but it would also inconvenience people who would prefer to use them over the right click options when dealing with non grayed-out fields.
If you are batch editing data that includes a required field, and there are any rows that are empty for that required field, you can save the data edits without filling in those required fields. If you edit those required fields at all (by entering data), they become required and you cannot save data changes without having filled in those cells. This is not possible when manually editing a single record, so it shouldn't be possible when editing several records at once, otherwise required fields may remain empty when they should not.
People who query exporter cache directly when populating IPT may have issues with partial dates.
The 'Show SQL' button should produce SQL that will correctly retrieve partial dates for IPT
If you only make changes to fields using the fill down or fill up right-click option, the Apply button will not become active, even though all the fields that are being changed are highlighted green. Making a change to a single cell will fix the issue. But this still may confuse some users and they might not realize they can fix it that way.
The CO.ProjectNumber field in PRI's database is a required field. However, the Batch Editor isn't able to find it for some reason, even though it's included in the query (I checked the schema config to make sure), and it won't let me batch edit the query results. The query is attached below.
if you turn on Series when query results come in and try to switch to batch edit mode, it returns you to the query page with no explanation and this in the error log:
java.lang.ArrayIndexOutOfBoundsException: Array index out of range: 7java.lang.ArrayIndexOutOfBoundsException: Array index out of range: 7
at java.util.Vector.get(Unknown Source)
at java.util.Vector.get(Unknown Source) at java.util.Vector.get(Unknown Source)
at edu.ku.brc.specify.tasks.WorkbenchTask.loadRsIntoWb(WorkbenchTask.java:1858)
at edu.ku.brc.specify.tasks.WorkbenchTask.loadRsIntoWb(WorkbenchTask.java:1858) at edu.ku.brc.specify.tasks.WorkbenchTask.loadRsIntoWb(WorkbenchTask.java:1858)
at edu.ku.brc.specify.tasks.WorkbenchTask$1.construct(WorkbenchTask.java:2031)
at edu.ku.brc.specify.tasks.WorkbenchTask$1.construct(WorkbenchTask.java:2031) at edu.ku.brc.specify.tasks.WorkbenchTask$1.construct(WorkbenchTask.java:2031)
at edu.ku.brc.helpers.SwingWorker$2.run(SwingWorker.java:133)
at edu.ku.brc.helpers.SwingWorker$2.run(SwingWorker.java:133) at edu.ku.brc.helpers.SwingWorker$2.run(SwingWorker.java:133)
at java.lang.Thread.run(Unknown Source)
at java.lang.Thread.run(Unknown Source) at java.lang.Thread.run(Unknown Source)
When batch editing a query in a paleo db regardless of what table is being queried, the following error message occurs:
java.lang.NullPointerException
at edu.ku.brc.specify.tasks.WorkbenchTask.getDataType(Unknown Source)
at edu.ku.brc.specify.tasks.subpane.wb.FormPane.createUIComp(Unknown Source)
at edu.ku.brc.specify.tasks.subpane.wb.FormPane.buildUI(Unknown Source)
at edu.ku.brc.specify.tasks.subpane.wb.FormPane.(Unknown Source)
at edu.ku.brc.specify.tasks.subpane.wb.WorkbenchPaneSS.(Unknown Source)
at edu.ku.brc.specify.tasks.WorkbenchEditorCreator.doIt(Unknown Source)
at edu.ku.brc.specify.tasks.WorkbenchEditorCreator.access$100(Unknown Source)
at edu.ku.brc.specify.tasks.WorkbenchEditorCreator$1.doInBackground(Unknown Source)
at edu.ku.brc.specify.tasks.WorkbenchEditorCreator$1.doInBackground(Unknown Source)
at javax.swing.SwingWorker$1.call(Unknown Source)
at java.util.concurrent.FutureTask.run(Unknown Source)
at javax.swing.SwingWorker.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
I used the 'demopaleo' db under demo databases in the specify 6 shared drive
If I clear a geography level that is enforced, the cell is flagged as invalid and edited.
If I select the cell and undo the edit, the highlighting clears, but the invalid cell count is not decremented, and won't decrement, and the batch can never be applied.
(If I type something in the cell instead of un-doing, there is no problem.)
not a bug, just a request
The default, top-level target the help system resorts when it can't find a requested target is invalid and causes a stack trace popup.
If you try to Batch Edit a set of data in query results that is missing a required field from a table you are using, Specify will notify you then take you back to the Query Builder screen. However, it also gives you an error (see below), which seems kind of unnecessary.
Error:
class_name: edu.ku.brc.specify.tasks.WorkbenchTask
comments:
stack_trace:
org.hibernate.TransientObjectException: cannot lock an unsaved transient instance: edu.ku.brc.specify.datamodel.Workbench
at org.hibernate.event.def.DefaultLockEventListener.onLock(DefaultLockEventListener.java:53)
at org.hibernate.impl.SessionImpl.fireLock(SessionImpl.java:584)
at org.hibernate.impl.SessionImpl.lock(SessionImpl.java:576)
at edu.ku.brc.specify.dbsupport.HibernateDataProviderSession.attach(Unknown Source)
at edu.ku.brc.specify.tasks.WorkbenchEditorCreator.doIt(Unknown Source)
at edu.ku.brc.specify.tasks.WorkbenchEditorCreator.access$100(Unknown Source)
at edu.ku.brc.specify.tasks.WorkbenchEditorCreator$1.doInBackground(Unknown Source)
at edu.ku.brc.specify.tasks.WorkbenchEditorCreator$1.doInBackground(Unknown Source)
at javax.swing.SwingWorker$1.call(Unknown Source)
at java.util.concurrent.FutureTask.run(Unknown Source)
at javax.swing.SwingWorker.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
task_name: BatchEdit
title:
id: fa341824-173a-0988-6119-3b90cafcd922--1606c15d3d0
os_name: Windows 7
os_version: 6.1
java_version: 1.8.0_152
java_vendor: Oracle Corporation
max_memory: 778502144
used_memory: -176149416
user_name: g778g663
ip: 169.254.88.15
app_version: 6.6.06
collection: IP
discipline: Invertebrate Paleontology
division: IP
institution: Florida Museum of Natural History
Collection_number: 1389134614.11
Discipline_number: 1389134613.98
Division_number: 1389134613.72
Institution_number: 1389134611.51
email: ph@ph
Many times when I make changes to invalid cells, they remain highlighted red with the previous issue showing up when you mouse-over them. If you save, close the dataset, and reopen it, they will no longer be red.
Whenever I try to upload a recordset with the CO Citation field, I get the following exception and WorkBench stops the upload:
edu.ku.brc.specify.tasks.subpane.wb.wbuploader.UploaderException: org.hibernate.PropertyValueException: not-null property references a null or transient value: edu.ku.brc.specify.datamodel.ReferenceWork.title
edu.ku.brc.specify.tasks.subpane.wb.wbuploader.UploaderException: org.hibernate.PropertyValueException: not-null property references a null or transient value: edu.ku.brc.specify.datamodel.ReferenceWork.titleedu.ku.brc.specify.tasks.subpane.wb.wbuploader.UploaderException: org.hibernate.PropertyValueException: not-null property references a null or transient value: edu.ku.brc.specify.datamodel.ReferenceWork.title
at edu.ku.brc.specify.tasks.subpane.wb.wbuploader.UploadTable.doWrite(UploadTable.java:6097)
at edu.ku.brc.specify.tasks.subpane.wb.wbuploader.UploadTable.doWrite(UploadTable.java:6097) at edu.ku.brc.specify.tasks.subpane.wb.wbuploader.UploadTable.doWrite(UploadTable.java:6097)
at edu.ku.brc.specify.tasks.subpane.wb.wbuploader.UploadTable.writeRowOrNot(UploadTable.java:5780)
at edu.ku.brc.specify.tasks.subpane.wb.wbuploader.UploadTable.writeRowOrNot(UploadTable.java:5780) at edu.ku.brc.specify.tasks.subpane.wb.wbuploader.UploadTable.writeRowOrNot(UploadTable.java:5780)
at edu.ku.brc.specify.tasks.subpane.wb.wbuploader.UploadTable.writeRow(UploadTable.java:5619)
at edu.ku.brc.specify.tasks.subpane.wb.wbuploader.UploadTable.writeRow(UploadTable.java:5619) at edu.ku.brc.specify.tasks.subpane.wb.wbuploader.UploadTable.writeRow(UploadTable.java:5619)
at edu.ku.brc.specify.tasks.subpane.wb.wbuploader.Uploader.writeRow(Uploader.java:5463)
at edu.ku.brc.specify.tasks.subpane.wb.wbuploader.Uploader.writeRow(Uploader.java:5463) at edu.ku.brc.specify.tasks.subpane.wb.wbuploader.Uploader.writeRow(Uploader.java:5463)
at edu.ku.brc.specify.tasks.subpane.wb.wbuploader.Uploader.uploadRow(Uploader.java:5427)
at edu.ku.brc.specify.tasks.subpane.wb.wbuploader.Uploader.uploadRow(Uploader.java:5427) at edu.ku.brc.specify.tasks.subpane.wb.wbuploader.Uploader.uploadRow(Uploader.java:5427)
at edu.ku.brc.specify.tasks.subpane.wb.wbuploader.Uploader$13.doInBackground(Uploader.java:4430)
at edu.ku.brc.specify.tasks.subpane.wb.wbuploader.Uploader$13.doInBackground(Uploader.java:4430) at edu.ku.brc.specify.tasks.subpane.wb.wbuploader.Uploader$13.doInBackground(Uploader.java:4430)
at javax.swing.SwingWorker$1.call(Unknown Source)
at javax.swing.SwingWorker$1.call(Unknown Source) at javax.swing.SwingWorker$1.call(Unknown Source)
at java.util.concurrent.FutureTask.run(Unknown Source)
at java.util.concurrent.FutureTask.run(Unknown Source) at java.util.concurrent.FutureTask.run(Unknown Source)
at javax.swing.SwingWorker.run(Unknown Source)
at javax.swing.SwingWorker.run(Unknown Source) at javax.swing.SwingWorker.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
at java.lang.Thread.run(Unknown Source) at java.lang.Thread.run(Unknown Source)
Caused by: org.hibernate.PropertyValueException: not-null property references a null or transient value: edu.ku.brc.specify.datamodel.ReferenceWork.title
Caused by: org.hibernate.PropertyValueException: not-null property references a null or transient value: edu.ku.brc.specify.datamodel.ReferenceWork.titleCaused by: org.hibernate.PropertyValueException: not-null property references a null or transient value: edu.ku.brc.specify.datamodel.ReferenceWork.title
at org.hibernate.engine.Nullability.checkNullability(Nullability.java:72)
at org.hibernate.engine.Nullability.checkNullability(Nullability.java:72) at org.hibernate.engine.Nullability.checkNullability(Nullability.java:72)
at org.hibernate.event.def.AbstractSaveEventListener.performSaveOrReplicate(AbstractSaveEventListener.java:290)
at org.hibernate.event.def.AbstractSaveEventListener.performSaveOrReplicate(AbstractSaveEventListener.java:290) at org.hibernate.event.def.AbstractSaveEventListener.performSaveOrReplicate(AbstractSaveEventListener.java:290)
at org.hibernate.event.def.AbstractSaveEventListener.performSave(AbstractSaveEventListener.java:181)
at org.hibernate.event.def.AbstractSaveEventListener.performSave(AbstractSaveEventListener.java:181) at org.hibernate.event.def.AbstractSaveEventListener.performSave(AbstractSaveEventListener.java:181)
at org.hibernate.event.def.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:107)
at org.hibernate.event.def.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:107) at org.hibernate.event.def.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:107)
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.saveWithGeneratedOrRequestedId(DefaultSaveOrUpdateEventListener.java:187)
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.saveWithGeneratedOrRequestedId(DefaultSaveOrUpdateEventListener.java:187) at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.saveWithGeneratedOrRequestedId(DefaultSaveOrUpdateEventListener.java:187)
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.entityIsTransient(DefaultSaveOrUpdateEventListener.java:172)
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.entityIsTransient(DefaultSaveOrUpdateEventListener.java:172) at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.entityIsTransient(DefaultSaveOrUpdateEventListener.java:172)
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.performSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:94)
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.performSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:94) at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.performSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:94)
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:70)
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:70) at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:70)
at org.hibernate.impl.SessionImpl.fireSaveOrUpdate(SessionImpl.java:507)
at org.hibernate.impl.SessionImpl.fireSaveOrUpdate(SessionImpl.java:507) at org.hibernate.impl.SessionImpl.fireSaveOrUpdate(SessionImpl.java:507)
at org.hibernate.impl.SessionImpl.saveOrUpdate(SessionImpl.java:499)
at org.hibernate.impl.SessionImpl.saveOrUpdate(SessionImpl.java:499) at org.hibernate.impl.SessionImpl.saveOrUpdate(SessionImpl.java:499)
at org.hibernate.impl.SessionImpl.saveOrUpdate(SessionImpl.java:495)
at org.hibernate.impl.SessionImpl.saveOrUpdate(SessionImpl.java:495) at org.hibernate.impl.SessionImpl.saveOrUpdate(SessionImpl.java:495)
at edu.ku.brc.specify.dbsupport.HibernateDataProviderSession.saveOrUpdate(HibernateDataProviderSession.java:549)
at edu.ku.brc.specify.dbsupport.HibernateDataProviderSession.saveOrUpdate(HibernateDataProviderSession.java:549) at edu.ku.brc.specify.dbsupport.HibernateDataProviderSession.saveOrUpdate(HibernateDataProviderSession.java:549)
at edu.ku.brc.specify.tasks.subpane.wb.wbuploader.UploadTable.doWrite(UploadTable.java:6066)
at edu.ku.brc.specify.tasks.subpane.wb.wbuploader.UploadTable.doWrite(UploadTable.java:6066) at edu.ku.brc.specify.tasks.subpane.wb.wbuploader.UploadTable.doWrite(UploadTable.java:6066)
... 11 more
... 11 more ... 11 more
When logged in as a manager (non-admin), and possibly other lower level users, you can access the Batch Editor through the icon in the Query Results page. You should only have access to the batch editor if you're an admin user, I believe. But, icon is not available at the top in the task bar, which is good.
Rancho Santa Ana and Sarah Schmits both reported (and testing confirmed) accession numbers formatted to auto increment are not doing so.
We created a format of yyyy-#### that is incrementing and set to restart with each year but it is creating the same number with each save (2018-0001). We tried #### incrementing as well and it does the same thing (0001 over and over again).
Auto- incrementing is on in the databases in question (a copy of RSA and a created database)
tested in the external 6.6.06 and "heap" internal release
If I remove geography from a locality record in batch edit, I get a message saying time ran out and edits were not applied.
There is no explanation as to why the changes were not applied.
Locality query and collection object queries
null catalognumbers cause popup for null pointer exception in Smusher.java
I'm not sure what caused it, but my workbench upload failed in the build batchyfog. This is the exception found in the logs:
edu.ku.brc.specify.tasks.subpane.wb.wbuploader.UploaderException: FinishDepth does not support seq > 0
edu.ku.brc.specify.tasks.subpane.wb.wbuploader.UploaderException: FinishDepth does not support seq > 0edu.ku.brc.specify.tasks.subpane.wb.wbuploader.UploaderException: FinishDepth does not support seq > 0
at edu.ku.brc.specify.tasks.subpane.wb.wbuploader.UploadTableTree.finishDepth(UploadTableTree.java:1100)
at edu.ku.brc.specify.tasks.subpane.wb.wbuploader.UploadTableTree.finishDepth(UploadTableTree.java:1100) at edu.ku.brc.specify.tasks.subpane.wb.wbuploader.UploadTableTree.finishDepth(UploadTableTree.java:1100)
at edu.ku.brc.specify.tasks.subpane.wb.wbuploader.UploadTable.writeRowOrNot(UploadTable.java:5762)
at edu.ku.brc.specify.tasks.subpane.wb.wbuploader.UploadTable.writeRowOrNot(UploadTable.java:5762) at edu.ku.brc.specify.tasks.subpane.wb.wbuploader.UploadTable.writeRowOrNot(UploadTable.java:5762)
at edu.ku.brc.specify.tasks.subpane.wb.wbuploader.UploadTable.writeRow(UploadTable.java:5579)
at edu.ku.brc.specify.tasks.subpane.wb.wbuploader.UploadTable.writeRow(UploadTable.java:5579) at edu.ku.brc.specify.tasks.subpane.wb.wbuploader.UploadTable.writeRow(UploadTable.java:5579)
at edu.ku.brc.specify.tasks.subpane.wb.wbuploader.Uploader.writeRow(Uploader.java:5522)
at edu.ku.brc.specify.tasks.subpane.wb.wbuploader.Uploader.writeRow(Uploader.java:5522) at edu.ku.brc.specify.tasks.subpane.wb.wbuploader.Uploader.writeRow(Uploader.java:5522)
at edu.ku.brc.specify.tasks.subpane.wb.wbuploader.Uploader.uploadRow(Uploader.java:5486)
at edu.ku.brc.specify.tasks.subpane.wb.wbuploader.Uploader.uploadRow(Uploader.java:5486) at edu.ku.brc.specify.tasks.subpane.wb.wbuploader.Uploader.uploadRow(Uploader.java:5486)
at edu.ku.brc.specify.tasks.subpane.wb.wbuploader.Uploader$13.doInBackground(Uploader.java:4486)
at edu.ku.brc.specify.tasks.subpane.wb.wbuploader.Uploader$13.doInBackground(Uploader.java:4486) at edu.ku.brc.specify.tasks.subpane.wb.wbuploader.Uploader$13.doInBackground(Uploader.java:4486)
at javax.swing.SwingWorker$1.call(Unknown Source)
at javax.swing.SwingWorker$1.call(Unknown Source) at javax.swing.SwingWorker$1.call(Unknown Source)
at java.util.concurrent.FutureTask.run(Unknown Source)
at java.util.concurrent.FutureTask.run(Unknown Source) at java.util.concurrent.FutureTask.run(Unknown Source)
at javax.swing.SwingWorker.run(Unknown Source)
at javax.swing.SwingWorker.run(Unknown Source) at javax.swing.SwingWorker.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
at java.lang.Thread.run(Unknown Source) at java.lang.Thread.run(Unknown Source)
Whenever I make a change to a Locality Name field in a row in a batch of CO records, the Lat/Long fields are highlighted even if I don't make a change to them. Lat/long are also highlighted when I make changes to Geography fields or the CE #. This behavior may happen with other tables, but I have not discovered other cases yet.
The update guid routine that runs (or used to run) when schema updates happened did not update prep guids. Next release needs to include a fix for empty and duplicated prep guids. (Possibly other tables have the same problem.)
When you first drag and drop a recordset onto a saved query, it will work fine. If you attempt to do this again after closing the Batch Editor tab, it will only take you to the saved query instead of the query results screen. If you leave the Batch Editor tab open, dragging and dropping recordsets seems to continue working. You must restart specify after this issue occurs or it will keep occuring.
When trying to upload with multiple collectors in the workbench, you may get the exception below. If you continue to attempt uploading, you will get a slightly different exception, also below:
edu.ku.brc.specify.tasks.subpane.wb.wbuploader.UploaderException: java.lang.NullPointerException
edu.ku.brc.specify.tasks.subpane.wb.wbuploader.UploaderException: java.lang.NullPointerExceptionedu.ku.brc.specify.tasks.subpane.wb.wbuploader.UploaderException: java.lang.NullPointerException
at edu.ku.brc.specify.tasks.subpane.wb.wbuploader.Uploader.abortRow(Uploader.java:5011)
at edu.ku.brc.specify.tasks.subpane.wb.wbuploader.Uploader.abortRow(Uploader.java:5011) at edu.ku.brc.specify.tasks.subpane.wb.wbuploader.Uploader.abortRow(Uploader.java:5011)
at edu.ku.brc.specify.tasks.subpane.wb.wbuploader.Uploader$13.doInBackground(Uploader.java:4440)
at edu.ku.brc.specify.tasks.subpane.wb.wbuploader.Uploader$13.doInBackground(Uploader.java:4440) at edu.ku.brc.specify.tasks.subpane.wb.wbuploader.Uploader$13.doInBackground(Uploader.java:4440)
at javax.swing.SwingWorker$1.call(Unknown Source)
at javax.swing.SwingWorker$1.call(Unknown Source) at javax.swing.SwingWorker$1.call(Unknown Source)
at java.util.concurrent.FutureTask.run(Unknown Source)
at java.util.concurrent.FutureTask.run(Unknown Source) at java.util.concurrent.FutureTask.run(Unknown Source)
at javax.swing.SwingWorker.run(Unknown Source)
at javax.swing.SwingWorker.run(Unknown Source) at javax.swing.SwingWorker.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
at java.lang.Thread.run(Unknown Source) at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.NullPointerException
Caused by: java.lang.NullPointerExceptionCaused by: java.lang.NullPointerException
at java.lang.Integer.compareTo(Unknown Source)
at java.lang.Integer.compareTo(Unknown Source) at java.lang.Integer.compareTo(Unknown Source)
at edu.ku.brc.specify.tasks.subpane.wb.wbuploader.UploadedRecordInfo.compareTo(UploadedRecordInfo.java:105)
at edu.ku.brc.specify.tasks.subpane.wb.wbuploader.UploadedRecordInfo.compareTo(UploadedRecordInfo.java:105) at edu.ku.brc.specify.tasks.subpane.wb.wbuploader.UploadedRecordInfo.compareTo(UploadedRecordInfo.java:105)
at edu.ku.brc.specify.tasks.subpane.wb.wbuploader.UploadedRecordInfo.compareTo(UploadedRecordInfo.java:33)
at edu.ku.brc.specify.tasks.subpane.wb.wbuploader.UploadedRecordInfo.compareTo(UploadedRecordInfo.java:33) at edu.ku.brc.specify.tasks.subpane.wb.wbuploader.UploadedRecordInfo.compareTo(UploadedRecordInfo.java:33)
at java.util.TreeMap.compare(Unknown Source)
at java.util.TreeMap.compare(Unknown Source) at java.util.TreeMap.compare(Unknown Source)
at java.util.TreeMap$NavigableSubMap.tooLow(Unknown Source)
at java.util.TreeMap$NavigableSubMap.tooLow(Unknown Source) at java.util.TreeMap$NavigableSubMap.tooLow(Unknown Source)
at java.util.TreeMap$NavigableSubMap.inRange(Unknown Source)
at java.util.TreeMap$NavigableSubMap.inRange(Unknown Source) at java.util.TreeMap$NavigableSubMap.inRange(Unknown Source)
at java.util.TreeMap$NavigableSubMap.containsKey(Unknown Source)
at java.util.TreeMap$NavigableSubMap.containsKey(Unknown Source) at java.util.TreeMap$NavigableSubMap.containsKey(Unknown Source)
at java.util.TreeSet.contains(Unknown Source)
at java.util.TreeSet.contains(Unknown Source) at java.util.TreeSet.contains(Unknown Source)
at java.util.AbstractSet.removeAll(Unknown Source)
at java.util.AbstractSet.removeAll(Unknown Source) at java.util.AbstractSet.removeAll(Unknown Source)
at edu.ku.brc.specify.tasks.subpane.wb.wbuploader.UploadTable.abortRow(UploadTable.java:6214)
at edu.ku.brc.specify.tasks.subpane.wb.wbuploader.UploadTable.abortRow(UploadTable.java:6214) at edu.ku.brc.specify.tasks.subpane.wb.wbuploader.UploadTable.abortRow(UploadTable.java:6214)
at edu.ku.brc.specify.tasks.subpane.wb.wbuploader.Uploader.abortRow(Uploader.java:5003)
at edu.ku.brc.specify.tasks.subpane.wb.wbuploader.Uploader.abortRow(Uploader.java:5003) at edu.ku.brc.specify.tasks.subpane.wb.wbuploader.Uploader.abortRow(Uploader.java:5003)
... 7 more
... 7 more ... 7 more
Error 2:
edu.ku.brc.specify.tasks.subpane.wb.wbuploader.UploaderException: java.util.ConcurrentModificationException
edu.ku.brc.specify.tasks.subpane.wb.wbuploader.UploaderException: java.util.ConcurrentModificationExceptionedu.ku.brc.specify.tasks.subpane.wb.wbuploader.UploaderException: java.util.ConcurrentModificationException
at edu.ku.brc.specify.tasks.subpane.wb.wbuploader.Uploader.abortRow(Uploader.java:5011)
at edu.ku.brc.specify.tasks.subpane.wb.wbuploader.Uploader.abortRow(Uploader.java:5011) at edu.ku.brc.specify.tasks.subpane.wb.wbuploader.Uploader.abortRow(Uploader.java:5011)
at edu.ku.brc.specify.tasks.subpane.wb.wbuploader.Uploader$13.doInBackground(Uploader.java:4440)
at edu.ku.brc.specify.tasks.subpane.wb.wbuploader.Uploader$13.doInBackground(Uploader.java:4440) at edu.ku.brc.specify.tasks.subpane.wb.wbuploader.Uploader$13.doInBackground(Uploader.java:4440)
at javax.swing.SwingWorker$1.call(Unknown Source)
at javax.swing.SwingWorker$1.call(Unknown Source) at javax.swing.SwingWorker$1.call(Unknown Source)
at java.util.concurrent.FutureTask.run(Unknown Source)
at java.util.concurrent.FutureTask.run(Unknown Source) at java.util.concurrent.FutureTask.run(Unknown Source)
at javax.swing.SwingWorker.run(Unknown Source)
at javax.swing.SwingWorker.run(Unknown Source) at javax.swing.SwingWorker.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
at java.lang.Thread.run(Unknown Source) at java.lang.Thread.run(Unknown Source)
Caused by: java.util.ConcurrentModificationException
Caused by: java.util.ConcurrentModificationExceptionCaused by: java.util.ConcurrentModificationException
at java.util.TreeMap$NavigableSubMap$SubMapIterator.nextEntry(Unknown Source)
at java.util.TreeMap$NavigableSubMap$SubMapIterator.nextEntry(Unknown Source) at java.util.TreeMap$NavigableSubMap$SubMapIterator.nextEntry(Unknown Source)
at java.util.TreeMap$NavigableSubMap$SubMapKeyIterator.next(Unknown Source)
at java.util.TreeMap$NavigableSubMap$SubMapKeyIterator.next(Unknown Source) at java.util.TreeMap$NavigableSubMap$SubMapKeyIterator.next(Unknown Source)
at java.util.AbstractSet.removeAll(Unknown Source)
at java.util.AbstractSet.removeAll(Unknown Source) at java.util.AbstractSet.removeAll(Unknown Source)
at edu.ku.brc.specify.tasks.subpane.wb.wbuploader.UploadTable.abortRow(UploadTable.java:6214)
at edu.ku.brc.specify.tasks.subpane.wb.wbuploader.UploadTable.abortRow(UploadTable.java:6214) at edu.ku.brc.specify.tasks.subpane.wb.wbuploader.UploadTable.abortRow(UploadTable.java:6214)
at edu.ku.brc.specify.tasks.subpane.wb.wbuploader.Uploader.abortRow(Uploader.java:5003)
at edu.ku.brc.specify.tasks.subpane.wb.wbuploader.Uploader.abortRow(Uploader.java:5003) at edu.ku.brc.specify.tasks.subpane.wb.wbuploader.Uploader.abortRow(Uploader.java:5003)
... 7 more
... 7 more ... 7 more
There are columns/fields that have grayed out data (either required or shouldn't be able to be edited). If you highlight one of those fields then click the yellow pencil button, it will delete that data, and then you can apply/save those changes.
While you can edit full date fields in the BE, you can't edit partial date fields (like the year field, month field, and day field). Users may want to use this feature in case they have to make changes to several records for just one of those fields and it might be easier if they are able to edit a single date part field.
The latitude and longitude cells get highlighted as changed and when the changes are Applied, The message says "Time ran out and edits were not applied. Click 'OK' to resume data editing."
and this message appears in the error log:
Caused by: org.hibernate.PropertyValueException: not-null property references a null or transient value: edu.ku.brc.specify.datamodel.Locality.localityName
Caused by: org.hibernate.PropertyValueException: not-null property references a null or transient value: edu.ku.brc.specify.datamodel.Locality.localityNameCaused by: org.hibernate.PropertyValueException: not-null property references a null or transient value: edu.ku.brc.specify.datamodel.Locality.localityName
at org.hibernate.engine.Nullability.checkNullability(Nullability.java:72)
at org.hibernate.engine.Nullability.checkNullability(Nullability.java:72) at org.hibernate.engine.Nullability.checkNullability(Nullability.java:72)
at org.hibernate.event.def.AbstractSaveEventListener.performSaveOrReplicate(AbstractSaveEventListener.java:290)
at org.hibernate.event.def.AbstractSaveEventListener.performSaveOrReplicate(AbstractSaveEventListener.java:290) at org.hibernate.event.def.AbstractSaveEventListener.performSaveOrReplicate(AbstractSaveEventListener.java:290)
at org.hibernate.event.def.AbstractSaveEventListener.performSave(AbstractSaveEventListener.java:181)
at org.hibernate.event.def.AbstractSaveEventListener.performSave(AbstractSaveEventListener.java:181) at org.hibernate.event.def.AbstractSaveEventListener.performSave(AbstractSaveEventListener.java:181)
at org.hibernate.event.def.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:107)
at org.hibernate.event.def.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:107) at org.hibernate.event.def.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:107)
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.saveWithGeneratedOrRequestedId(DefaultSaveOrUpdateEventListener.java:187)
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.saveWithGeneratedOrRequestedId(DefaultSaveOrUpdateEventListener.java:187) at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.saveWithGeneratedOrRequestedId(DefaultSaveOrUpdateEventListener.java:187)
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.entityIsTransient(DefaultSaveOrUpdateEventListener.java:172)
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.entityIsTransient(DefaultSaveOrUpdateEventListener.java:172) at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.entityIsTransient(DefaultSaveOrUpdateEventListener.java:172)
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.performSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:94)
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.performSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:94) at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.performSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:94)
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:70)
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:70) at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:70)
at org.hibernate.impl.SessionImpl.fireSaveOrUpdate(SessionImpl.java:507)
at org.hibernate.impl.SessionImpl.fireSaveOrUpdate(SessionImpl.java:507) at org.hibernate.impl.SessionImpl.fireSaveOrUpdate(SessionImpl.java:507)
at org.hibernate.impl.SessionImpl.saveOrUpdate(SessionImpl.java:499)
at org.hibernate.impl.SessionImpl.saveOrUpdate(SessionImpl.java:499) at org.hibernate.impl.SessionImpl.saveOrUpdate(SessionImpl.java:499)
at org.hibernate.impl.SessionImpl.saveOrUpdate(SessionImpl.java:495)
at org.hibernate.impl.SessionImpl.saveOrUpdate(SessionImpl.java:495) at org.hibernate.impl.SessionImpl.saveOrUpdate(SessionImpl.java:495)
at edu.ku.brc.specify.dbsupport.HibernateDataProviderSession.saveOrUpdate(HibernateDataProviderSession.java:549)
at edu.ku.brc.specify.dbsupport.HibernateDataProviderSession.saveOrUpdate(HibernateDataProviderSession.java:549) at edu.ku.brc.specify.dbsupport.HibernateDataProviderSession.saveOrUpdate(HibernateDataProviderSession.java:549)
at edu.ku.brc.specify.tasks.subpane.wb.wbuploader.UploadTable.doWrite(UploadTable.java:6200)
at edu.ku.brc.specify.tasks.subpane.wb.wbuploader.UploadTable.doWrite(UploadTable.java:6200) at edu.ku.brc.specify.tasks.subpane.wb.wbuploader.UploadTable.doWrite(UploadTable.java:6200)
... 11 more
... 11 more ... 11 more
I created a CO query in the ento collection of the demo database and included a field from locality details. I switched to batch editing and double clicked a field to edit it (not a locality details field) and this error popped up.
failed to lazily initialize a collection of role: edu.ku.brc.specify.datamodel.Locality.localityDetails, no session or session was closed
org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role: edu.ku.brc.specify.datamodel.Locality.localityDetails, no session or session was closed
at org.hibernate.collection.AbstractPersistentCollection.throwLazyInitializationException(AbstractPersistentCollection.java:358)
at org.hibernate.collection.AbstractPersistentCollection.throwLazyInitializationExceptionIfNotConnected(AbstractPersistentCollection.java:350)
at org.hibernate.collection.AbstractPersistentCollection.initialize(AbstractPersistentCollection.java:343)
at org.hibernate.collection.AbstractPersistentCollection.read(AbstractPersistentCollection.java:86)
at org.hibernate.collection.PersistentSet.iterator(PersistentSet.java:163)
at edu.ku.brc.specify.tasks.subpane.wb.wbuploader.UploadTable.getChildRecords(UploadTable.java:1463)
at edu.ku.brc.specify.tasks.subpane.wb.wbuploader.UploadTable.loadRecord(UploadTable.java:1412)
at edu.ku.brc.specify.tasks.subpane.wb.wbuploader.UploadTable.loadRecord(UploadTable.java:1393)
at edu.ku.brc.specify.tasks.subpane.wb.wbuploader.UploadTable.loadRecord(UploadTable.java:1393)
at edu.ku.brc.specify.tasks.subpane.wb.wbuploader.UploadTable.loadExportedRecord(UploadTable.java:1357)
at edu.ku.brc.specify.tasks.subpane.wb.wbuploader.Uploader.checkChangedData(Uploader.java:1744)
at edu.ku.brc.specify.tasks.subpane.wb.WorkbenchValidator.endCellEdit(WorkbenchValidator.java:96)
at edu.ku.brc.specify.tasks.subpane.wb.WorkbenchPaneSS.updateRowValidationStatus(WorkbenchPaneSS.java:4873)
at edu.ku.brc.specify.tasks.subpane.wb.WorkbenchPaneSS$GridCellEditor.stopCellEditing(WorkbenchPaneSS.java:5586)
at javax.swing.plaf.basic.BasicTableUI$Handler.mousePressed(Unknown Source)
at java.awt.AWTEventMulticaster.mousePressed(Unknown Source)
at java.awt.AWTEventMulticaster.mousePressed(Unknown Source)
at java.awt.AWTEventMulticaster.mousePressed(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at edu.ku.brc.ui.tmanfe.SpreadSheet.processMouseEvent(SpreadSheet.java:819)
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.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$500(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue$4.run(Unknown Source)
at java.awt.EventQueue$4.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(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)
Andy was right. I tested using a full 20,000 query result to batch edit. It still warned me that the maximum rows that would be used is 7,000 (not sure how it said 2,000 for Andy). But then when I clicked okay it decided to continue using all 20,000 rows. Also somehow it didn't give me the null pointer exception so that may be fixed in the latest build.
If there is an issue with the data in the batch set, such as number of digits in the coords or missing data, there is no warning until you try to apply changes, then it takes you to the Workbench upload screen (split screen like in the image attached), but the bottom panel is off of the screen and there is no scroll bar, so you don't know what is going on unless you Macguyver a way to see it.
I did this in a Rancho Santa Ana database. I ran the Standard Label Query, added Barcode to the query and got the attached images. If you want to reduce the wait, you can make barcode contain 0031. It won't have all of the messages, but it will have the coord length issues.
If you try to import or run a dataset that includes any tree fields (such as subspecies) that have not yet been added in the tree definition cause the following error, and will not allow you to use the workbench:
class_name: edu.ku.brc.specify.tasks.WorkbenchTask
comments:
stack_trace:
java.lang.NullPointerException
at edu.ku.brc.specify.tasks.subpane.wb.WorkbenchPaneSS.buildValidator(WorkbenchPaneSS.java:4303)
at edu.ku.brc.specify.tasks.subpane.wb.WorkbenchPaneSS.buildValidator(WorkbenchPaneSS.java:4243)
at edu.ku.brc.specify.tasks.subpane.wb.WorkbenchPaneSS.(WorkbenchPaneSS.java:418)
at edu.ku.brc.specify.tasks.WorkbenchEditorCreator.doIt(WorkbenchEditorCreator.java:214)
at edu.ku.brc.specify.tasks.WorkbenchEditorCreator.access$100(WorkbenchEditorCreator.java:39)
at edu.ku.brc.specify.tasks.WorkbenchEditorCreator$1.doInBackground(WorkbenchEditorCreator.java:71)
at edu.ku.brc.specify.tasks.WorkbenchEditorCreator$1.doInBackground(WorkbenchEditorCreator.java:67)
at javax.swing.SwingWorker$1.call(Unknown Source)
at java.util.concurrent.FutureTask.run(Unknown Source)
at javax.swing.SwingWorker.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
task_name: Workbench
title:
id: fa341824-173a-0988-6119-3b90cafcd922--160e9b03740
os_name: Windows 7
os_version: 6.1
java_version: 1.8.0_152
java_vendor: Oracle Corporation
max_memory: 954728448
used_memory: 298214368
user_name: g778g663
ip: 169.254.88.15
app_version: 6.6.06
collection: Invertebrate Paleontology
discipline: Invertebrate Paleontology
division: Division
institution: Specify Software Collections
Collection_number: 1515172189.1353
Discipline_number: 1515172188.4338
Division_number: 1515435901.9519
Institution_number: 1515104796.7204
email: [email protected]
If I copy the lat and long from one locality to another to make them match, it creates a new locality with all the same (apparent) information
In both the Batch Editor, and the Query Builder, if you run a query that returns no results, you no longer get the typical message indicating that there were no results found. Instead you get "An Issue of Concern" that says "The results could not be assembled. Please try your search again". This has been happening for the past few builds and is still present in the most recent one (tootsweet).
If I were to use a query that split a date (i.e. CE.StartDate) into Day, Month, and Year (so three separate fields in the query), the resulting dataset in the batch editor fills in the full date for all three fields. This makes it a little more difficult to change just the Day, or just the Month, or just the Year. See picture below.
Sometimes it's there, sometimes it's not.
Add
GeoRefCompiledDate, Type Date, partial precision not available
GeoRefCompiledBy, relationship to Agent.
Specify hangs when you create a dataset from a recordset, and when you try to open a dataset created from a recordset
Hello,
Just curious: The MySQL setup guide instructs you to use version 5.6 of MySQL Server. Could you use the latest with no issues?
Best,
Alex
After the batch is applied, the sql to calculate the affected records causes an sql exception which leads to a null pointer exception.
There is no way to delete workbench mappings of datasets that have been deleted. Users don't always want to delete mappings, but sometimes they do, especially when they get to be very numerous.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.